From 5cd1e22f88a3f8d5a1739aa4446e7b9260d19916 Mon Sep 17 00:00:00 2001 From: Khaja Omer Date: Tue, 11 Feb 2025 08:04:26 -0600 Subject: [PATCH 01/15] Adding the funcs for the List VPC and Get VPC for Nodebalancers endpoints --- nodebalancer_config_vpc.go | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 nodebalancer_config_vpc.go diff --git a/nodebalancer_config_vpc.go b/nodebalancer_config_vpc.go new file mode 100644 index 000000000..4b5bee923 --- /dev/null +++ b/nodebalancer_config_vpc.go @@ -0,0 +1,26 @@ +package linodego + +import ( + "context" +) + +// NodeBalancerVpcConfig objects represent a VPC config for a NodeBalancer +type NodeBalancerVpcConfig struct { + ID int `json:"id"` + IPv4Range string `json:"ipv4_range"` + IPv6Range string `json:"ipv6_range"` + NodeBalancerID int `json:"nodebalancer_id"` + SubnetID int `json:"subnet_id"` + VPCID int `json:"vpc_id"` +} + +// ListNodeBalancerVpcConfigs lists NodeBalancer VPC configs +func (c *Client) ListNodeBalancerVpcConfigs(ctx context.Context, nodebalancerID int, opts *ListOptions) ([]NodeBalancerVpcConfig, error) { + return getPaginatedResults[NodeBalancerVpcConfig](ctx, c, formatAPIPath("nodebalancers/%d/vpcs", nodebalancerID), opts) +} + +// GetNodeBalancerVpcConfig gets the NodeBalancer VPC config with the specified id +func (c *Client) GetNodeBalancerVpcConfig(ctx context.Context, nodebalancerID int, vpcID int) (*NodeBalancerVpcConfig, error) { + e := formatAPIPath("nodebalancers/%d/vpcs/%d", nodebalancerID, vpcID) + return doGETRequest[NodeBalancerVpcConfig](ctx, c, e) +} From 230f4dc9aa4050cb04b9e849fcb7a07a748045f4 Mon Sep 17 00:00:00 2001 From: Khaja Omer Date: Tue, 11 Feb 2025 09:09:06 -0600 Subject: [PATCH 02/15] Adding test cases - they don't work until we update some nodebalancer funcs to allow creation of nb with vpc options --- .../nodebalancer_config_vpc_test.go | 93 +++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 test/integration/nodebalancer_config_vpc_test.go diff --git a/test/integration/nodebalancer_config_vpc_test.go b/test/integration/nodebalancer_config_vpc_test.go new file mode 100644 index 000000000..71edeab64 --- /dev/null +++ b/test/integration/nodebalancer_config_vpc_test.go @@ -0,0 +1,93 @@ +package integration + +import ( + "context" + "testing" + + "github.com/linode/linodego" + "github.com/stretchr/testify/require" +) + +func TestNodeBalancerVpcConfig_List(t *testing.T) { + client, nodebalancer, teardown, err := setupNodeBalancerVpcConfig(t, "fixtures/TestNodeBalancerVpcConfig_List") + if err != nil { + t.Errorf("Error setting up nodebalancer: %s", err) + } + defer teardown() + + configs, err := client.ListNodeBalancerVpcConfigs(context.Background(), nodebalancer.ID, nil) + if err != nil { + t.Errorf("Error listing nodebalancer VPC configs: %s", err) + } + + // We expect the list to be not empty and have at least one VPC config + require.NotEmpty(t, configs) + require.Len(t, configs, 1) +} + +func TestNodeBalancerVpcConfig_Get(t *testing.T) { + client, nodebalancer, teardown, err := setupNodeBalancerVpcConfig(t, "fixtures/TestNodeBalancerVpcConfig_Get") + if err != nil { + t.Errorf("Error setting up nodebalancer: %s", err) + } + defer teardown() + + // Get the VPC config list for the nodebalancer (should only have one) + configs, err := client.ListNodeBalancerVpcConfigs(context.Background(), nodebalancer.ID, nil) + if err != nil { + t.Errorf("Error listing nodebalancer VPC configs: %s", err) + } + require.NotEmpty(t, configs) + require.Len(t, configs, 1) + + // Get the VPC config by ID + config, err := client.GetNodeBalancerVpcConfig(context.Background(), nodebalancer.ID, configs[0].ID) + if err != nil { + t.Errorf("Error getting nodebalancer VPC config: %s", err) + } + require.NotNil(t, config) + require.Equal(t, configs[0].ID, config.ID) +} + +func setupNodeBalancerVpcConfig(t *testing.T, fixturesYaml string) (*linodego.Client, *linodego.NodeBalancer, func(), error) { + t.Helper() + client, fixtureTeardown := createTestClient(t, fixturesYaml) + + // 1. Create a VPC and Subnet. + _, vpcSubnet, vpcTeardown, err := createVPCWithSubnet(t, client) + if err != nil { + t.Errorf("Error creating VPC and subnet: %s", err) + } + + // 2. Create a NodeBalancer + // We need a region that supports both NodeBalancers and VPC + nbCreateOpts := linodego.NodeBalancerCreateOptions{ + Label: &label, + Region: getRegionsWithCaps(t, client, []string{"NodeBalancers", "VPCs"})[0], + Vpcs: []*linodego.VPCConfig{ // We need to add this functionality to linodego + { + IPv4Range: vpcSubnet.IPv4, + SubnetID: vpcSubnet.ID, + }, + }, + } + nodebalancer, err := client.CreateNodeBalancer(context.Background(), nbCreateOpts) + if err != nil { + t.Errorf("Error creating nodebalancer: %s", err) + } + + teardown := func() { + // Delete resources in reverse order of creation. + if nodebalancer != nil { + err := client.DeleteNodeBalancer(context.Background(), nodebalancer.ID) + if err != nil { + t.Errorf("Error deleting nodebalancer: %s", err) + } + } + // Only need to call vpcTeardown, which deletes the VPC and subnet + vpcTeardown() + + fixtureTeardown() + } + return client, nodebalancer, teardown, err +} From e075874e27f9c0940ac6eee3f4420e4d14b5f30a Mon Sep 17 00:00:00 2001 From: Khaja Omer Date: Tue, 11 Feb 2025 09:09:59 -0600 Subject: [PATCH 03/15] IPv6 can sometime be empty so adding omiempty here --- nodebalancer_config_vpc.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nodebalancer_config_vpc.go b/nodebalancer_config_vpc.go index 4b5bee923..ed3ac20aa 100644 --- a/nodebalancer_config_vpc.go +++ b/nodebalancer_config_vpc.go @@ -8,7 +8,7 @@ import ( type NodeBalancerVpcConfig struct { ID int `json:"id"` IPv4Range string `json:"ipv4_range"` - IPv6Range string `json:"ipv6_range"` + IPv6Range string `json:"ipv6_range,omitempty"` NodeBalancerID int `json:"nodebalancer_id"` SubnetID int `json:"subnet_id"` VPCID int `json:"vpc_id"` From 94aa73123616ceca934eceec4d7a8f66f8dc4078 Mon Sep 17 00:00:00 2001 From: Rahul Sharma Date: Tue, 11 Feb 2025 21:30:10 +0000 Subject: [PATCH 04/15] add vpcs config during nodebalancer create --- nodebalancer.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/nodebalancer.go b/nodebalancer.go index d209ff011..2687fd663 100644 --- a/nodebalancer.go +++ b/nodebalancer.go @@ -44,6 +44,12 @@ type NodeBalancerTransfer struct { In *float64 `json:"in"` } +type NodeBalancerVPCConfig struct { + IPv4Range string `json:"ipv4_range"` + IPv6Range string `json:"ipv6_range,omitempty"` + SubnetID int `json:"subnet_id"` +} + // NodeBalancerCreateOptions are the options permitted for CreateNodeBalancer type NodeBalancerCreateOptions struct { Label *string `json:"label,omitempty"` @@ -52,6 +58,7 @@ type NodeBalancerCreateOptions struct { Configs []*NodeBalancerConfigCreateOptions `json:"configs,omitempty"` Tags []string `json:"tags"` FirewallID int `json:"firewall_id,omitempty"` + VPCs []*NodeBalancerVPCConfig `json:"vpcs,omitempty"` } // NodeBalancerUpdateOptions are the options permitted for UpdateNodeBalancer From 662422b094cd74998d025ee5fe4bfb4cf1deb899 Mon Sep 17 00:00:00 2001 From: Rahul Sharma Date: Tue, 11 Feb 2025 22:33:59 +0000 Subject: [PATCH 05/15] update node config as well --- nodebalancer_config_nodes.go | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/nodebalancer_config_nodes.go b/nodebalancer_config_nodes.go index 200b3fa9e..4a344fcce 100644 --- a/nodebalancer_config_nodes.go +++ b/nodebalancer_config_nodes.go @@ -35,10 +35,11 @@ var ( // NodeBalancerNodeCreateOptions fields are those accepted by CreateNodeBalancerNode type NodeBalancerNodeCreateOptions struct { - Address string `json:"address"` - Label string `json:"label"` - Weight int `json:"weight,omitempty"` - Mode NodeMode `json:"mode,omitempty"` + Address string `json:"address"` + Label string `json:"label"` + Weight int `json:"weight,omitempty"` + Mode NodeMode `json:"mode,omitempty"` + SubnetID int `json:"subnet_id,omitempty"` } // NodeBalancerNodeUpdateOptions fields are those accepted by UpdateNodeBalancerNode From eff393078c6ee2c6bab36f24bcb962d885c55a6f Mon Sep 17 00:00:00 2001 From: Rahul Sharma Date: Thu, 13 Feb 2025 15:45:57 +0000 Subject: [PATCH 06/15] add nb vpc test --- test/integration/nodebalancers_test.go | 54 ++++++++++++++++++++++++++ test/integration/vpc_test.go | 6 +++ 2 files changed, 60 insertions(+) diff --git a/test/integration/nodebalancers_test.go b/test/integration/nodebalancers_test.go index cf0e1e30a..1db2a66c9 100644 --- a/test/integration/nodebalancers_test.go +++ b/test/integration/nodebalancers_test.go @@ -30,6 +30,23 @@ func TestNodeBalancer_Create_create_smoke(t *testing.T) { assertDateSet(t, nodebalancer.Updated) } +func TestNodeBalancer_Create_with_vpc(t *testing.T) { + _, nodebalancer, teardown, err := setupNodeBalancerWithVPC(t, "fixtures/TestNodeBalancer_With_VPC_Create") + defer teardown() + + if err != nil { + t.Errorf("Error creating nodebalancer: %v", err) + } + + // when comparing fixtures to random value Label will differ, compare the known suffix + if !strings.Contains(*nodebalancer.Label, label) { + t.Errorf("nodebalancer returned does not match nodebalancer create request") + } + + assertDateSet(t, nodebalancer.Created) + assertDateSet(t, nodebalancer.Updated) +} + func TestNodeBalancer_Update(t *testing.T) { client, nodebalancer, teardown, err := setupNodeBalancer(t, "fixtures/TestNodeBalancer_Update") defer teardown() @@ -104,3 +121,40 @@ func setupNodeBalancer(t *testing.T, fixturesYaml string) (*linodego.Client, *li } return client, nodebalancer, teardown, err } + +func setupNodeBalancerWithVPC(t *testing.T, fixturesYaml string) (*linodego.Client, *linodego.NodeBalancer, func(), error) { + t.Helper() + var fixtureTeardown func() + client, fixtureTeardown := createTestClient(t, fixturesYaml) + vpc, vpcTeardown, err := createVPC(t, client) + if err != nil { + t.Errorf("Error creating vpc, got error %v", err) + } + createOpts := linodego.NodeBalancerCreateOptions{ + Label: &label, + Region: vpc.Region, + ClientConnThrottle: &clientConnThrottle, + FirewallID: GetFirewallID(), + VPCs: []*linodego.NodeBalancerVPCConfig{ + { + IPv4Range: "10.100.0.0/24", + IPv6Range: "", + SubnetID: vpc.Subnets[0].ID, + }, + }, + } + + nodebalancer, err := client.CreateNodeBalancer(context.Background(), createOpts) + if err != nil { + t.Fatalf("Error listing nodebalancers, expected struct, got error %v", err) + } + + teardown := func() { + if err := client.DeleteNodeBalancer(context.Background(), nodebalancer.ID); err != nil { + t.Errorf("Expected to delete a nodebalancer, but got %v", err) + } + fixtureTeardown() + vpcTeardown() + } + return client, nodebalancer, teardown, err +} diff --git a/test/integration/vpc_test.go b/test/integration/vpc_test.go index a5a19c15d..73215ca32 100644 --- a/test/integration/vpc_test.go +++ b/test/integration/vpc_test.go @@ -36,6 +36,12 @@ func createVPC(t *testing.T, client *linodego.Client, vpcModifier ...vpcModifier createOpts := linodego.VPCCreateOptions{ Label: "go-test-vpc-" + getUniqueText(), Region: getRegionsWithCaps(t, client, []string{"VPCs"})[0], + Subnets: []linodego.VPCSubnetCreateOptions{ + { + Label: "subnet1", + IPv4: "10.0.0.0/8", + }, + }, } for _, mod := range vpcModifier { From 1f6cf9d1ef53371c02f79221d34acf9dde456da3 Mon Sep 17 00:00:00 2001 From: Khaja Omer Date: Thu, 13 Feb 2025 09:56:58 -0600 Subject: [PATCH 07/15] Adding records for fixtures --- .../TestNodeBalancerVpcConfig_Get.yaml | 620 ++++++++++++++++++ .../TestNodeBalancerVpcConfig_List.yaml | 557 ++++++++++++++++ .../nodebalancer_config_vpc_test.go | 48 +- 3 files changed, 1179 insertions(+), 46 deletions(-) create mode 100644 test/integration/fixtures/TestNodeBalancerVpcConfig_Get.yaml create mode 100644 test/integration/fixtures/TestNodeBalancerVpcConfig_List.yaml diff --git a/test/integration/fixtures/TestNodeBalancerVpcConfig_Get.yaml b/test/integration/fixtures/TestNodeBalancerVpcConfig_Get.yaml new file mode 100644 index 000000000..4ba878f35 --- /dev/null +++ b/test/integration/fixtures/TestNodeBalancerVpcConfig_Get.yaml @@ -0,0 +1,620 @@ +--- +version: 1 +interactions: +- request: + body: "" + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/regions?page=1 + method: GET + response: + body: '{"data": [{"id": "ap-west", "label": "Mumbai, IN", "country": "in", "capabilities": + ["Linodes", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", + "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts"], "status": + "ok", "resolvers": {"ipv4": "172.105.34.5,172.105.35.5,172.105.36.5,172.105.37.5,172.105.38.5,172.105.39.5,172.105.40.5,172.105.41.5,172.105.42.5,172.105.43.5", + "ipv6": "2400:8904:e001:264::1,2400:8904:e001:264::2,2400:8904:e001:264::3,2400:8904:e001:264::4,2400:8904:e001:264::5,2400:8904:e001:264::6,2400:8904:e001:264::7,2400:8904:e001:264::8,2400:8904:e001:264::9,2400:8904:e001:264::10"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "ca-central", "label": "Toronto, CA", "country": + "ca", "capabilities": ["Linodes", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts"], "status": + "ok", "resolvers": {"ipv4": "172.105.0.5,172.105.3.5,172.105.4.5,172.105.5.5,172.105.6.5,172.105.7.5,172.105.8.5,172.105.9.5,172.105.10.5,172.105.11.5", + "ipv6": "2600:3c04:e001:305::1,2600:3c04:e001:305::2,2600:3c04:e001:305::3,2600:3c04:e001:305::4,2600:3c04:e001:305::5,2600:3c04:e001:305::6,2600:3c04:e001:305::7,2600:3c04:e001:305::8,2600:3c04:e001:305::9,2600:3c04:e001:305::10"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "ap-southeast", "label": "Sydney, AU", "country": + "au", "capabilities": ["Linodes", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts"], "status": + "ok", "resolvers": {"ipv4": "172.105.166.5,172.105.169.5,172.105.168.5,172.105.172.5,172.105.162.5,172.105.170.5,172.105.167.5,172.105.171.5,172.105.181.5,172.105.161.5", + "ipv6": "2400:8907:e001:294::1,2400:8907:e001:294::2,2400:8907:e001:294::3,2400:8907:e001:294::4,2400:8907:e001:294::5,2400:8907:e001:294::6,2400:8907:e001:294::7,2400:8907:e001:294::8,2400:8907:e001:294::9,2400:8907:e001:294::10"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "us-iad", "label": "Washington, DC", "country": + "us", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", + "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium + Plans", "Placement Group", "StackScripts"], "status": "ok", "resolvers": {"ipv4": + "139.144.192.62,139.144.192.60,139.144.192.61,139.144.192.53,139.144.192.54,139.144.192.67,139.144.192.69,139.144.192.66,139.144.192.52,139.144.192.68", + "ipv6": "2600:3c05:e001:bc::1,2600:3c05:e001:bc::2,2600:3c05:e001:bc::3,2600:3c05:e001:bc::4,2600:3c05:e001:bc::5,2600:3c05:e001:bc::6,2600:3c05:e001:bc::7,2600:3c05:e001:bc::8,2600:3c05:e001:bc::9,2600:3c05:e001:bc::10"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "us-ord", "label": "Chicago, IL", "country": + "us", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "Object Storage", "GPU Linodes", + "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", + "Premium Plans", "Placement Group", "StackScripts"], "status": "ok", "resolvers": + {"ipv4": "172.232.0.17,172.232.0.16,172.232.0.21,172.232.0.13,172.232.0.22,172.232.0.9,172.232.0.19,172.232.0.20,172.232.0.15,172.232.0.18", + "ipv6": "2600:3c06:e001:67::1,2600:3c06:e001:67::2,2600:3c06:e001:67::3,2600:3c06:e001:67::4,2600:3c06:e001:67::5,2600:3c06:e001:67::6,2600:3c06:e001:67::7,2600:3c06:e001:67::8,2600:3c06:e001:67::9,2600:3c06:e001:67::10"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "fr-par", "label": "Paris, FR", "country": + "fr", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "Object Storage", "GPU Linodes", + "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", + "Premium Plans", "Placement Group", "StackScripts"], "status": "ok", "resolvers": + {"ipv4": "172.232.32.21,172.232.32.23,172.232.32.17,172.232.32.18,172.232.32.16,172.232.32.22,172.232.32.20,172.232.32.14,172.232.32.11,172.232.32.12", + "ipv6": "2600:3c07:e001:9a::1,2600:3c07:e001:9a::2,2600:3c07:e001:9a::3,2600:3c07:e001:9a::4,2600:3c07:e001:9a::5,2600:3c07:e001:9a::6,2600:3c07:e001:9a::7,2600:3c07:e001:9a::8,2600:3c07:e001:9a::9,2600:3c07:e001:9a::10"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "us-sea", "label": "Seattle, WA", "country": + "us", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "Object Storage", "GPU Linodes", + "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", + "Premium Plans", "Placement Group", "StackScripts"], "status": "ok", "resolvers": + {"ipv4": "172.232.160.19,172.232.160.21,172.232.160.17,172.232.160.15,172.232.160.18,172.232.160.8,172.232.160.12,172.232.160.11,172.232.160.14,172.232.160.16", + "ipv6": "2600:3c0a:e001:7bb::1,2600:3c0a:e001:7bb::2,2600:3c0a:e001:7bb::3,2600:3c0a:e001:7bb::4,2600:3c0a:e001:7bb::5,2600:3c0a:e001:7bb::6,2600:3c0a:e001:7bb::7,2600:3c0a:e001:7bb::8,2600:3c0a:e001:7bb::9,2600:3c0a:e001:7bb::10"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "br-gru", "label": "Sao Paulo, BR", "country": + "br", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", + "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium + Plans", "Placement Group", "StackScripts"], "status": "ok", "resolvers": {"ipv4": + "172.233.0.4,172.233.0.9,172.233.0.7,172.233.0.12,172.233.0.5,172.233.0.13,172.233.0.10,172.233.0.6,172.233.0.8,172.233.0.11", + "ipv6": "2600:3c0d:e001:44::1,2600:3c0d:e001:44::2,2600:3c0d:e001:44::3,2600:3c0d:e001:44::4,2600:3c0d:e001:44::5,2600:3c0d:e001:44::6,2600:3c0d:e001:44::7,2600:3c0d:e001:44::8,2600:3c0d:e001:44::9,2600:3c0d:e001:44::10"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "nl-ams", "label": "Amsterdam, NL", "country": + "nl", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", + "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium + Plans", "Placement Group", "StackScripts"], "status": "ok", "resolvers": {"ipv4": + "172.233.33.36,172.233.33.38,172.233.33.35,172.233.33.39,172.233.33.34,172.233.33.33,172.233.33.31,172.233.33.30,172.233.33.37,172.233.33.32", + "ipv6": "2600:3c0e:e001:a0::1,2600:3c0e:e001:a0::2,2600:3c0e:e001:a0::3,2600:3c0e:e001:a0::4,2600:3c0e:e001:a0::5,2600:3c0e:e001:a0::6,2600:3c0e:e001:a0::7,2600:3c0e:e001:a0::8,2600:3c0e:e001:a0::9,2600:3c0e:e001:a0::10"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "se-sto", "label": "Stockholm, SE", "country": + "se", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", + "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium + Plans", "Placement Group", "StackScripts"], "status": "ok", "resolvers": {"ipv4": + "172.232.128.24,172.232.128.26,172.232.128.20,172.232.128.22,172.232.128.25,172.232.128.19,172.232.128.23,172.232.128.18,172.232.128.21,172.232.128.27", + "ipv6": "2600:3c09:e001:93::1,2600:3c09:e001:93::2,2600:3c09:e001:93::3,2600:3c09:e001:93::4,2600:3c09:e001:93::5,2600:3c09:e001:93::6,2600:3c09:e001:93::7,2600:3c09:e001:93::8,2600:3c09:e001:93::9,2600:3c09:e001:93::10"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "es-mad", "label": "Madrid, ES", "country": + "es", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", + "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium + Plans", "Placement Group", "StackScripts"], "status": "ok", "resolvers": {"ipv4": + "172.233.111.6,172.233.111.17,172.233.111.21,172.233.111.25,172.233.111.19,172.233.111.12,172.233.111.26,172.233.111.16,172.233.111.18,172.233.111.9", + "ipv6": "2a01:7e02:e001:3e::1,2a01:7e02:e001:3e::2,2a01:7e02:e001:3e::3,2a01:7e02:e001:3e::4,2a01:7e02:e001:3e::5,2a01:7e02:e001:3e::6,2a01:7e02:e001:3e::7,2a01:7e02:e001:3e::8,2a01:7e02:e001:3e::9,2a01:7e02:e001:3e::10"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "in-maa", "label": "Chennai, IN", "country": + "in", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", + "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium + Plans", "Placement Group", "StackScripts", "NETINT Quadra T1U"], "status": "ok", + "resolvers": {"ipv4": "172.232.96.17,172.232.96.26,172.232.96.19,172.232.96.20,172.232.96.25,172.232.96.21,172.232.96.18,172.232.96.22,172.232.96.23,172.232.96.24", + "ipv6": "2600:3c08:e001:82::1,2600:3c08:e001:82::2,2600:3c08:e001:82::3,2600:3c08:e001:82::4,2600:3c08:e001:82::5,2600:3c08:e001:82::6,2600:3c08:e001:82::7,2600:3c08:e001:82::8,2600:3c08:e001:82::9,2600:3c08:e001:82::10"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "jp-osa", "label": "Osaka, JP", "country": + "jp", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "Object Storage", "GPU Linodes", + "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", + "Premium Plans", "Placement Group", "StackScripts"], "status": "ok", "resolvers": + {"ipv4": "172.233.64.44,172.233.64.43,172.233.64.37,172.233.64.40,172.233.64.46,172.233.64.41,172.233.64.39,172.233.64.42,172.233.64.45,172.233.64.38", + "ipv6": "2400:8905:e001:d4::1,2400:8905:e001:d4::2,2400:8905:e001:d4::3,2400:8905:e001:d4::4,2400:8905:e001:d4::5,2400:8905:e001:d4::6,2400:8905:e001:d4::7,2400:8905:e001:d4::8,2400:8905:e001:d4::9,2400:8905:e001:d4::10"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "it-mil", "label": "Milan, IT", "country": + "it", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", + "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium + Plans", "Placement Group", "StackScripts"], "status": "ok", "resolvers": {"ipv4": + "172.232.192.19,172.232.192.18,172.232.192.16,172.232.192.20,172.232.192.24,172.232.192.21,172.232.192.22,172.232.192.17,172.232.192.15,172.232.192.23", + "ipv6": "2600:3c0b:e001:56::1,2600:3c0b:e001:56::2,2600:3c0b:e001:56::3,2600:3c0b:e001:56::4,2600:3c0b:e001:56::5,2600:3c0b:e001:56::6,2600:3c0b:e001:56::7,2600:3c0b:e001:56::8,2600:3c0b:e001:56::9,2600:3c0b:e001:56::10"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "us-mia", "label": "Miami, FL", "country": + "us", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", + "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium + Plans", "Placement Group", "StackScripts", "NETINT Quadra T1U"], "status": "ok", + "resolvers": {"ipv4": "172.233.160.34,172.233.160.27,172.233.160.30,172.233.160.29,172.233.160.32,172.233.160.28,172.233.160.33,172.233.160.26,172.233.160.25,172.233.160.31", + "ipv6": "2a01:7e04:e001:b3::1,2a01:7e04:e001:b3::2,2a01:7e04:e001:b3::3,2a01:7e04:e001:b3::4,2a01:7e04:e001:b3::5,2a01:7e04:e001:b3::6,2a01:7e04:e001:b3::7,2a01:7e04:e001:b3::8,2a01:7e04:e001:b3::9,2a01:7e04:e001:b3::10"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "id-cgk", "label": "Jakarta, ID", "country": + "id", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", + "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium + Plans", "Placement Group", "StackScripts"], "status": "ok", "resolvers": {"ipv4": + "172.232.224.23,172.232.224.32,172.232.224.26,172.232.224.27,172.232.224.21,172.232.224.24,172.232.224.22,172.232.224.20,172.232.224.31,172.232.224.28", + "ipv6": "2600:3c0c:e001:7f3::1,2600:3c0c:e001:7f3::2,2600:3c0c:e001:7f3::3,2600:3c0c:e001:7f3::4,2600:3c0c:e001:7f3::5,2600:3c0c:e001:7f3::6,2600:3c0c:e001:7f3::7,2600:3c0c:e001:7f3::8,2600:3c0c:e001:7f3::9,2600:3c0c:e001:7f3::10"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "us-lax", "label": "Los Angeles, CA", "country": + "us", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", + "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium + Plans", "Placement Group", "StackScripts", "NETINT Quadra T1U"], "status": "ok", + "resolvers": {"ipv4": "172.233.128.45,172.233.128.38,172.233.128.53,172.233.128.37,172.233.128.34,172.233.128.36,172.233.128.33,172.233.128.39,172.233.128.43,172.233.128.44", + "ipv6": "2a01:7e03:e001:e8::1,2a01:7e03:e001:e8::2,2a01:7e03:e001:e8::3,2a01:7e03:e001:e8::4,2a01:7e03:e001:e8::5,2a01:7e03:e001:e8::6,2a01:7e03:e001:e8::7,2a01:7e03:e001:e8::8,2a01:7e03:e001:e8::9,2a01:7e03:e001:e8::10"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "gb-lon", "label": "London 2, UK", "country": + "gb", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", + "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium + Plans", "Placement Group", "StackScripts"], "status": "ok", "resolvers": {"ipv4": + "172.236.0.46,172.236.0.50,172.236.0.47,172.236.0.53,172.236.0.52,172.236.0.45,172.236.0.49,172.236.0.51,172.236.0.54,172.236.0.48", + "ipv6": "2600:3c13:e001:29::1,2600:3c13:e001:29::2,2600:3c13:e001:29::3,2600:3c13:e001:29::4,2600:3c13:e001:29::5,2600:3c13:e001:29::6,2600:3c13:e001:29::7,2600:3c13:e001:29::8,2600:3c13:e001:29::9,2600:3c13:e001:29::10"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "au-mel", "label": "Melbourne, AU", "country": + "au", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", + "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium + Plans", "Placement Group", "StackScripts", "NETINT Quadra T1U"], "status": "ok", + "resolvers": {"ipv4": "172.236.32.23,172.236.32.35,172.236.32.30,172.236.32.28,172.236.32.32,172.236.32.33,172.236.32.27,172.236.32.37,172.236.32.29,172.236.32.34", + "ipv6": "2600:3c14:e001:15::1,2600:3c14:e001:15::2,2600:3c14:e001:15::3,2600:3c14:e001:15::4,2600:3c14:e001:15::5,2600:3c14:e001:15::6,2600:3c14:e001:15::7,2600:3c14:e001:15::8,2600:3c14:e001:15::9,2600:3c14:e001:15::10"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "in-bom-2", "label": "Mumbai 2, IN", "country": + "in", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "GPU Linodes", "Cloud Firewall", + "Vlans", "VPCs", "Metadata", "Premium Plans", "Placement Group", "StackScripts"], + "status": "ok", "resolvers": {"ipv4": "172.236.171.41,172.236.171.42,172.236.171.25,172.236.171.44,172.236.171.26,172.236.171.45,172.236.171.24,172.236.171.43,172.236.171.27,172.236.171.28", + "ipv6": "2600:3c16:e001:b::1,2600:3c16:e001:b::2,2600:3c16:e001:b::3,2600:3c16:e001:b::4,2600:3c16:e001:b::5,2600:3c16:e001:b::6,2600:3c16:e001:b::7,2600:3c16:e001:b::8,2600:3c16:e001:b::9,2600:3c16:e001:b::10"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "de-fra-2", "label": "Frankfurt 2, DE", "country": + "de", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "GPU Linodes", "Kubernetes", "Cloud + Firewall", "Vlans", "VPCs", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "NETINT Quadra T1U"], "status": "ok", "resolvers": {"ipv4": + "172.236.203.9,172.236.203.16,172.236.203.19,172.236.203.15,172.236.203.17,172.236.203.11,172.236.203.18,172.236.203.14,172.236.203.13,172.236.203.12", + "ipv6": "2600:3c17:e001:4::1,2600:3c17:e001:4::2,2600:3c17:e001:4::3,2600:3c17:e001:4::4,2600:3c17:e001:4::5,2600:3c17:e001:4::6,2600:3c17:e001:4::7,2600:3c17:e001:4::8,2600:3c17:e001:4::9,2600:3c17:e001:4::10"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "sg-sin-2", "label": "Singapore 2, SG", "country": + "sg", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "Object Storage", "GPU Linodes", + "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", + "Premium Plans", "Placement Group", "StackScripts"], "status": "ok", "resolvers": + {"ipv4": "172.236.129.8,172.236.129.42,172.236.129.41,172.236.129.19,172.236.129.46,172.236.129.23,172.236.129.48,172.236.129.20,172.236.129.21,172.236.129.47", + "ipv6": "2600:3c15:e001:17::1,2600:3c15:e001:17::2,2600:3c15:e001:17::3,2600:3c15:e001:17::4,2600:3c15:e001:17::5,2600:3c15:e001:17::6,2600:3c15:e001:17::7,2600:3c15:e001:17::8,2600:3c15:e001:17::9,2600:3c15:e001:17::10"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "jp-tyo-3", "label": "Tokyo 3, JP", "country": + "jp", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Metadata", "Premium Plans", "Placement Group", "StackScripts"], + "status": "ok", "resolvers": {"ipv4": "172.237.4.15,172.237.4.19,172.237.4.17,172.237.4.21,172.237.4.16,172.237.4.18,172.237.4.23,172.237.4.24,172.237.4.20,172.237.4.14", + "ipv6": "2600:3c18:e001:4::1,2600:3c18:e001:4::2,2600:3c18:e001:4::3,2600:3c18:e001:4::4,2600:3c18:e001:4::5,2600:3c18:e001:4::6,2600:3c18:e001:4::7,2600:3c18:e001:4::8,2600:3c18:e001:4::9,2600:3c18:e001:4::10"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "us-central", "label": "Dallas, TX", "country": + "us", "capabilities": ["Linodes", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts"], "status": + "ok", "resolvers": {"ipv4": "72.14.179.5,72.14.188.5,173.255.199.5,66.228.53.5,96.126.122.5,96.126.124.5,96.126.127.5,198.58.107.5,198.58.111.5,23.239.24.5", + "ipv6": "2600:3c00::2,2600:3c00::9,2600:3c00::7,2600:3c00::5,2600:3c00::3,2600:3c00::8,2600:3c00::6,2600:3c00::4,2600:3c00::c,2600:3c00::b"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "us-west", "label": "Fremont, CA", "country": + "us", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "Kubernetes", "Cloud Firewall", + "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata", "Placement + Group", "StackScripts"], "status": "ok", "resolvers": {"ipv4": "173.230.145.5, + 173.230.147.5, 173.230.155.5, 173.255.212.5, 173.255.219.5, 173.255.241.5, 173.255.243.5, + 173.255.244.5, 74.207.241.5, 74.207.242.5", "ipv6": "2600:3c01::2, 2600:3c01::9, + 2600:3c01::5, 2600:3c01::7, 2600:3c01::3, 2600:3c01::8, 2600:3c01::4, 2600:3c01::b, + 2600:3c01::c, 2600:3c01::6"}, "placement_group_limits": {"maximum_pgs_per_customer": + null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "us-southeast", + "label": "Atlanta, GA", "country": "us", "capabilities": ["Linodes", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "Object Storage", "GPU Linodes", + "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", "Managed + Databases", "Metadata", "Placement Group", "StackScripts"], "status": "ok", + "resolvers": {"ipv4": "74.207.231.5,173.230.128.5,173.230.129.5,173.230.136.5,173.230.140.5,66.228.59.5,66.228.62.5,50.116.35.5,50.116.41.5,23.239.18.5", + "ipv6": "2600:3c02::3,2600:3c02::5,2600:3c02::4,2600:3c02::6,2600:3c02::c,2600:3c02::7,2600:3c02::2,2600:3c02::9,2600:3c02::8,2600:3c02::b"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "us-east", "label": "Newark, NJ", "country": + "us", "capabilities": ["Linodes", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata", "Placement + Group", "StackScripts"], "status": "ok", "resolvers": {"ipv4": "66.228.42.5,96.126.106.5,50.116.53.5,50.116.58.5,50.116.61.5,50.116.62.5,66.175.211.5,97.107.133.4,173.255.225.5,66.228.35.5", + "ipv6": "2600:3c03::7,2600:3c03::4,2600:3c03::9,2600:3c03::6,2600:3c03::3,2600:3c03::c,2600:3c03::5,2600:3c03::b,2600:3c03::2,2600:3c03::8"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "eu-west", "label": "London, UK", "country": + "gb", "capabilities": ["Linodes", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Metadata", "Placement Group", "StackScripts"], "status": "ok", "resolvers": + {"ipv4": "178.79.182.5, 176.58.107.5, 176.58.116.5, 176.58.121.5, 151.236.220.5, + 212.71.252.5, 212.71.253.5, 109.74.192.20, 109.74.193.20, 109.74.194.20", "ipv6": + "2a01:7e00::9, 2a01:7e00::3, 2a01:7e00::c, 2a01:7e00::5, 2a01:7e00::6, 2a01:7e00::8, + 2a01:7e00::b, 2a01:7e00::4, 2a01:7e00::7, 2a01:7e00::2"}, "placement_group_limits": + {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5}, "site_type": + "core"}, {"id": "ap-south", "label": "Singapore, SG", "country": "sg", "capabilities": + ["Linodes", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", + "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "Block + Storage Migrations", "Metadata", "Placement Group", "StackScripts"], "status": + "ok", "resolvers": {"ipv4": "139.162.11.5,139.162.13.5,139.162.14.5,139.162.15.5,139.162.16.5,139.162.21.5,139.162.27.5,103.3.60.18,103.3.60.19,103.3.60.20", + "ipv6": "2400:8901::5,2400:8901::4,2400:8901::b,2400:8901::3,2400:8901::9,2400:8901::2,2400:8901::8,2400:8901::7,2400:8901::c,2400:8901::6"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "eu-central", "label": "Frankfurt, DE", "country": + "de", "capabilities": ["Linodes", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata", "Placement + Group", "StackScripts"], "status": "ok", "resolvers": {"ipv4": "139.162.130.5,139.162.131.5,139.162.132.5,139.162.133.5,139.162.134.5,139.162.135.5,139.162.136.5,139.162.137.5,139.162.138.5,139.162.139.5", + "ipv6": "2a01:7e01::5,2a01:7e01::9,2a01:7e01::7,2a01:7e01::c,2a01:7e01::2,2a01:7e01::4,2a01:7e01::3,2a01:7e01::6,2a01:7e01::b,2a01:7e01::8"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "ap-northeast", "label": "Tokyo 2, JP", "country": + "jp", "capabilities": ["Linodes", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts"], "status": + "ok", "resolvers": {"ipv4": "139.162.66.5,139.162.67.5,139.162.68.5,139.162.69.5,139.162.70.5,139.162.71.5,139.162.72.5,139.162.73.5,139.162.74.5,139.162.75.5", + "ipv6": "2400:8902::3,2400:8902::6,2400:8902::c,2400:8902::4,2400:8902::2,2400:8902::8,2400:8902::7,2400:8902::5,2400:8902::b,2400:8902::9"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}], "page": 1, "pages": 1, "results": 31}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 13 Feb 2025 15:50:26 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - '*' + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "1600" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" +- request: + body: '{"label":"go-test-vpc-1739461825930551000","region":"us-iad","subnets":[{"label":"subnet1","ipv4":"10.0.0.0/8"}]}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/vpcs + method: POST + response: + body: '{"id": 153099, "label": "go-test-vpc-1739461825930551000", "description": + "", "region": "us-iad", "subnets": [{"id": 148376, "label": "subnet1", "ipv4": + "10.0.0.0/8", "linodes": [], "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05"}], + "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Length: + - "319" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 13 Feb 2025 15:50:26 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - vpc:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "1600" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" +- request: + body: '{"label":"go-test-def","region":"us-iad","client_conn_throttle":20,"tags":null,"firewall_id":1805781,"vpcs":[{"ipv4_range":"10.100.0.0/24","subnet_id":148376}]}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/nodebalancers + method: POST + response: + body: '{"id": 1283187, "label": "go-test-def", "region": "us-iad", "hostname": + "172-234-157-109.ip.linodeusercontent.com", "ipv4": "172.234.157.109", "ipv6": + "2600:3c05:1::acea:9d6d", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", + "client_conn_throttle": 20, "client_udp_sess_throttle": 0, "tags": [], "transfer": + {"in": null, "out": null, "total": null}}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Length: + - "369" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 13 Feb 2025 15:50:27 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - nodebalancers:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "1600" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/nodebalancers/1283187/vpcs?page=1 + method: GET + response: + body: '{"data": [{"id": 1187, "nodebalancer_id": 1283187, "vpc_id": 153099, "subnet_id": + 148376, "ipv4_range": "10.100.0.0/24"}], "page": 1, "pages": 1, "results": 1}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Length: + - "159" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 13 Feb 2025 15:50:27 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - nodebalancers:read_only + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "1600" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/nodebalancers/1283187/vpcs/1187 + method: GET + response: + body: '{"id": 1187, "nodebalancer_id": 1283187, "vpc_id": 153099, "subnet_id": + 148376, "ipv4_range": "10.100.0.0/24"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Length: + - "110" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 13 Feb 2025 15:50:34 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - nodebalancers:read_only + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "1600" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/nodebalancers/1283187 + method: DELETE + response: + body: '{}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Length: + - "2" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 13 Feb 2025 15:50:34 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - nodebalancers:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "1600" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" diff --git a/test/integration/fixtures/TestNodeBalancerVpcConfig_List.yaml b/test/integration/fixtures/TestNodeBalancerVpcConfig_List.yaml new file mode 100644 index 000000000..d0d1cac20 --- /dev/null +++ b/test/integration/fixtures/TestNodeBalancerVpcConfig_List.yaml @@ -0,0 +1,557 @@ +--- +version: 1 +interactions: +- request: + body: "" + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/regions?page=1 + method: GET + response: + body: '{"data": [{"id": "ap-west", "label": "Mumbai, IN", "country": "in", "capabilities": + ["Linodes", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", + "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts"], "status": + "ok", "resolvers": {"ipv4": "172.105.34.5,172.105.35.5,172.105.36.5,172.105.37.5,172.105.38.5,172.105.39.5,172.105.40.5,172.105.41.5,172.105.42.5,172.105.43.5", + "ipv6": "2400:8904:e001:264::1,2400:8904:e001:264::2,2400:8904:e001:264::3,2400:8904:e001:264::4,2400:8904:e001:264::5,2400:8904:e001:264::6,2400:8904:e001:264::7,2400:8904:e001:264::8,2400:8904:e001:264::9,2400:8904:e001:264::10"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "ca-central", "label": "Toronto, CA", "country": + "ca", "capabilities": ["Linodes", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts"], "status": + "ok", "resolvers": {"ipv4": "172.105.0.5,172.105.3.5,172.105.4.5,172.105.5.5,172.105.6.5,172.105.7.5,172.105.8.5,172.105.9.5,172.105.10.5,172.105.11.5", + "ipv6": "2600:3c04:e001:305::1,2600:3c04:e001:305::2,2600:3c04:e001:305::3,2600:3c04:e001:305::4,2600:3c04:e001:305::5,2600:3c04:e001:305::6,2600:3c04:e001:305::7,2600:3c04:e001:305::8,2600:3c04:e001:305::9,2600:3c04:e001:305::10"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "ap-southeast", "label": "Sydney, AU", "country": + "au", "capabilities": ["Linodes", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts"], "status": + "ok", "resolvers": {"ipv4": "172.105.166.5,172.105.169.5,172.105.168.5,172.105.172.5,172.105.162.5,172.105.170.5,172.105.167.5,172.105.171.5,172.105.181.5,172.105.161.5", + "ipv6": "2400:8907:e001:294::1,2400:8907:e001:294::2,2400:8907:e001:294::3,2400:8907:e001:294::4,2400:8907:e001:294::5,2400:8907:e001:294::6,2400:8907:e001:294::7,2400:8907:e001:294::8,2400:8907:e001:294::9,2400:8907:e001:294::10"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "us-iad", "label": "Washington, DC", "country": + "us", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", + "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium + Plans", "Placement Group", "StackScripts"], "status": "ok", "resolvers": {"ipv4": + "139.144.192.62,139.144.192.60,139.144.192.61,139.144.192.53,139.144.192.54,139.144.192.67,139.144.192.69,139.144.192.66,139.144.192.52,139.144.192.68", + "ipv6": "2600:3c05:e001:bc::1,2600:3c05:e001:bc::2,2600:3c05:e001:bc::3,2600:3c05:e001:bc::4,2600:3c05:e001:bc::5,2600:3c05:e001:bc::6,2600:3c05:e001:bc::7,2600:3c05:e001:bc::8,2600:3c05:e001:bc::9,2600:3c05:e001:bc::10"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "us-ord", "label": "Chicago, IL", "country": + "us", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "Object Storage", "GPU Linodes", + "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", + "Premium Plans", "Placement Group", "StackScripts"], "status": "ok", "resolvers": + {"ipv4": "172.232.0.17,172.232.0.16,172.232.0.21,172.232.0.13,172.232.0.22,172.232.0.9,172.232.0.19,172.232.0.20,172.232.0.15,172.232.0.18", + "ipv6": "2600:3c06:e001:67::1,2600:3c06:e001:67::2,2600:3c06:e001:67::3,2600:3c06:e001:67::4,2600:3c06:e001:67::5,2600:3c06:e001:67::6,2600:3c06:e001:67::7,2600:3c06:e001:67::8,2600:3c06:e001:67::9,2600:3c06:e001:67::10"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "fr-par", "label": "Paris, FR", "country": + "fr", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "Object Storage", "GPU Linodes", + "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", + "Premium Plans", "Placement Group", "StackScripts"], "status": "ok", "resolvers": + {"ipv4": "172.232.32.21,172.232.32.23,172.232.32.17,172.232.32.18,172.232.32.16,172.232.32.22,172.232.32.20,172.232.32.14,172.232.32.11,172.232.32.12", + "ipv6": "2600:3c07:e001:9a::1,2600:3c07:e001:9a::2,2600:3c07:e001:9a::3,2600:3c07:e001:9a::4,2600:3c07:e001:9a::5,2600:3c07:e001:9a::6,2600:3c07:e001:9a::7,2600:3c07:e001:9a::8,2600:3c07:e001:9a::9,2600:3c07:e001:9a::10"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "us-sea", "label": "Seattle, WA", "country": + "us", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "Object Storage", "GPU Linodes", + "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", + "Premium Plans", "Placement Group", "StackScripts"], "status": "ok", "resolvers": + {"ipv4": "172.232.160.19,172.232.160.21,172.232.160.17,172.232.160.15,172.232.160.18,172.232.160.8,172.232.160.12,172.232.160.11,172.232.160.14,172.232.160.16", + "ipv6": "2600:3c0a:e001:7bb::1,2600:3c0a:e001:7bb::2,2600:3c0a:e001:7bb::3,2600:3c0a:e001:7bb::4,2600:3c0a:e001:7bb::5,2600:3c0a:e001:7bb::6,2600:3c0a:e001:7bb::7,2600:3c0a:e001:7bb::8,2600:3c0a:e001:7bb::9,2600:3c0a:e001:7bb::10"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "br-gru", "label": "Sao Paulo, BR", "country": + "br", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", + "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium + Plans", "Placement Group", "StackScripts"], "status": "ok", "resolvers": {"ipv4": + "172.233.0.4,172.233.0.9,172.233.0.7,172.233.0.12,172.233.0.5,172.233.0.13,172.233.0.10,172.233.0.6,172.233.0.8,172.233.0.11", + "ipv6": "2600:3c0d:e001:44::1,2600:3c0d:e001:44::2,2600:3c0d:e001:44::3,2600:3c0d:e001:44::4,2600:3c0d:e001:44::5,2600:3c0d:e001:44::6,2600:3c0d:e001:44::7,2600:3c0d:e001:44::8,2600:3c0d:e001:44::9,2600:3c0d:e001:44::10"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "nl-ams", "label": "Amsterdam, NL", "country": + "nl", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", + "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium + Plans", "Placement Group", "StackScripts"], "status": "ok", "resolvers": {"ipv4": + "172.233.33.36,172.233.33.38,172.233.33.35,172.233.33.39,172.233.33.34,172.233.33.33,172.233.33.31,172.233.33.30,172.233.33.37,172.233.33.32", + "ipv6": "2600:3c0e:e001:a0::1,2600:3c0e:e001:a0::2,2600:3c0e:e001:a0::3,2600:3c0e:e001:a0::4,2600:3c0e:e001:a0::5,2600:3c0e:e001:a0::6,2600:3c0e:e001:a0::7,2600:3c0e:e001:a0::8,2600:3c0e:e001:a0::9,2600:3c0e:e001:a0::10"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "se-sto", "label": "Stockholm, SE", "country": + "se", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", + "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium + Plans", "Placement Group", "StackScripts"], "status": "ok", "resolvers": {"ipv4": + "172.232.128.24,172.232.128.26,172.232.128.20,172.232.128.22,172.232.128.25,172.232.128.19,172.232.128.23,172.232.128.18,172.232.128.21,172.232.128.27", + "ipv6": "2600:3c09:e001:93::1,2600:3c09:e001:93::2,2600:3c09:e001:93::3,2600:3c09:e001:93::4,2600:3c09:e001:93::5,2600:3c09:e001:93::6,2600:3c09:e001:93::7,2600:3c09:e001:93::8,2600:3c09:e001:93::9,2600:3c09:e001:93::10"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "es-mad", "label": "Madrid, ES", "country": + "es", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", + "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium + Plans", "Placement Group", "StackScripts"], "status": "ok", "resolvers": {"ipv4": + "172.233.111.6,172.233.111.17,172.233.111.21,172.233.111.25,172.233.111.19,172.233.111.12,172.233.111.26,172.233.111.16,172.233.111.18,172.233.111.9", + "ipv6": "2a01:7e02:e001:3e::1,2a01:7e02:e001:3e::2,2a01:7e02:e001:3e::3,2a01:7e02:e001:3e::4,2a01:7e02:e001:3e::5,2a01:7e02:e001:3e::6,2a01:7e02:e001:3e::7,2a01:7e02:e001:3e::8,2a01:7e02:e001:3e::9,2a01:7e02:e001:3e::10"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "in-maa", "label": "Chennai, IN", "country": + "in", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", + "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium + Plans", "Placement Group", "StackScripts", "NETINT Quadra T1U"], "status": "ok", + "resolvers": {"ipv4": "172.232.96.17,172.232.96.26,172.232.96.19,172.232.96.20,172.232.96.25,172.232.96.21,172.232.96.18,172.232.96.22,172.232.96.23,172.232.96.24", + "ipv6": "2600:3c08:e001:82::1,2600:3c08:e001:82::2,2600:3c08:e001:82::3,2600:3c08:e001:82::4,2600:3c08:e001:82::5,2600:3c08:e001:82::6,2600:3c08:e001:82::7,2600:3c08:e001:82::8,2600:3c08:e001:82::9,2600:3c08:e001:82::10"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "jp-osa", "label": "Osaka, JP", "country": + "jp", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "Object Storage", "GPU Linodes", + "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", + "Premium Plans", "Placement Group", "StackScripts"], "status": "ok", "resolvers": + {"ipv4": "172.233.64.44,172.233.64.43,172.233.64.37,172.233.64.40,172.233.64.46,172.233.64.41,172.233.64.39,172.233.64.42,172.233.64.45,172.233.64.38", + "ipv6": "2400:8905:e001:d4::1,2400:8905:e001:d4::2,2400:8905:e001:d4::3,2400:8905:e001:d4::4,2400:8905:e001:d4::5,2400:8905:e001:d4::6,2400:8905:e001:d4::7,2400:8905:e001:d4::8,2400:8905:e001:d4::9,2400:8905:e001:d4::10"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "it-mil", "label": "Milan, IT", "country": + "it", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", + "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium + Plans", "Placement Group", "StackScripts"], "status": "ok", "resolvers": {"ipv4": + "172.232.192.19,172.232.192.18,172.232.192.16,172.232.192.20,172.232.192.24,172.232.192.21,172.232.192.22,172.232.192.17,172.232.192.15,172.232.192.23", + "ipv6": "2600:3c0b:e001:56::1,2600:3c0b:e001:56::2,2600:3c0b:e001:56::3,2600:3c0b:e001:56::4,2600:3c0b:e001:56::5,2600:3c0b:e001:56::6,2600:3c0b:e001:56::7,2600:3c0b:e001:56::8,2600:3c0b:e001:56::9,2600:3c0b:e001:56::10"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "us-mia", "label": "Miami, FL", "country": + "us", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", + "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium + Plans", "Placement Group", "StackScripts", "NETINT Quadra T1U"], "status": "ok", + "resolvers": {"ipv4": "172.233.160.34,172.233.160.27,172.233.160.30,172.233.160.29,172.233.160.32,172.233.160.28,172.233.160.33,172.233.160.26,172.233.160.25,172.233.160.31", + "ipv6": "2a01:7e04:e001:b3::1,2a01:7e04:e001:b3::2,2a01:7e04:e001:b3::3,2a01:7e04:e001:b3::4,2a01:7e04:e001:b3::5,2a01:7e04:e001:b3::6,2a01:7e04:e001:b3::7,2a01:7e04:e001:b3::8,2a01:7e04:e001:b3::9,2a01:7e04:e001:b3::10"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "id-cgk", "label": "Jakarta, ID", "country": + "id", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", + "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium + Plans", "Placement Group", "StackScripts"], "status": "ok", "resolvers": {"ipv4": + "172.232.224.23,172.232.224.32,172.232.224.26,172.232.224.27,172.232.224.21,172.232.224.24,172.232.224.22,172.232.224.20,172.232.224.31,172.232.224.28", + "ipv6": "2600:3c0c:e001:7f3::1,2600:3c0c:e001:7f3::2,2600:3c0c:e001:7f3::3,2600:3c0c:e001:7f3::4,2600:3c0c:e001:7f3::5,2600:3c0c:e001:7f3::6,2600:3c0c:e001:7f3::7,2600:3c0c:e001:7f3::8,2600:3c0c:e001:7f3::9,2600:3c0c:e001:7f3::10"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "us-lax", "label": "Los Angeles, CA", "country": + "us", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", + "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium + Plans", "Placement Group", "StackScripts", "NETINT Quadra T1U"], "status": "ok", + "resolvers": {"ipv4": "172.233.128.45,172.233.128.38,172.233.128.53,172.233.128.37,172.233.128.34,172.233.128.36,172.233.128.33,172.233.128.39,172.233.128.43,172.233.128.44", + "ipv6": "2a01:7e03:e001:e8::1,2a01:7e03:e001:e8::2,2a01:7e03:e001:e8::3,2a01:7e03:e001:e8::4,2a01:7e03:e001:e8::5,2a01:7e03:e001:e8::6,2a01:7e03:e001:e8::7,2a01:7e03:e001:e8::8,2a01:7e03:e001:e8::9,2a01:7e03:e001:e8::10"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "gb-lon", "label": "London 2, UK", "country": + "gb", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", + "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium + Plans", "Placement Group", "StackScripts"], "status": "ok", "resolvers": {"ipv4": + "172.236.0.46,172.236.0.50,172.236.0.47,172.236.0.53,172.236.0.52,172.236.0.45,172.236.0.49,172.236.0.51,172.236.0.54,172.236.0.48", + "ipv6": "2600:3c13:e001:29::1,2600:3c13:e001:29::2,2600:3c13:e001:29::3,2600:3c13:e001:29::4,2600:3c13:e001:29::5,2600:3c13:e001:29::6,2600:3c13:e001:29::7,2600:3c13:e001:29::8,2600:3c13:e001:29::9,2600:3c13:e001:29::10"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "au-mel", "label": "Melbourne, AU", "country": + "au", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", + "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium + Plans", "Placement Group", "StackScripts", "NETINT Quadra T1U"], "status": "ok", + "resolvers": {"ipv4": "172.236.32.23,172.236.32.35,172.236.32.30,172.236.32.28,172.236.32.32,172.236.32.33,172.236.32.27,172.236.32.37,172.236.32.29,172.236.32.34", + "ipv6": "2600:3c14:e001:15::1,2600:3c14:e001:15::2,2600:3c14:e001:15::3,2600:3c14:e001:15::4,2600:3c14:e001:15::5,2600:3c14:e001:15::6,2600:3c14:e001:15::7,2600:3c14:e001:15::8,2600:3c14:e001:15::9,2600:3c14:e001:15::10"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "in-bom-2", "label": "Mumbai 2, IN", "country": + "in", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "GPU Linodes", "Cloud Firewall", + "Vlans", "VPCs", "Metadata", "Premium Plans", "Placement Group", "StackScripts"], + "status": "ok", "resolvers": {"ipv4": "172.236.171.41,172.236.171.42,172.236.171.25,172.236.171.44,172.236.171.26,172.236.171.45,172.236.171.24,172.236.171.43,172.236.171.27,172.236.171.28", + "ipv6": "2600:3c16:e001:b::1,2600:3c16:e001:b::2,2600:3c16:e001:b::3,2600:3c16:e001:b::4,2600:3c16:e001:b::5,2600:3c16:e001:b::6,2600:3c16:e001:b::7,2600:3c16:e001:b::8,2600:3c16:e001:b::9,2600:3c16:e001:b::10"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "de-fra-2", "label": "Frankfurt 2, DE", "country": + "de", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "GPU Linodes", "Kubernetes", "Cloud + Firewall", "Vlans", "VPCs", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "NETINT Quadra T1U"], "status": "ok", "resolvers": {"ipv4": + "172.236.203.9,172.236.203.16,172.236.203.19,172.236.203.15,172.236.203.17,172.236.203.11,172.236.203.18,172.236.203.14,172.236.203.13,172.236.203.12", + "ipv6": "2600:3c17:e001:4::1,2600:3c17:e001:4::2,2600:3c17:e001:4::3,2600:3c17:e001:4::4,2600:3c17:e001:4::5,2600:3c17:e001:4::6,2600:3c17:e001:4::7,2600:3c17:e001:4::8,2600:3c17:e001:4::9,2600:3c17:e001:4::10"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "sg-sin-2", "label": "Singapore 2, SG", "country": + "sg", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "Object Storage", "GPU Linodes", + "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", + "Premium Plans", "Placement Group", "StackScripts"], "status": "ok", "resolvers": + {"ipv4": "172.236.129.8,172.236.129.42,172.236.129.41,172.236.129.19,172.236.129.46,172.236.129.23,172.236.129.48,172.236.129.20,172.236.129.21,172.236.129.47", + "ipv6": "2600:3c15:e001:17::1,2600:3c15:e001:17::2,2600:3c15:e001:17::3,2600:3c15:e001:17::4,2600:3c15:e001:17::5,2600:3c15:e001:17::6,2600:3c15:e001:17::7,2600:3c15:e001:17::8,2600:3c15:e001:17::9,2600:3c15:e001:17::10"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "jp-tyo-3", "label": "Tokyo 3, JP", "country": + "jp", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Metadata", "Premium Plans", "Placement Group", "StackScripts"], + "status": "ok", "resolvers": {"ipv4": "172.237.4.15,172.237.4.19,172.237.4.17,172.237.4.21,172.237.4.16,172.237.4.18,172.237.4.23,172.237.4.24,172.237.4.20,172.237.4.14", + "ipv6": "2600:3c18:e001:4::1,2600:3c18:e001:4::2,2600:3c18:e001:4::3,2600:3c18:e001:4::4,2600:3c18:e001:4::5,2600:3c18:e001:4::6,2600:3c18:e001:4::7,2600:3c18:e001:4::8,2600:3c18:e001:4::9,2600:3c18:e001:4::10"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "us-central", "label": "Dallas, TX", "country": + "us", "capabilities": ["Linodes", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts"], "status": + "ok", "resolvers": {"ipv4": "72.14.179.5,72.14.188.5,173.255.199.5,66.228.53.5,96.126.122.5,96.126.124.5,96.126.127.5,198.58.107.5,198.58.111.5,23.239.24.5", + "ipv6": "2600:3c00::2,2600:3c00::9,2600:3c00::7,2600:3c00::5,2600:3c00::3,2600:3c00::8,2600:3c00::6,2600:3c00::4,2600:3c00::c,2600:3c00::b"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "us-west", "label": "Fremont, CA", "country": + "us", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "Kubernetes", "Cloud Firewall", + "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata", "Placement + Group", "StackScripts"], "status": "ok", "resolvers": {"ipv4": "173.230.145.5, + 173.230.147.5, 173.230.155.5, 173.255.212.5, 173.255.219.5, 173.255.241.5, 173.255.243.5, + 173.255.244.5, 74.207.241.5, 74.207.242.5", "ipv6": "2600:3c01::2, 2600:3c01::9, + 2600:3c01::5, 2600:3c01::7, 2600:3c01::3, 2600:3c01::8, 2600:3c01::4, 2600:3c01::b, + 2600:3c01::c, 2600:3c01::6"}, "placement_group_limits": {"maximum_pgs_per_customer": + null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "us-southeast", + "label": "Atlanta, GA", "country": "us", "capabilities": ["Linodes", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "Object Storage", "GPU Linodes", + "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", "Managed + Databases", "Metadata", "Placement Group", "StackScripts"], "status": "ok", + "resolvers": {"ipv4": "74.207.231.5,173.230.128.5,173.230.129.5,173.230.136.5,173.230.140.5,66.228.59.5,66.228.62.5,50.116.35.5,50.116.41.5,23.239.18.5", + "ipv6": "2600:3c02::3,2600:3c02::5,2600:3c02::4,2600:3c02::6,2600:3c02::c,2600:3c02::7,2600:3c02::2,2600:3c02::9,2600:3c02::8,2600:3c02::b"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "us-east", "label": "Newark, NJ", "country": + "us", "capabilities": ["Linodes", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata", "Placement + Group", "StackScripts"], "status": "ok", "resolvers": {"ipv4": "66.228.42.5,96.126.106.5,50.116.53.5,50.116.58.5,50.116.61.5,50.116.62.5,66.175.211.5,97.107.133.4,173.255.225.5,66.228.35.5", + "ipv6": "2600:3c03::7,2600:3c03::4,2600:3c03::9,2600:3c03::6,2600:3c03::3,2600:3c03::c,2600:3c03::5,2600:3c03::b,2600:3c03::2,2600:3c03::8"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "eu-west", "label": "London, UK", "country": + "gb", "capabilities": ["Linodes", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Metadata", "Placement Group", "StackScripts"], "status": "ok", "resolvers": + {"ipv4": "178.79.182.5, 176.58.107.5, 176.58.116.5, 176.58.121.5, 151.236.220.5, + 212.71.252.5, 212.71.253.5, 109.74.192.20, 109.74.193.20, 109.74.194.20", "ipv6": + "2a01:7e00::9, 2a01:7e00::3, 2a01:7e00::c, 2a01:7e00::5, 2a01:7e00::6, 2a01:7e00::8, + 2a01:7e00::b, 2a01:7e00::4, 2a01:7e00::7, 2a01:7e00::2"}, "placement_group_limits": + {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5}, "site_type": + "core"}, {"id": "ap-south", "label": "Singapore, SG", "country": "sg", "capabilities": + ["Linodes", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", + "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "Block + Storage Migrations", "Metadata", "Placement Group", "StackScripts"], "status": + "ok", "resolvers": {"ipv4": "139.162.11.5,139.162.13.5,139.162.14.5,139.162.15.5,139.162.16.5,139.162.21.5,139.162.27.5,103.3.60.18,103.3.60.19,103.3.60.20", + "ipv6": "2400:8901::5,2400:8901::4,2400:8901::b,2400:8901::3,2400:8901::9,2400:8901::2,2400:8901::8,2400:8901::7,2400:8901::c,2400:8901::6"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "eu-central", "label": "Frankfurt, DE", "country": + "de", "capabilities": ["Linodes", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata", "Placement + Group", "StackScripts"], "status": "ok", "resolvers": {"ipv4": "139.162.130.5,139.162.131.5,139.162.132.5,139.162.133.5,139.162.134.5,139.162.135.5,139.162.136.5,139.162.137.5,139.162.138.5,139.162.139.5", + "ipv6": "2a01:7e01::5,2a01:7e01::9,2a01:7e01::7,2a01:7e01::c,2a01:7e01::2,2a01:7e01::4,2a01:7e01::3,2a01:7e01::6,2a01:7e01::b,2a01:7e01::8"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "ap-northeast", "label": "Tokyo 2, JP", "country": + "jp", "capabilities": ["Linodes", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts"], "status": + "ok", "resolvers": {"ipv4": "139.162.66.5,139.162.67.5,139.162.68.5,139.162.69.5,139.162.70.5,139.162.71.5,139.162.72.5,139.162.73.5,139.162.74.5,139.162.75.5", + "ipv6": "2400:8902::3,2400:8902::6,2400:8902::c,2400:8902::4,2400:8902::2,2400:8902::8,2400:8902::7,2400:8902::5,2400:8902::b,2400:8902::9"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}], "page": 1, "pages": 1, "results": 31}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 13 Feb 2025 15:48:23 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - '*' + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "1600" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" +- request: + body: '{"label":"go-test-vpc-1739461703548700000","region":"us-iad","subnets":[{"label":"subnet1","ipv4":"10.0.0.0/8"}]}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/vpcs + method: POST + response: + body: '{"id": 153097, "label": "go-test-vpc-1739461703548700000", "description": + "", "region": "us-iad", "subnets": [{"id": 148373, "label": "subnet1", "ipv4": + "10.0.0.0/8", "linodes": [], "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05"}], + "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Length: + - "319" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 13 Feb 2025 15:48:23 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - vpc:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "1600" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" +- request: + body: '{"label":"go-test-def","region":"us-iad","client_conn_throttle":20,"tags":null,"firewall_id":1805773,"vpcs":[{"ipv4_range":"10.100.0.0/24","subnet_id":148373}]}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/nodebalancers + method: POST + response: + body: '{"id": 1283181, "label": "go-test-def", "region": "us-iad", "hostname": + "172-234-157-182.ip.linodeusercontent.com", "ipv4": "172.234.157.182", "ipv6": + "2600:3c05:1::acea:9db6", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", + "client_conn_throttle": 20, "client_udp_sess_throttle": 0, "tags": [], "transfer": + {"in": null, "out": null, "total": null}}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Length: + - "369" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 13 Feb 2025 15:48:24 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - nodebalancers:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "1600" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/nodebalancers/1283181/vpcs?page=1 + method: GET + response: + body: '{"data": [{"id": 1186, "nodebalancer_id": 1283181, "vpc_id": 153097, "subnet_id": + 148373, "ipv4_range": "10.100.0.0/24"}], "page": 1, "pages": 1, "results": 1}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Length: + - "159" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 13 Feb 2025 15:48:24 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - nodebalancers:read_only + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "1600" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/nodebalancers/1283181 + method: DELETE + response: + body: '{}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Length: + - "2" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 13 Feb 2025 15:48:24 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - nodebalancers:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "1600" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" diff --git a/test/integration/nodebalancer_config_vpc_test.go b/test/integration/nodebalancer_config_vpc_test.go index 71edeab64..70e01d486 100644 --- a/test/integration/nodebalancer_config_vpc_test.go +++ b/test/integration/nodebalancer_config_vpc_test.go @@ -4,12 +4,11 @@ import ( "context" "testing" - "github.com/linode/linodego" "github.com/stretchr/testify/require" ) func TestNodeBalancerVpcConfig_List(t *testing.T) { - client, nodebalancer, teardown, err := setupNodeBalancerVpcConfig(t, "fixtures/TestNodeBalancerVpcConfig_List") + client, nodebalancer, teardown, err := setupNodeBalancerWithVPC(t, "fixtures/TestNodeBalancerVpcConfig_List") if err != nil { t.Errorf("Error setting up nodebalancer: %s", err) } @@ -26,7 +25,7 @@ func TestNodeBalancerVpcConfig_List(t *testing.T) { } func TestNodeBalancerVpcConfig_Get(t *testing.T) { - client, nodebalancer, teardown, err := setupNodeBalancerVpcConfig(t, "fixtures/TestNodeBalancerVpcConfig_Get") + client, nodebalancer, teardown, err := setupNodeBalancerWithVPC(t, "fixtures/TestNodeBalancerVpcConfig_Get") if err != nil { t.Errorf("Error setting up nodebalancer: %s", err) } @@ -48,46 +47,3 @@ func TestNodeBalancerVpcConfig_Get(t *testing.T) { require.NotNil(t, config) require.Equal(t, configs[0].ID, config.ID) } - -func setupNodeBalancerVpcConfig(t *testing.T, fixturesYaml string) (*linodego.Client, *linodego.NodeBalancer, func(), error) { - t.Helper() - client, fixtureTeardown := createTestClient(t, fixturesYaml) - - // 1. Create a VPC and Subnet. - _, vpcSubnet, vpcTeardown, err := createVPCWithSubnet(t, client) - if err != nil { - t.Errorf("Error creating VPC and subnet: %s", err) - } - - // 2. Create a NodeBalancer - // We need a region that supports both NodeBalancers and VPC - nbCreateOpts := linodego.NodeBalancerCreateOptions{ - Label: &label, - Region: getRegionsWithCaps(t, client, []string{"NodeBalancers", "VPCs"})[0], - Vpcs: []*linodego.VPCConfig{ // We need to add this functionality to linodego - { - IPv4Range: vpcSubnet.IPv4, - SubnetID: vpcSubnet.ID, - }, - }, - } - nodebalancer, err := client.CreateNodeBalancer(context.Background(), nbCreateOpts) - if err != nil { - t.Errorf("Error creating nodebalancer: %s", err) - } - - teardown := func() { - // Delete resources in reverse order of creation. - if nodebalancer != nil { - err := client.DeleteNodeBalancer(context.Background(), nodebalancer.ID) - if err != nil { - t.Errorf("Error deleting nodebalancer: %s", err) - } - } - // Only need to call vpcTeardown, which deletes the VPC and subnet - vpcTeardown() - - fixtureTeardown() - } - return client, nodebalancer, teardown, err -} From 66f7ae7df2236d394f71d2db35e220290c91b64d Mon Sep 17 00:00:00 2001 From: Rahul Sharma Date: Thu, 13 Feb 2025 16:01:39 +0000 Subject: [PATCH 08/15] add generated fixtures --- .../TestNodeBalancerVpcConfig_Get.yaml | 70 +-- .../TestNodeBalancerVpcConfig_List.yaml | 70 +-- .../TestNodeBalancer_With_VPC_Create.yaml | 487 ++++++++++++++++++ 3 files changed, 557 insertions(+), 70 deletions(-) create mode 100644 test/integration/fixtures/TestNodeBalancer_With_VPC_Create.yaml diff --git a/test/integration/fixtures/TestNodeBalancerVpcConfig_Get.yaml b/test/integration/fixtures/TestNodeBalancerVpcConfig_Get.yaml index 4ba878f35..3552b8405 100644 --- a/test/integration/fixtures/TestNodeBalancerVpcConfig_Get.yaml +++ b/test/integration/fixtures/TestNodeBalancerVpcConfig_Get.yaml @@ -19,21 +19,21 @@ interactions: "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata", "Placement Group", "StackScripts"], "status": "ok", "resolvers": {"ipv4": "172.105.34.5,172.105.35.5,172.105.36.5,172.105.37.5,172.105.38.5,172.105.39.5,172.105.40.5,172.105.41.5,172.105.42.5,172.105.43.5", - "ipv6": "2400:8904:e001:264::1,2400:8904:e001:264::2,2400:8904:e001:264::3,2400:8904:e001:264::4,2400:8904:e001:264::5,2400:8904:e001:264::6,2400:8904:e001:264::7,2400:8904:e001:264::8,2400:8904:e001:264::9,2400:8904:e001:264::10"}, + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "ca-central", "label": "Toronto, CA", "country": "ca", "capabilities": ["Linodes", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata", "Placement Group", "StackScripts"], "status": "ok", "resolvers": {"ipv4": "172.105.0.5,172.105.3.5,172.105.4.5,172.105.5.5,172.105.6.5,172.105.7.5,172.105.8.5,172.105.9.5,172.105.10.5,172.105.11.5", - "ipv6": "2600:3c04:e001:305::1,2600:3c04:e001:305::2,2600:3c04:e001:305::3,2600:3c04:e001:305::4,2600:3c04:e001:305::5,2600:3c04:e001:305::6,2600:3c04:e001:305::7,2600:3c04:e001:305::8,2600:3c04:e001:305::9,2600:3c04:e001:305::10"}, + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "ap-southeast", "label": "Sydney, AU", "country": "au", "capabilities": ["Linodes", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata", "Placement Group", "StackScripts"], "status": "ok", "resolvers": {"ipv4": "172.105.166.5,172.105.169.5,172.105.168.5,172.105.172.5,172.105.162.5,172.105.170.5,172.105.167.5,172.105.171.5,172.105.181.5,172.105.161.5", - "ipv6": "2400:8907:e001:294::1,2400:8907:e001:294::2,2400:8907:e001:294::3,2400:8907:e001:294::4,2400:8907:e001:294::5,2400:8907:e001:294::6,2400:8907:e001:294::7,2400:8907:e001:294::8,2400:8907:e001:294::9,2400:8907:e001:294::10"}, + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "us-iad", "label": "Washington, DC", "country": "us", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", @@ -41,7 +41,7 @@ interactions: "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts"], "status": "ok", "resolvers": {"ipv4": "139.144.192.62,139.144.192.60,139.144.192.61,139.144.192.53,139.144.192.54,139.144.192.67,139.144.192.69,139.144.192.66,139.144.192.52,139.144.192.68", - "ipv6": "2600:3c05:e001:bc::1,2600:3c05:e001:bc::2,2600:3c05:e001:bc::3,2600:3c05:e001:bc::4,2600:3c05:e001:bc::5,2600:3c05:e001:bc::6,2600:3c05:e001:bc::7,2600:3c05:e001:bc::8,2600:3c05:e001:bc::9,2600:3c05:e001:bc::10"}, + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "us-ord", "label": "Chicago, IL", "country": "us", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", @@ -49,7 +49,7 @@ interactions: "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts"], "status": "ok", "resolvers": {"ipv4": "172.232.0.17,172.232.0.16,172.232.0.21,172.232.0.13,172.232.0.22,172.232.0.9,172.232.0.19,172.232.0.20,172.232.0.15,172.232.0.18", - "ipv6": "2600:3c06:e001:67::1,2600:3c06:e001:67::2,2600:3c06:e001:67::3,2600:3c06:e001:67::4,2600:3c06:e001:67::5,2600:3c06:e001:67::6,2600:3c06:e001:67::7,2600:3c06:e001:67::8,2600:3c06:e001:67::9,2600:3c06:e001:67::10"}, + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "fr-par", "label": "Paris, FR", "country": "fr", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", @@ -57,7 +57,7 @@ interactions: "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts"], "status": "ok", "resolvers": {"ipv4": "172.232.32.21,172.232.32.23,172.232.32.17,172.232.32.18,172.232.32.16,172.232.32.22,172.232.32.20,172.232.32.14,172.232.32.11,172.232.32.12", - "ipv6": "2600:3c07:e001:9a::1,2600:3c07:e001:9a::2,2600:3c07:e001:9a::3,2600:3c07:e001:9a::4,2600:3c07:e001:9a::5,2600:3c07:e001:9a::6,2600:3c07:e001:9a::7,2600:3c07:e001:9a::8,2600:3c07:e001:9a::9,2600:3c07:e001:9a::10"}, + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "us-sea", "label": "Seattle, WA", "country": "us", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", @@ -65,7 +65,7 @@ interactions: "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts"], "status": "ok", "resolvers": {"ipv4": "172.232.160.19,172.232.160.21,172.232.160.17,172.232.160.15,172.232.160.18,172.232.160.8,172.232.160.12,172.232.160.11,172.232.160.14,172.232.160.16", - "ipv6": "2600:3c0a:e001:7bb::1,2600:3c0a:e001:7bb::2,2600:3c0a:e001:7bb::3,2600:3c0a:e001:7bb::4,2600:3c0a:e001:7bb::5,2600:3c0a:e001:7bb::6,2600:3c0a:e001:7bb::7,2600:3c0a:e001:7bb::8,2600:3c0a:e001:7bb::9,2600:3c0a:e001:7bb::10"}, + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "br-gru", "label": "Sao Paulo, BR", "country": "br", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", @@ -73,7 +73,7 @@ interactions: "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts"], "status": "ok", "resolvers": {"ipv4": "172.233.0.4,172.233.0.9,172.233.0.7,172.233.0.12,172.233.0.5,172.233.0.13,172.233.0.10,172.233.0.6,172.233.0.8,172.233.0.11", - "ipv6": "2600:3c0d:e001:44::1,2600:3c0d:e001:44::2,2600:3c0d:e001:44::3,2600:3c0d:e001:44::4,2600:3c0d:e001:44::5,2600:3c0d:e001:44::6,2600:3c0d:e001:44::7,2600:3c0d:e001:44::8,2600:3c0d:e001:44::9,2600:3c0d:e001:44::10"}, + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "nl-ams", "label": "Amsterdam, NL", "country": "nl", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", @@ -81,7 +81,7 @@ interactions: "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts"], "status": "ok", "resolvers": {"ipv4": "172.233.33.36,172.233.33.38,172.233.33.35,172.233.33.39,172.233.33.34,172.233.33.33,172.233.33.31,172.233.33.30,172.233.33.37,172.233.33.32", - "ipv6": "2600:3c0e:e001:a0::1,2600:3c0e:e001:a0::2,2600:3c0e:e001:a0::3,2600:3c0e:e001:a0::4,2600:3c0e:e001:a0::5,2600:3c0e:e001:a0::6,2600:3c0e:e001:a0::7,2600:3c0e:e001:a0::8,2600:3c0e:e001:a0::9,2600:3c0e:e001:a0::10"}, + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "se-sto", "label": "Stockholm, SE", "country": "se", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", @@ -89,7 +89,7 @@ interactions: "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts"], "status": "ok", "resolvers": {"ipv4": "172.232.128.24,172.232.128.26,172.232.128.20,172.232.128.22,172.232.128.25,172.232.128.19,172.232.128.23,172.232.128.18,172.232.128.21,172.232.128.27", - "ipv6": "2600:3c09:e001:93::1,2600:3c09:e001:93::2,2600:3c09:e001:93::3,2600:3c09:e001:93::4,2600:3c09:e001:93::5,2600:3c09:e001:93::6,2600:3c09:e001:93::7,2600:3c09:e001:93::8,2600:3c09:e001:93::9,2600:3c09:e001:93::10"}, + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "es-mad", "label": "Madrid, ES", "country": "es", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", @@ -97,7 +97,7 @@ interactions: "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts"], "status": "ok", "resolvers": {"ipv4": "172.233.111.6,172.233.111.17,172.233.111.21,172.233.111.25,172.233.111.19,172.233.111.12,172.233.111.26,172.233.111.16,172.233.111.18,172.233.111.9", - "ipv6": "2a01:7e02:e001:3e::1,2a01:7e02:e001:3e::2,2a01:7e02:e001:3e::3,2a01:7e02:e001:3e::4,2a01:7e02:e001:3e::5,2a01:7e02:e001:3e::6,2a01:7e02:e001:3e::7,2a01:7e02:e001:3e::8,2a01:7e02:e001:3e::9,2a01:7e02:e001:3e::10"}, + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "in-maa", "label": "Chennai, IN", "country": "in", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", @@ -105,7 +105,7 @@ interactions: "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts", "NETINT Quadra T1U"], "status": "ok", "resolvers": {"ipv4": "172.232.96.17,172.232.96.26,172.232.96.19,172.232.96.20,172.232.96.25,172.232.96.21,172.232.96.18,172.232.96.22,172.232.96.23,172.232.96.24", - "ipv6": "2600:3c08:e001:82::1,2600:3c08:e001:82::2,2600:3c08:e001:82::3,2600:3c08:e001:82::4,2600:3c08:e001:82::5,2600:3c08:e001:82::6,2600:3c08:e001:82::7,2600:3c08:e001:82::8,2600:3c08:e001:82::9,2600:3c08:e001:82::10"}, + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "jp-osa", "label": "Osaka, JP", "country": "jp", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", @@ -113,7 +113,7 @@ interactions: "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts"], "status": "ok", "resolvers": {"ipv4": "172.233.64.44,172.233.64.43,172.233.64.37,172.233.64.40,172.233.64.46,172.233.64.41,172.233.64.39,172.233.64.42,172.233.64.45,172.233.64.38", - "ipv6": "2400:8905:e001:d4::1,2400:8905:e001:d4::2,2400:8905:e001:d4::3,2400:8905:e001:d4::4,2400:8905:e001:d4::5,2400:8905:e001:d4::6,2400:8905:e001:d4::7,2400:8905:e001:d4::8,2400:8905:e001:d4::9,2400:8905:e001:d4::10"}, + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "it-mil", "label": "Milan, IT", "country": "it", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", @@ -121,7 +121,7 @@ interactions: "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts"], "status": "ok", "resolvers": {"ipv4": "172.232.192.19,172.232.192.18,172.232.192.16,172.232.192.20,172.232.192.24,172.232.192.21,172.232.192.22,172.232.192.17,172.232.192.15,172.232.192.23", - "ipv6": "2600:3c0b:e001:56::1,2600:3c0b:e001:56::2,2600:3c0b:e001:56::3,2600:3c0b:e001:56::4,2600:3c0b:e001:56::5,2600:3c0b:e001:56::6,2600:3c0b:e001:56::7,2600:3c0b:e001:56::8,2600:3c0b:e001:56::9,2600:3c0b:e001:56::10"}, + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "us-mia", "label": "Miami, FL", "country": "us", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", @@ -129,7 +129,7 @@ interactions: "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts", "NETINT Quadra T1U"], "status": "ok", "resolvers": {"ipv4": "172.233.160.34,172.233.160.27,172.233.160.30,172.233.160.29,172.233.160.32,172.233.160.28,172.233.160.33,172.233.160.26,172.233.160.25,172.233.160.31", - "ipv6": "2a01:7e04:e001:b3::1,2a01:7e04:e001:b3::2,2a01:7e04:e001:b3::3,2a01:7e04:e001:b3::4,2a01:7e04:e001:b3::5,2a01:7e04:e001:b3::6,2a01:7e04:e001:b3::7,2a01:7e04:e001:b3::8,2a01:7e04:e001:b3::9,2a01:7e04:e001:b3::10"}, + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "id-cgk", "label": "Jakarta, ID", "country": "id", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", @@ -137,7 +137,7 @@ interactions: "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts"], "status": "ok", "resolvers": {"ipv4": "172.232.224.23,172.232.224.32,172.232.224.26,172.232.224.27,172.232.224.21,172.232.224.24,172.232.224.22,172.232.224.20,172.232.224.31,172.232.224.28", - "ipv6": "2600:3c0c:e001:7f3::1,2600:3c0c:e001:7f3::2,2600:3c0c:e001:7f3::3,2600:3c0c:e001:7f3::4,2600:3c0c:e001:7f3::5,2600:3c0c:e001:7f3::6,2600:3c0c:e001:7f3::7,2600:3c0c:e001:7f3::8,2600:3c0c:e001:7f3::9,2600:3c0c:e001:7f3::10"}, + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "us-lax", "label": "Los Angeles, CA", "country": "us", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", @@ -145,7 +145,7 @@ interactions: "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts", "NETINT Quadra T1U"], "status": "ok", "resolvers": {"ipv4": "172.233.128.45,172.233.128.38,172.233.128.53,172.233.128.37,172.233.128.34,172.233.128.36,172.233.128.33,172.233.128.39,172.233.128.43,172.233.128.44", - "ipv6": "2a01:7e03:e001:e8::1,2a01:7e03:e001:e8::2,2a01:7e03:e001:e8::3,2a01:7e03:e001:e8::4,2a01:7e03:e001:e8::5,2a01:7e03:e001:e8::6,2a01:7e03:e001:e8::7,2a01:7e03:e001:e8::8,2a01:7e03:e001:e8::9,2a01:7e03:e001:e8::10"}, + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "gb-lon", "label": "London 2, UK", "country": "gb", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", @@ -153,7 +153,7 @@ interactions: "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts"], "status": "ok", "resolvers": {"ipv4": "172.236.0.46,172.236.0.50,172.236.0.47,172.236.0.53,172.236.0.52,172.236.0.45,172.236.0.49,172.236.0.51,172.236.0.54,172.236.0.48", - "ipv6": "2600:3c13:e001:29::1,2600:3c13:e001:29::2,2600:3c13:e001:29::3,2600:3c13:e001:29::4,2600:3c13:e001:29::5,2600:3c13:e001:29::6,2600:3c13:e001:29::7,2600:3c13:e001:29::8,2600:3c13:e001:29::9,2600:3c13:e001:29::10"}, + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "au-mel", "label": "Melbourne, AU", "country": "au", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", @@ -161,14 +161,14 @@ interactions: "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts", "NETINT Quadra T1U"], "status": "ok", "resolvers": {"ipv4": "172.236.32.23,172.236.32.35,172.236.32.30,172.236.32.28,172.236.32.32,172.236.32.33,172.236.32.27,172.236.32.37,172.236.32.29,172.236.32.34", - "ipv6": "2600:3c14:e001:15::1,2600:3c14:e001:15::2,2600:3c14:e001:15::3,2600:3c14:e001:15::4,2600:3c14:e001:15::5,2600:3c14:e001:15::6,2600:3c14:e001:15::7,2600:3c14:e001:15::8,2600:3c14:e001:15::9,2600:3c14:e001:15::10"}, + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "in-bom-2", "label": "Mumbai 2, IN", "country": "in", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", "GPU Linodes", "Cloud Firewall", "Vlans", "VPCs", "Metadata", "Premium Plans", "Placement Group", "StackScripts"], "status": "ok", "resolvers": {"ipv4": "172.236.171.41,172.236.171.42,172.236.171.25,172.236.171.44,172.236.171.26,172.236.171.45,172.236.171.24,172.236.171.43,172.236.171.27,172.236.171.28", - "ipv6": "2600:3c16:e001:b::1,2600:3c16:e001:b::2,2600:3c16:e001:b::3,2600:3c16:e001:b::4,2600:3c16:e001:b::5,2600:3c16:e001:b::6,2600:3c16:e001:b::7,2600:3c16:e001:b::8,2600:3c16:e001:b::9,2600:3c16:e001:b::10"}, + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "de-fra-2", "label": "Frankfurt 2, DE", "country": "de", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", @@ -176,7 +176,7 @@ interactions: Firewall", "Vlans", "VPCs", "Metadata", "Premium Plans", "Placement Group", "StackScripts", "NETINT Quadra T1U"], "status": "ok", "resolvers": {"ipv4": "172.236.203.9,172.236.203.16,172.236.203.19,172.236.203.15,172.236.203.17,172.236.203.11,172.236.203.18,172.236.203.14,172.236.203.13,172.236.203.12", - "ipv6": "2600:3c17:e001:4::1,2600:3c17:e001:4::2,2600:3c17:e001:4::3,2600:3c17:e001:4::4,2600:3c17:e001:4::5,2600:3c17:e001:4::6,2600:3c17:e001:4::7,2600:3c17:e001:4::8,2600:3c17:e001:4::9,2600:3c17:e001:4::10"}, + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "sg-sin-2", "label": "Singapore 2, SG", "country": "sg", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", @@ -184,21 +184,21 @@ interactions: "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts"], "status": "ok", "resolvers": {"ipv4": "172.236.129.8,172.236.129.42,172.236.129.41,172.236.129.19,172.236.129.46,172.236.129.23,172.236.129.48,172.236.129.20,172.236.129.21,172.236.129.47", - "ipv6": "2600:3c15:e001:17::1,2600:3c15:e001:17::2,2600:3c15:e001:17::3,2600:3c15:e001:17::4,2600:3c15:e001:17::5,2600:3c15:e001:17::6,2600:3c15:e001:17::7,2600:3c15:e001:17::8,2600:3c15:e001:17::9,2600:3c15:e001:17::10"}, + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "jp-tyo-3", "label": "Tokyo 3, JP", "country": "jp", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Metadata", "Premium Plans", "Placement Group", "StackScripts"], "status": "ok", "resolvers": {"ipv4": "172.237.4.15,172.237.4.19,172.237.4.17,172.237.4.21,172.237.4.16,172.237.4.18,172.237.4.23,172.237.4.24,172.237.4.20,172.237.4.14", - "ipv6": "2600:3c18:e001:4::1,2600:3c18:e001:4::2,2600:3c18:e001:4::3,2600:3c18:e001:4::4,2600:3c18:e001:4::5,2600:3c18:e001:4::6,2600:3c18:e001:4::7,2600:3c18:e001:4::8,2600:3c18:e001:4::9,2600:3c18:e001:4::10"}, + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "us-central", "label": "Dallas, TX", "country": "us", "capabilities": ["Linodes", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata", "Placement Group", "StackScripts"], "status": "ok", "resolvers": {"ipv4": "72.14.179.5,72.14.188.5,173.255.199.5,66.228.53.5,96.126.122.5,96.126.124.5,96.126.127.5,198.58.107.5,198.58.111.5,23.239.24.5", - "ipv6": "2600:3c00::2,2600:3c00::9,2600:3c00::7,2600:3c00::5,2600:3c00::3,2600:3c00::8,2600:3c00::6,2600:3c00::4,2600:3c00::c,2600:3c00::b"}, + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "us-west", "label": "Fremont, CA", "country": "us", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", @@ -206,23 +206,23 @@ interactions: "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata", "Placement Group", "StackScripts"], "status": "ok", "resolvers": {"ipv4": "173.230.145.5, 173.230.147.5, 173.230.155.5, 173.255.212.5, 173.255.219.5, 173.255.241.5, 173.255.243.5, - 173.255.244.5, 74.207.241.5, 74.207.242.5", "ipv6": "2600:3c01::2, 2600:3c01::9, - 2600:3c01::5, 2600:3c01::7, 2600:3c01::3, 2600:3c01::8, 2600:3c01::4, 2600:3c01::b, - 2600:3c01::c, 2600:3c01::6"}, "placement_group_limits": {"maximum_pgs_per_customer": + 173.255.244.5, 74.207.241.5, 74.207.242.5", "ipv6": "1234::5678, 1234::5678, + 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, + 1234::5678, 1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "us-southeast", "label": "Atlanta, GA", "country": "us", "capabilities": ["Linodes", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata", "Placement Group", "StackScripts"], "status": "ok", "resolvers": {"ipv4": "74.207.231.5,173.230.128.5,173.230.129.5,173.230.136.5,173.230.140.5,66.228.59.5,66.228.62.5,50.116.35.5,50.116.41.5,23.239.18.5", - "ipv6": "2600:3c02::3,2600:3c02::5,2600:3c02::4,2600:3c02::6,2600:3c02::c,2600:3c02::7,2600:3c02::2,2600:3c02::9,2600:3c02::8,2600:3c02::b"}, + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "us-east", "label": "Newark, NJ", "country": "us", "capabilities": ["Linodes", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata", "Placement Group", "StackScripts"], "status": "ok", "resolvers": {"ipv4": "66.228.42.5,96.126.106.5,50.116.53.5,50.116.58.5,50.116.61.5,50.116.62.5,66.175.211.5,97.107.133.4,173.255.225.5,66.228.35.5", - "ipv6": "2600:3c03::7,2600:3c03::4,2600:3c03::9,2600:3c03::6,2600:3c03::3,2600:3c03::c,2600:3c03::5,2600:3c03::b,2600:3c03::2,2600:3c03::8"}, + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "eu-west", "label": "London, UK", "country": "gb", "capabilities": ["Linodes", "Disk Encryption", "Backups", "NodeBalancers", @@ -230,29 +230,29 @@ interactions: "Metadata", "Placement Group", "StackScripts"], "status": "ok", "resolvers": {"ipv4": "178.79.182.5, 176.58.107.5, 176.58.116.5, 176.58.121.5, 151.236.220.5, 212.71.252.5, 212.71.253.5, 109.74.192.20, 109.74.193.20, 109.74.194.20", "ipv6": - "2a01:7e00::9, 2a01:7e00::3, 2a01:7e00::c, 2a01:7e00::5, 2a01:7e00::6, 2a01:7e00::8, - 2a01:7e00::b, 2a01:7e00::4, 2a01:7e00::7, 2a01:7e00::2"}, "placement_group_limits": + "1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, + 1234::5678, 1234::5678, 1234::5678, 1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "ap-south", "label": "Singapore, SG", "country": "sg", "capabilities": ["Linodes", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", "Metadata", "Placement Group", "StackScripts"], "status": "ok", "resolvers": {"ipv4": "139.162.11.5,139.162.13.5,139.162.14.5,139.162.15.5,139.162.16.5,139.162.21.5,139.162.27.5,103.3.60.18,103.3.60.19,103.3.60.20", - "ipv6": "2400:8901::5,2400:8901::4,2400:8901::b,2400:8901::3,2400:8901::9,2400:8901::2,2400:8901::8,2400:8901::7,2400:8901::c,2400:8901::6"}, + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "eu-central", "label": "Frankfurt, DE", "country": "de", "capabilities": ["Linodes", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata", "Placement Group", "StackScripts"], "status": "ok", "resolvers": {"ipv4": "139.162.130.5,139.162.131.5,139.162.132.5,139.162.133.5,139.162.134.5,139.162.135.5,139.162.136.5,139.162.137.5,139.162.138.5,139.162.139.5", - "ipv6": "2a01:7e01::5,2a01:7e01::9,2a01:7e01::7,2a01:7e01::c,2a01:7e01::2,2a01:7e01::4,2a01:7e01::3,2a01:7e01::6,2a01:7e01::b,2a01:7e01::8"}, + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "ap-northeast", "label": "Tokyo 2, JP", "country": "jp", "capabilities": ["Linodes", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata", "Placement Group", "StackScripts"], "status": "ok", "resolvers": {"ipv4": "139.162.66.5,139.162.67.5,139.162.68.5,139.162.69.5,139.162.70.5,139.162.71.5,139.162.72.5,139.162.73.5,139.162.74.5,139.162.75.5", - "ipv6": "2400:8902::3,2400:8902::6,2400:8902::c,2400:8902::4,2400:8902::2,2400:8902::8,2400:8902::7,2400:8902::5,2400:8902::b,2400:8902::9"}, + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5}, "site_type": "core"}], "page": 1, "pages": 1, "results": 31}' headers: @@ -381,7 +381,7 @@ interactions: response: body: '{"id": 1283187, "label": "go-test-def", "region": "us-iad", "hostname": "172-234-157-109.ip.linodeusercontent.com", "ipv4": "172.234.157.109", "ipv6": - "2600:3c05:1::acea:9d6d", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", + "1234::5678", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "client_conn_throttle": 20, "client_udp_sess_throttle": 0, "tags": [], "transfer": {"in": null, "out": null, "total": null}}' headers: diff --git a/test/integration/fixtures/TestNodeBalancerVpcConfig_List.yaml b/test/integration/fixtures/TestNodeBalancerVpcConfig_List.yaml index d0d1cac20..77dbc72ab 100644 --- a/test/integration/fixtures/TestNodeBalancerVpcConfig_List.yaml +++ b/test/integration/fixtures/TestNodeBalancerVpcConfig_List.yaml @@ -19,21 +19,21 @@ interactions: "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata", "Placement Group", "StackScripts"], "status": "ok", "resolvers": {"ipv4": "172.105.34.5,172.105.35.5,172.105.36.5,172.105.37.5,172.105.38.5,172.105.39.5,172.105.40.5,172.105.41.5,172.105.42.5,172.105.43.5", - "ipv6": "2400:8904:e001:264::1,2400:8904:e001:264::2,2400:8904:e001:264::3,2400:8904:e001:264::4,2400:8904:e001:264::5,2400:8904:e001:264::6,2400:8904:e001:264::7,2400:8904:e001:264::8,2400:8904:e001:264::9,2400:8904:e001:264::10"}, + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "ca-central", "label": "Toronto, CA", "country": "ca", "capabilities": ["Linodes", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata", "Placement Group", "StackScripts"], "status": "ok", "resolvers": {"ipv4": "172.105.0.5,172.105.3.5,172.105.4.5,172.105.5.5,172.105.6.5,172.105.7.5,172.105.8.5,172.105.9.5,172.105.10.5,172.105.11.5", - "ipv6": "2600:3c04:e001:305::1,2600:3c04:e001:305::2,2600:3c04:e001:305::3,2600:3c04:e001:305::4,2600:3c04:e001:305::5,2600:3c04:e001:305::6,2600:3c04:e001:305::7,2600:3c04:e001:305::8,2600:3c04:e001:305::9,2600:3c04:e001:305::10"}, + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "ap-southeast", "label": "Sydney, AU", "country": "au", "capabilities": ["Linodes", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata", "Placement Group", "StackScripts"], "status": "ok", "resolvers": {"ipv4": "172.105.166.5,172.105.169.5,172.105.168.5,172.105.172.5,172.105.162.5,172.105.170.5,172.105.167.5,172.105.171.5,172.105.181.5,172.105.161.5", - "ipv6": "2400:8907:e001:294::1,2400:8907:e001:294::2,2400:8907:e001:294::3,2400:8907:e001:294::4,2400:8907:e001:294::5,2400:8907:e001:294::6,2400:8907:e001:294::7,2400:8907:e001:294::8,2400:8907:e001:294::9,2400:8907:e001:294::10"}, + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "us-iad", "label": "Washington, DC", "country": "us", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", @@ -41,7 +41,7 @@ interactions: "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts"], "status": "ok", "resolvers": {"ipv4": "139.144.192.62,139.144.192.60,139.144.192.61,139.144.192.53,139.144.192.54,139.144.192.67,139.144.192.69,139.144.192.66,139.144.192.52,139.144.192.68", - "ipv6": "2600:3c05:e001:bc::1,2600:3c05:e001:bc::2,2600:3c05:e001:bc::3,2600:3c05:e001:bc::4,2600:3c05:e001:bc::5,2600:3c05:e001:bc::6,2600:3c05:e001:bc::7,2600:3c05:e001:bc::8,2600:3c05:e001:bc::9,2600:3c05:e001:bc::10"}, + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "us-ord", "label": "Chicago, IL", "country": "us", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", @@ -49,7 +49,7 @@ interactions: "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts"], "status": "ok", "resolvers": {"ipv4": "172.232.0.17,172.232.0.16,172.232.0.21,172.232.0.13,172.232.0.22,172.232.0.9,172.232.0.19,172.232.0.20,172.232.0.15,172.232.0.18", - "ipv6": "2600:3c06:e001:67::1,2600:3c06:e001:67::2,2600:3c06:e001:67::3,2600:3c06:e001:67::4,2600:3c06:e001:67::5,2600:3c06:e001:67::6,2600:3c06:e001:67::7,2600:3c06:e001:67::8,2600:3c06:e001:67::9,2600:3c06:e001:67::10"}, + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "fr-par", "label": "Paris, FR", "country": "fr", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", @@ -57,7 +57,7 @@ interactions: "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts"], "status": "ok", "resolvers": {"ipv4": "172.232.32.21,172.232.32.23,172.232.32.17,172.232.32.18,172.232.32.16,172.232.32.22,172.232.32.20,172.232.32.14,172.232.32.11,172.232.32.12", - "ipv6": "2600:3c07:e001:9a::1,2600:3c07:e001:9a::2,2600:3c07:e001:9a::3,2600:3c07:e001:9a::4,2600:3c07:e001:9a::5,2600:3c07:e001:9a::6,2600:3c07:e001:9a::7,2600:3c07:e001:9a::8,2600:3c07:e001:9a::9,2600:3c07:e001:9a::10"}, + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "us-sea", "label": "Seattle, WA", "country": "us", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", @@ -65,7 +65,7 @@ interactions: "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts"], "status": "ok", "resolvers": {"ipv4": "172.232.160.19,172.232.160.21,172.232.160.17,172.232.160.15,172.232.160.18,172.232.160.8,172.232.160.12,172.232.160.11,172.232.160.14,172.232.160.16", - "ipv6": "2600:3c0a:e001:7bb::1,2600:3c0a:e001:7bb::2,2600:3c0a:e001:7bb::3,2600:3c0a:e001:7bb::4,2600:3c0a:e001:7bb::5,2600:3c0a:e001:7bb::6,2600:3c0a:e001:7bb::7,2600:3c0a:e001:7bb::8,2600:3c0a:e001:7bb::9,2600:3c0a:e001:7bb::10"}, + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "br-gru", "label": "Sao Paulo, BR", "country": "br", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", @@ -73,7 +73,7 @@ interactions: "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts"], "status": "ok", "resolvers": {"ipv4": "172.233.0.4,172.233.0.9,172.233.0.7,172.233.0.12,172.233.0.5,172.233.0.13,172.233.0.10,172.233.0.6,172.233.0.8,172.233.0.11", - "ipv6": "2600:3c0d:e001:44::1,2600:3c0d:e001:44::2,2600:3c0d:e001:44::3,2600:3c0d:e001:44::4,2600:3c0d:e001:44::5,2600:3c0d:e001:44::6,2600:3c0d:e001:44::7,2600:3c0d:e001:44::8,2600:3c0d:e001:44::9,2600:3c0d:e001:44::10"}, + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "nl-ams", "label": "Amsterdam, NL", "country": "nl", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", @@ -81,7 +81,7 @@ interactions: "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts"], "status": "ok", "resolvers": {"ipv4": "172.233.33.36,172.233.33.38,172.233.33.35,172.233.33.39,172.233.33.34,172.233.33.33,172.233.33.31,172.233.33.30,172.233.33.37,172.233.33.32", - "ipv6": "2600:3c0e:e001:a0::1,2600:3c0e:e001:a0::2,2600:3c0e:e001:a0::3,2600:3c0e:e001:a0::4,2600:3c0e:e001:a0::5,2600:3c0e:e001:a0::6,2600:3c0e:e001:a0::7,2600:3c0e:e001:a0::8,2600:3c0e:e001:a0::9,2600:3c0e:e001:a0::10"}, + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "se-sto", "label": "Stockholm, SE", "country": "se", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", @@ -89,7 +89,7 @@ interactions: "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts"], "status": "ok", "resolvers": {"ipv4": "172.232.128.24,172.232.128.26,172.232.128.20,172.232.128.22,172.232.128.25,172.232.128.19,172.232.128.23,172.232.128.18,172.232.128.21,172.232.128.27", - "ipv6": "2600:3c09:e001:93::1,2600:3c09:e001:93::2,2600:3c09:e001:93::3,2600:3c09:e001:93::4,2600:3c09:e001:93::5,2600:3c09:e001:93::6,2600:3c09:e001:93::7,2600:3c09:e001:93::8,2600:3c09:e001:93::9,2600:3c09:e001:93::10"}, + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "es-mad", "label": "Madrid, ES", "country": "es", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", @@ -97,7 +97,7 @@ interactions: "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts"], "status": "ok", "resolvers": {"ipv4": "172.233.111.6,172.233.111.17,172.233.111.21,172.233.111.25,172.233.111.19,172.233.111.12,172.233.111.26,172.233.111.16,172.233.111.18,172.233.111.9", - "ipv6": "2a01:7e02:e001:3e::1,2a01:7e02:e001:3e::2,2a01:7e02:e001:3e::3,2a01:7e02:e001:3e::4,2a01:7e02:e001:3e::5,2a01:7e02:e001:3e::6,2a01:7e02:e001:3e::7,2a01:7e02:e001:3e::8,2a01:7e02:e001:3e::9,2a01:7e02:e001:3e::10"}, + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "in-maa", "label": "Chennai, IN", "country": "in", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", @@ -105,7 +105,7 @@ interactions: "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts", "NETINT Quadra T1U"], "status": "ok", "resolvers": {"ipv4": "172.232.96.17,172.232.96.26,172.232.96.19,172.232.96.20,172.232.96.25,172.232.96.21,172.232.96.18,172.232.96.22,172.232.96.23,172.232.96.24", - "ipv6": "2600:3c08:e001:82::1,2600:3c08:e001:82::2,2600:3c08:e001:82::3,2600:3c08:e001:82::4,2600:3c08:e001:82::5,2600:3c08:e001:82::6,2600:3c08:e001:82::7,2600:3c08:e001:82::8,2600:3c08:e001:82::9,2600:3c08:e001:82::10"}, + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "jp-osa", "label": "Osaka, JP", "country": "jp", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", @@ -113,7 +113,7 @@ interactions: "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts"], "status": "ok", "resolvers": {"ipv4": "172.233.64.44,172.233.64.43,172.233.64.37,172.233.64.40,172.233.64.46,172.233.64.41,172.233.64.39,172.233.64.42,172.233.64.45,172.233.64.38", - "ipv6": "2400:8905:e001:d4::1,2400:8905:e001:d4::2,2400:8905:e001:d4::3,2400:8905:e001:d4::4,2400:8905:e001:d4::5,2400:8905:e001:d4::6,2400:8905:e001:d4::7,2400:8905:e001:d4::8,2400:8905:e001:d4::9,2400:8905:e001:d4::10"}, + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "it-mil", "label": "Milan, IT", "country": "it", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", @@ -121,7 +121,7 @@ interactions: "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts"], "status": "ok", "resolvers": {"ipv4": "172.232.192.19,172.232.192.18,172.232.192.16,172.232.192.20,172.232.192.24,172.232.192.21,172.232.192.22,172.232.192.17,172.232.192.15,172.232.192.23", - "ipv6": "2600:3c0b:e001:56::1,2600:3c0b:e001:56::2,2600:3c0b:e001:56::3,2600:3c0b:e001:56::4,2600:3c0b:e001:56::5,2600:3c0b:e001:56::6,2600:3c0b:e001:56::7,2600:3c0b:e001:56::8,2600:3c0b:e001:56::9,2600:3c0b:e001:56::10"}, + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "us-mia", "label": "Miami, FL", "country": "us", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", @@ -129,7 +129,7 @@ interactions: "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts", "NETINT Quadra T1U"], "status": "ok", "resolvers": {"ipv4": "172.233.160.34,172.233.160.27,172.233.160.30,172.233.160.29,172.233.160.32,172.233.160.28,172.233.160.33,172.233.160.26,172.233.160.25,172.233.160.31", - "ipv6": "2a01:7e04:e001:b3::1,2a01:7e04:e001:b3::2,2a01:7e04:e001:b3::3,2a01:7e04:e001:b3::4,2a01:7e04:e001:b3::5,2a01:7e04:e001:b3::6,2a01:7e04:e001:b3::7,2a01:7e04:e001:b3::8,2a01:7e04:e001:b3::9,2a01:7e04:e001:b3::10"}, + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "id-cgk", "label": "Jakarta, ID", "country": "id", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", @@ -137,7 +137,7 @@ interactions: "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts"], "status": "ok", "resolvers": {"ipv4": "172.232.224.23,172.232.224.32,172.232.224.26,172.232.224.27,172.232.224.21,172.232.224.24,172.232.224.22,172.232.224.20,172.232.224.31,172.232.224.28", - "ipv6": "2600:3c0c:e001:7f3::1,2600:3c0c:e001:7f3::2,2600:3c0c:e001:7f3::3,2600:3c0c:e001:7f3::4,2600:3c0c:e001:7f3::5,2600:3c0c:e001:7f3::6,2600:3c0c:e001:7f3::7,2600:3c0c:e001:7f3::8,2600:3c0c:e001:7f3::9,2600:3c0c:e001:7f3::10"}, + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "us-lax", "label": "Los Angeles, CA", "country": "us", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", @@ -145,7 +145,7 @@ interactions: "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts", "NETINT Quadra T1U"], "status": "ok", "resolvers": {"ipv4": "172.233.128.45,172.233.128.38,172.233.128.53,172.233.128.37,172.233.128.34,172.233.128.36,172.233.128.33,172.233.128.39,172.233.128.43,172.233.128.44", - "ipv6": "2a01:7e03:e001:e8::1,2a01:7e03:e001:e8::2,2a01:7e03:e001:e8::3,2a01:7e03:e001:e8::4,2a01:7e03:e001:e8::5,2a01:7e03:e001:e8::6,2a01:7e03:e001:e8::7,2a01:7e03:e001:e8::8,2a01:7e03:e001:e8::9,2a01:7e03:e001:e8::10"}, + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "gb-lon", "label": "London 2, UK", "country": "gb", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", @@ -153,7 +153,7 @@ interactions: "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts"], "status": "ok", "resolvers": {"ipv4": "172.236.0.46,172.236.0.50,172.236.0.47,172.236.0.53,172.236.0.52,172.236.0.45,172.236.0.49,172.236.0.51,172.236.0.54,172.236.0.48", - "ipv6": "2600:3c13:e001:29::1,2600:3c13:e001:29::2,2600:3c13:e001:29::3,2600:3c13:e001:29::4,2600:3c13:e001:29::5,2600:3c13:e001:29::6,2600:3c13:e001:29::7,2600:3c13:e001:29::8,2600:3c13:e001:29::9,2600:3c13:e001:29::10"}, + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "au-mel", "label": "Melbourne, AU", "country": "au", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", @@ -161,14 +161,14 @@ interactions: "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts", "NETINT Quadra T1U"], "status": "ok", "resolvers": {"ipv4": "172.236.32.23,172.236.32.35,172.236.32.30,172.236.32.28,172.236.32.32,172.236.32.33,172.236.32.27,172.236.32.37,172.236.32.29,172.236.32.34", - "ipv6": "2600:3c14:e001:15::1,2600:3c14:e001:15::2,2600:3c14:e001:15::3,2600:3c14:e001:15::4,2600:3c14:e001:15::5,2600:3c14:e001:15::6,2600:3c14:e001:15::7,2600:3c14:e001:15::8,2600:3c14:e001:15::9,2600:3c14:e001:15::10"}, + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "in-bom-2", "label": "Mumbai 2, IN", "country": "in", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", "GPU Linodes", "Cloud Firewall", "Vlans", "VPCs", "Metadata", "Premium Plans", "Placement Group", "StackScripts"], "status": "ok", "resolvers": {"ipv4": "172.236.171.41,172.236.171.42,172.236.171.25,172.236.171.44,172.236.171.26,172.236.171.45,172.236.171.24,172.236.171.43,172.236.171.27,172.236.171.28", - "ipv6": "2600:3c16:e001:b::1,2600:3c16:e001:b::2,2600:3c16:e001:b::3,2600:3c16:e001:b::4,2600:3c16:e001:b::5,2600:3c16:e001:b::6,2600:3c16:e001:b::7,2600:3c16:e001:b::8,2600:3c16:e001:b::9,2600:3c16:e001:b::10"}, + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "de-fra-2", "label": "Frankfurt 2, DE", "country": "de", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", @@ -176,7 +176,7 @@ interactions: Firewall", "Vlans", "VPCs", "Metadata", "Premium Plans", "Placement Group", "StackScripts", "NETINT Quadra T1U"], "status": "ok", "resolvers": {"ipv4": "172.236.203.9,172.236.203.16,172.236.203.19,172.236.203.15,172.236.203.17,172.236.203.11,172.236.203.18,172.236.203.14,172.236.203.13,172.236.203.12", - "ipv6": "2600:3c17:e001:4::1,2600:3c17:e001:4::2,2600:3c17:e001:4::3,2600:3c17:e001:4::4,2600:3c17:e001:4::5,2600:3c17:e001:4::6,2600:3c17:e001:4::7,2600:3c17:e001:4::8,2600:3c17:e001:4::9,2600:3c17:e001:4::10"}, + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "sg-sin-2", "label": "Singapore 2, SG", "country": "sg", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", @@ -184,21 +184,21 @@ interactions: "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts"], "status": "ok", "resolvers": {"ipv4": "172.236.129.8,172.236.129.42,172.236.129.41,172.236.129.19,172.236.129.46,172.236.129.23,172.236.129.48,172.236.129.20,172.236.129.21,172.236.129.47", - "ipv6": "2600:3c15:e001:17::1,2600:3c15:e001:17::2,2600:3c15:e001:17::3,2600:3c15:e001:17::4,2600:3c15:e001:17::5,2600:3c15:e001:17::6,2600:3c15:e001:17::7,2600:3c15:e001:17::8,2600:3c15:e001:17::9,2600:3c15:e001:17::10"}, + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "jp-tyo-3", "label": "Tokyo 3, JP", "country": "jp", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Metadata", "Premium Plans", "Placement Group", "StackScripts"], "status": "ok", "resolvers": {"ipv4": "172.237.4.15,172.237.4.19,172.237.4.17,172.237.4.21,172.237.4.16,172.237.4.18,172.237.4.23,172.237.4.24,172.237.4.20,172.237.4.14", - "ipv6": "2600:3c18:e001:4::1,2600:3c18:e001:4::2,2600:3c18:e001:4::3,2600:3c18:e001:4::4,2600:3c18:e001:4::5,2600:3c18:e001:4::6,2600:3c18:e001:4::7,2600:3c18:e001:4::8,2600:3c18:e001:4::9,2600:3c18:e001:4::10"}, + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "us-central", "label": "Dallas, TX", "country": "us", "capabilities": ["Linodes", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata", "Placement Group", "StackScripts"], "status": "ok", "resolvers": {"ipv4": "72.14.179.5,72.14.188.5,173.255.199.5,66.228.53.5,96.126.122.5,96.126.124.5,96.126.127.5,198.58.107.5,198.58.111.5,23.239.24.5", - "ipv6": "2600:3c00::2,2600:3c00::9,2600:3c00::7,2600:3c00::5,2600:3c00::3,2600:3c00::8,2600:3c00::6,2600:3c00::4,2600:3c00::c,2600:3c00::b"}, + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "us-west", "label": "Fremont, CA", "country": "us", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", @@ -206,23 +206,23 @@ interactions: "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata", "Placement Group", "StackScripts"], "status": "ok", "resolvers": {"ipv4": "173.230.145.5, 173.230.147.5, 173.230.155.5, 173.255.212.5, 173.255.219.5, 173.255.241.5, 173.255.243.5, - 173.255.244.5, 74.207.241.5, 74.207.242.5", "ipv6": "2600:3c01::2, 2600:3c01::9, - 2600:3c01::5, 2600:3c01::7, 2600:3c01::3, 2600:3c01::8, 2600:3c01::4, 2600:3c01::b, - 2600:3c01::c, 2600:3c01::6"}, "placement_group_limits": {"maximum_pgs_per_customer": + 173.255.244.5, 74.207.241.5, 74.207.242.5", "ipv6": "1234::5678, 1234::5678, + 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, + 1234::5678, 1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "us-southeast", "label": "Atlanta, GA", "country": "us", "capabilities": ["Linodes", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata", "Placement Group", "StackScripts"], "status": "ok", "resolvers": {"ipv4": "74.207.231.5,173.230.128.5,173.230.129.5,173.230.136.5,173.230.140.5,66.228.59.5,66.228.62.5,50.116.35.5,50.116.41.5,23.239.18.5", - "ipv6": "2600:3c02::3,2600:3c02::5,2600:3c02::4,2600:3c02::6,2600:3c02::c,2600:3c02::7,2600:3c02::2,2600:3c02::9,2600:3c02::8,2600:3c02::b"}, + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "us-east", "label": "Newark, NJ", "country": "us", "capabilities": ["Linodes", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata", "Placement Group", "StackScripts"], "status": "ok", "resolvers": {"ipv4": "66.228.42.5,96.126.106.5,50.116.53.5,50.116.58.5,50.116.61.5,50.116.62.5,66.175.211.5,97.107.133.4,173.255.225.5,66.228.35.5", - "ipv6": "2600:3c03::7,2600:3c03::4,2600:3c03::9,2600:3c03::6,2600:3c03::3,2600:3c03::c,2600:3c03::5,2600:3c03::b,2600:3c03::2,2600:3c03::8"}, + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "eu-west", "label": "London, UK", "country": "gb", "capabilities": ["Linodes", "Disk Encryption", "Backups", "NodeBalancers", @@ -230,29 +230,29 @@ interactions: "Metadata", "Placement Group", "StackScripts"], "status": "ok", "resolvers": {"ipv4": "178.79.182.5, 176.58.107.5, 176.58.116.5, 176.58.121.5, 151.236.220.5, 212.71.252.5, 212.71.253.5, 109.74.192.20, 109.74.193.20, 109.74.194.20", "ipv6": - "2a01:7e00::9, 2a01:7e00::3, 2a01:7e00::c, 2a01:7e00::5, 2a01:7e00::6, 2a01:7e00::8, - 2a01:7e00::b, 2a01:7e00::4, 2a01:7e00::7, 2a01:7e00::2"}, "placement_group_limits": + "1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, + 1234::5678, 1234::5678, 1234::5678, 1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "ap-south", "label": "Singapore, SG", "country": "sg", "capabilities": ["Linodes", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", "Metadata", "Placement Group", "StackScripts"], "status": "ok", "resolvers": {"ipv4": "139.162.11.5,139.162.13.5,139.162.14.5,139.162.15.5,139.162.16.5,139.162.21.5,139.162.27.5,103.3.60.18,103.3.60.19,103.3.60.20", - "ipv6": "2400:8901::5,2400:8901::4,2400:8901::b,2400:8901::3,2400:8901::9,2400:8901::2,2400:8901::8,2400:8901::7,2400:8901::c,2400:8901::6"}, + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "eu-central", "label": "Frankfurt, DE", "country": "de", "capabilities": ["Linodes", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata", "Placement Group", "StackScripts"], "status": "ok", "resolvers": {"ipv4": "139.162.130.5,139.162.131.5,139.162.132.5,139.162.133.5,139.162.134.5,139.162.135.5,139.162.136.5,139.162.137.5,139.162.138.5,139.162.139.5", - "ipv6": "2a01:7e01::5,2a01:7e01::9,2a01:7e01::7,2a01:7e01::c,2a01:7e01::2,2a01:7e01::4,2a01:7e01::3,2a01:7e01::6,2a01:7e01::b,2a01:7e01::8"}, + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "ap-northeast", "label": "Tokyo 2, JP", "country": "jp", "capabilities": ["Linodes", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata", "Placement Group", "StackScripts"], "status": "ok", "resolvers": {"ipv4": "139.162.66.5,139.162.67.5,139.162.68.5,139.162.69.5,139.162.70.5,139.162.71.5,139.162.72.5,139.162.73.5,139.162.74.5,139.162.75.5", - "ipv6": "2400:8902::3,2400:8902::6,2400:8902::c,2400:8902::4,2400:8902::2,2400:8902::8,2400:8902::7,2400:8902::5,2400:8902::b,2400:8902::9"}, + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5}, "site_type": "core"}], "page": 1, "pages": 1, "results": 31}' headers: @@ -381,7 +381,7 @@ interactions: response: body: '{"id": 1283181, "label": "go-test-def", "region": "us-iad", "hostname": "172-234-157-182.ip.linodeusercontent.com", "ipv4": "172.234.157.182", "ipv6": - "2600:3c05:1::acea:9db6", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", + "1234::5678", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "client_conn_throttle": 20, "client_udp_sess_throttle": 0, "tags": [], "transfer": {"in": null, "out": null, "total": null}}' headers: diff --git a/test/integration/fixtures/TestNodeBalancer_With_VPC_Create.yaml b/test/integration/fixtures/TestNodeBalancer_With_VPC_Create.yaml new file mode 100644 index 000000000..3008c1108 --- /dev/null +++ b/test/integration/fixtures/TestNodeBalancer_With_VPC_Create.yaml @@ -0,0 +1,487 @@ +--- +version: 1 +interactions: +- request: + body: "" + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/regions?page=1 + method: GET + response: + body: '{"data": [{"id": "ap-west", "label": "Mumbai, IN", "country": "in", "capabilities": + ["Linodes", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", + "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts"], "status": + "ok", "resolvers": {"ipv4": "172.105.34.5,172.105.35.5,172.105.36.5,172.105.37.5,172.105.38.5,172.105.39.5,172.105.40.5,172.105.41.5,172.105.42.5,172.105.43.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "ca-central", "label": "Toronto, CA", "country": + "ca", "capabilities": ["Linodes", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts"], "status": + "ok", "resolvers": {"ipv4": "172.105.0.5,172.105.3.5,172.105.4.5,172.105.5.5,172.105.6.5,172.105.7.5,172.105.8.5,172.105.9.5,172.105.10.5,172.105.11.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "ap-southeast", "label": "Sydney, AU", "country": + "au", "capabilities": ["Linodes", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts"], "status": + "ok", "resolvers": {"ipv4": "172.105.166.5,172.105.169.5,172.105.168.5,172.105.172.5,172.105.162.5,172.105.170.5,172.105.167.5,172.105.171.5,172.105.181.5,172.105.161.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "us-iad", "label": "Washington, DC", "country": + "us", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", + "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium + Plans", "Placement Group", "StackScripts"], "status": "ok", "resolvers": {"ipv4": + "139.144.192.62,139.144.192.60,139.144.192.61,139.144.192.53,139.144.192.54,139.144.192.67,139.144.192.69,139.144.192.66,139.144.192.52,139.144.192.68", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "us-ord", "label": "Chicago, IL", "country": + "us", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "Object Storage", "GPU Linodes", + "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", + "Premium Plans", "Placement Group", "StackScripts"], "status": "ok", "resolvers": + {"ipv4": "172.232.0.17,172.232.0.16,172.232.0.21,172.232.0.13,172.232.0.22,172.232.0.9,172.232.0.19,172.232.0.20,172.232.0.15,172.232.0.18", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "fr-par", "label": "Paris, FR", "country": + "fr", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "Object Storage", "GPU Linodes", + "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", + "Premium Plans", "Placement Group", "StackScripts"], "status": "ok", "resolvers": + {"ipv4": "172.232.32.21,172.232.32.23,172.232.32.17,172.232.32.18,172.232.32.16,172.232.32.22,172.232.32.20,172.232.32.14,172.232.32.11,172.232.32.12", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "us-sea", "label": "Seattle, WA", "country": + "us", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "Object Storage", "GPU Linodes", + "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", + "Premium Plans", "Placement Group", "StackScripts"], "status": "ok", "resolvers": + {"ipv4": "172.232.160.19,172.232.160.21,172.232.160.17,172.232.160.15,172.232.160.18,172.232.160.8,172.232.160.12,172.232.160.11,172.232.160.14,172.232.160.16", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "br-gru", "label": "Sao Paulo, BR", "country": + "br", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", + "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium + Plans", "Placement Group", "StackScripts"], "status": "ok", "resolvers": {"ipv4": + "172.233.0.4,172.233.0.9,172.233.0.7,172.233.0.12,172.233.0.5,172.233.0.13,172.233.0.10,172.233.0.6,172.233.0.8,172.233.0.11", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "nl-ams", "label": "Amsterdam, NL", "country": + "nl", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", + "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium + Plans", "Placement Group", "StackScripts"], "status": "ok", "resolvers": {"ipv4": + "172.233.33.36,172.233.33.38,172.233.33.35,172.233.33.39,172.233.33.34,172.233.33.33,172.233.33.31,172.233.33.30,172.233.33.37,172.233.33.32", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "se-sto", "label": "Stockholm, SE", "country": + "se", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", + "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium + Plans", "Placement Group", "StackScripts"], "status": "ok", "resolvers": {"ipv4": + "172.232.128.24,172.232.128.26,172.232.128.20,172.232.128.22,172.232.128.25,172.232.128.19,172.232.128.23,172.232.128.18,172.232.128.21,172.232.128.27", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "es-mad", "label": "Madrid, ES", "country": + "es", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", + "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium + Plans", "Placement Group", "StackScripts"], "status": "ok", "resolvers": {"ipv4": + "172.233.111.6,172.233.111.17,172.233.111.21,172.233.111.25,172.233.111.19,172.233.111.12,172.233.111.26,172.233.111.16,172.233.111.18,172.233.111.9", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "in-maa", "label": "Chennai, IN", "country": + "in", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", + "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium + Plans", "Placement Group", "StackScripts", "NETINT Quadra T1U"], "status": "ok", + "resolvers": {"ipv4": "172.232.96.17,172.232.96.26,172.232.96.19,172.232.96.20,172.232.96.25,172.232.96.21,172.232.96.18,172.232.96.22,172.232.96.23,172.232.96.24", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "jp-osa", "label": "Osaka, JP", "country": + "jp", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "Object Storage", "GPU Linodes", + "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", + "Premium Plans", "Placement Group", "StackScripts"], "status": "ok", "resolvers": + {"ipv4": "172.233.64.44,172.233.64.43,172.233.64.37,172.233.64.40,172.233.64.46,172.233.64.41,172.233.64.39,172.233.64.42,172.233.64.45,172.233.64.38", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "it-mil", "label": "Milan, IT", "country": + "it", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", + "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium + Plans", "Placement Group", "StackScripts"], "status": "ok", "resolvers": {"ipv4": + "172.232.192.19,172.232.192.18,172.232.192.16,172.232.192.20,172.232.192.24,172.232.192.21,172.232.192.22,172.232.192.17,172.232.192.15,172.232.192.23", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "us-mia", "label": "Miami, FL", "country": + "us", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", + "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium + Plans", "Placement Group", "StackScripts", "NETINT Quadra T1U"], "status": "ok", + "resolvers": {"ipv4": "172.233.160.34,172.233.160.27,172.233.160.30,172.233.160.29,172.233.160.32,172.233.160.28,172.233.160.33,172.233.160.26,172.233.160.25,172.233.160.31", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "id-cgk", "label": "Jakarta, ID", "country": + "id", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", + "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium + Plans", "Placement Group", "StackScripts"], "status": "ok", "resolvers": {"ipv4": + "172.232.224.23,172.232.224.32,172.232.224.26,172.232.224.27,172.232.224.21,172.232.224.24,172.232.224.22,172.232.224.20,172.232.224.31,172.232.224.28", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "us-lax", "label": "Los Angeles, CA", "country": + "us", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", + "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium + Plans", "Placement Group", "StackScripts", "NETINT Quadra T1U"], "status": "ok", + "resolvers": {"ipv4": "172.233.128.45,172.233.128.38,172.233.128.53,172.233.128.37,172.233.128.34,172.233.128.36,172.233.128.33,172.233.128.39,172.233.128.43,172.233.128.44", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "gb-lon", "label": "London 2, UK", "country": + "gb", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", + "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium + Plans", "Placement Group", "StackScripts"], "status": "ok", "resolvers": {"ipv4": + "172.236.0.46,172.236.0.50,172.236.0.47,172.236.0.53,172.236.0.52,172.236.0.45,172.236.0.49,172.236.0.51,172.236.0.54,172.236.0.48", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "au-mel", "label": "Melbourne, AU", "country": + "au", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", + "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium + Plans", "Placement Group", "StackScripts", "NETINT Quadra T1U"], "status": "ok", + "resolvers": {"ipv4": "172.236.32.23,172.236.32.35,172.236.32.30,172.236.32.28,172.236.32.32,172.236.32.33,172.236.32.27,172.236.32.37,172.236.32.29,172.236.32.34", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "in-bom-2", "label": "Mumbai 2, IN", "country": + "in", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "GPU Linodes", "Cloud Firewall", + "Vlans", "VPCs", "Metadata", "Premium Plans", "Placement Group", "StackScripts"], + "status": "ok", "resolvers": {"ipv4": "172.236.171.41,172.236.171.42,172.236.171.25,172.236.171.44,172.236.171.26,172.236.171.45,172.236.171.24,172.236.171.43,172.236.171.27,172.236.171.28", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "de-fra-2", "label": "Frankfurt 2, DE", "country": + "de", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "GPU Linodes", "Kubernetes", "Cloud + Firewall", "Vlans", "VPCs", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "NETINT Quadra T1U"], "status": "ok", "resolvers": {"ipv4": + "172.236.203.9,172.236.203.16,172.236.203.19,172.236.203.15,172.236.203.17,172.236.203.11,172.236.203.18,172.236.203.14,172.236.203.13,172.236.203.12", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "sg-sin-2", "label": "Singapore 2, SG", "country": + "sg", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "Object Storage", "GPU Linodes", + "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", + "Premium Plans", "Placement Group", "StackScripts"], "status": "ok", "resolvers": + {"ipv4": "172.236.129.8,172.236.129.42,172.236.129.41,172.236.129.19,172.236.129.46,172.236.129.23,172.236.129.48,172.236.129.20,172.236.129.21,172.236.129.47", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "jp-tyo-3", "label": "Tokyo 3, JP", "country": + "jp", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Metadata", "Premium Plans", "Placement Group", "StackScripts"], + "status": "ok", "resolvers": {"ipv4": "172.237.4.15,172.237.4.19,172.237.4.17,172.237.4.21,172.237.4.16,172.237.4.18,172.237.4.23,172.237.4.24,172.237.4.20,172.237.4.14", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "us-central", "label": "Dallas, TX", "country": + "us", "capabilities": ["Linodes", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts"], "status": + "ok", "resolvers": {"ipv4": "72.14.179.5,72.14.188.5,173.255.199.5,66.228.53.5,96.126.122.5,96.126.124.5,96.126.127.5,198.58.107.5,198.58.111.5,23.239.24.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "us-west", "label": "Fremont, CA", "country": + "us", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "Kubernetes", "Cloud Firewall", + "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata", "Placement + Group", "StackScripts"], "status": "ok", "resolvers": {"ipv4": "173.230.145.5, + 173.230.147.5, 173.230.155.5, 173.255.212.5, 173.255.219.5, 173.255.241.5, 173.255.243.5, + 173.255.244.5, 74.207.241.5, 74.207.242.5", "ipv6": "1234::5678, 1234::5678, + 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, + 1234::5678, 1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": + null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "us-southeast", + "label": "Atlanta, GA", "country": "us", "capabilities": ["Linodes", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "Object Storage", "GPU Linodes", + "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", "Managed + Databases", "Metadata", "Placement Group", "StackScripts"], "status": "ok", + "resolvers": {"ipv4": "74.207.231.5,173.230.128.5,173.230.129.5,173.230.136.5,173.230.140.5,66.228.59.5,66.228.62.5,50.116.35.5,50.116.41.5,23.239.18.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "us-east", "label": "Newark, NJ", "country": + "us", "capabilities": ["Linodes", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata", "Placement + Group", "StackScripts"], "status": "ok", "resolvers": {"ipv4": "66.228.42.5,96.126.106.5,50.116.53.5,50.116.58.5,50.116.61.5,50.116.62.5,66.175.211.5,97.107.133.4,173.255.225.5,66.228.35.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "eu-west", "label": "London, UK", "country": + "gb", "capabilities": ["Linodes", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Metadata", "Placement Group", "StackScripts"], "status": "ok", "resolvers": + {"ipv4": "178.79.182.5, 176.58.107.5, 176.58.116.5, 176.58.121.5, 151.236.220.5, + 212.71.252.5, 212.71.253.5, 109.74.192.20, 109.74.193.20, 109.74.194.20", "ipv6": + "1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, + 1234::5678, 1234::5678, 1234::5678, 1234::5678"}, "placement_group_limits": + {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5}, "site_type": + "core"}, {"id": "ap-south", "label": "Singapore, SG", "country": "sg", "capabilities": + ["Linodes", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", + "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "Block + Storage Migrations", "Metadata", "Placement Group", "StackScripts"], "status": + "ok", "resolvers": {"ipv4": "139.162.11.5,139.162.13.5,139.162.14.5,139.162.15.5,139.162.16.5,139.162.21.5,139.162.27.5,103.3.60.18,103.3.60.19,103.3.60.20", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "eu-central", "label": "Frankfurt, DE", "country": + "de", "capabilities": ["Linodes", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata", "Placement + Group", "StackScripts"], "status": "ok", "resolvers": {"ipv4": "139.162.130.5,139.162.131.5,139.162.132.5,139.162.133.5,139.162.134.5,139.162.135.5,139.162.136.5,139.162.137.5,139.162.138.5,139.162.139.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "ap-northeast", "label": "Tokyo 2, JP", "country": + "jp", "capabilities": ["Linodes", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts"], "status": + "ok", "resolvers": {"ipv4": "139.162.66.5,139.162.67.5,139.162.68.5,139.162.69.5,139.162.70.5,139.162.71.5,139.162.72.5,139.162.73.5,139.162.74.5,139.162.75.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}], "page": 1, "pages": 1, "results": 31}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 13 Feb 2025 15:58:58 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - '*' + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "1600" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" +- request: + body: '{"label":"go-test-vpc-1739462337885339032","region":"us-iad","subnets":[{"label":"subnet1","ipv4":"10.0.0.0/8"}]}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/vpcs + method: POST + response: + body: '{"id": 153102, "label": "go-test-vpc-1739462337885339032", "description": + "", "region": "us-iad", "subnets": [{"id": 148380, "label": "subnet1", "ipv4": + "10.0.0.0/8", "ipv6": null, "linodes": [], "created": "2018-01-02T03:04:05", + "updated": "2018-01-02T03:04:05"}], "created": "2018-01-02T03:04:05", "updated": + "2018-01-02T03:04:05"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Length: + - "333" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 13 Feb 2025 15:58:58 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - vpc:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "1600" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" +- request: + body: '{"label":"go-test-def","region":"us-iad","client_conn_throttle":20,"tags":null,"firewall_id":1805809,"vpcs":[{"ipv4_range":"10.100.0.0/24","subnet_id":148380}]}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/nodebalancers + method: POST + response: + body: '{"id": 1283200, "label": "go-test-def", "region": "us-iad", "hostname": + "172-234-69-122.ip.linodeusercontent.com", "ipv4": "172.234.69.122", "ipv6": + "1234::5678", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", + "client_conn_throttle": 20, "client_udp_sess_throttle": 0, "tags": [], "transfer": + {"in": null, "out": null, "total": null}}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Length: + - "367" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 13 Feb 2025 15:58:59 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - nodebalancers:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "1600" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/nodebalancers/1283200 + method: DELETE + response: + body: '{}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Length: + - "2" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 13 Feb 2025 15:58:59 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - nodebalancers:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "1600" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" From 8bab48f3a8af324b2708dd474196d53b4ac345ed Mon Sep 17 00:00:00 2001 From: Rahul Sharma Date: Thu, 13 Feb 2025 16:21:15 +0000 Subject: [PATCH 09/15] fix cleanup failures --- .../TestNodeBalancer_With_VPC_Create.yaml | 85 ++++++++++++++++--- test/integration/nodebalancers_test.go | 8 +- test/integration/vpc_test.go | 6 -- 3 files changed, 76 insertions(+), 23 deletions(-) diff --git a/test/integration/fixtures/TestNodeBalancer_With_VPC_Create.yaml b/test/integration/fixtures/TestNodeBalancer_With_VPC_Create.yaml index 3008c1108..8974cac42 100644 --- a/test/integration/fixtures/TestNodeBalancer_With_VPC_Create.yaml +++ b/test/integration/fixtures/TestNodeBalancer_With_VPC_Create.yaml @@ -275,7 +275,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 13 Feb 2025 15:58:58 GMT + - Thu, 13 Feb 2025 16:20:18 GMT Pragma: - no-cache Strict-Transport-Security: @@ -301,7 +301,7 @@ interactions: code: 200 duration: "" - request: - body: '{"label":"go-test-vpc-1739462337885339032","region":"us-iad","subnets":[{"label":"subnet1","ipv4":"10.0.0.0/8"}]}' + body: '{"label":"go-test-vpc-1739463618663350333","region":"us-iad","subnets":[{"label":"linodego-vpc-test-1739463618964814089","ipv4":"192.168.0.0/25"}]}' form: {} headers: Accept: @@ -313,9 +313,9 @@ interactions: url: https://api.linode.com/v4beta/vpcs method: POST response: - body: '{"id": 153102, "label": "go-test-vpc-1739462337885339032", "description": - "", "region": "us-iad", "subnets": [{"id": 148380, "label": "subnet1", "ipv4": - "10.0.0.0/8", "ipv6": null, "linodes": [], "created": "2018-01-02T03:04:05", + body: '{"id": 153106, "label": "go-test-vpc-1739463618663350333", "description": + "", "region": "us-iad", "subnets": [{"id": 148386, "label": "linodego-vpc-test-1739463618964814089", + "ipv4": "192.168.0.0/25", "ipv6": null, "linodes": [], "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05"}], "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05"}' headers: @@ -334,13 +334,13 @@ interactions: Connection: - keep-alive Content-Length: - - "333" + - "367" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Thu, 13 Feb 2025 15:58:58 GMT + - Thu, 13 Feb 2025 16:20:19 GMT Pragma: - no-cache Strict-Transport-Security: @@ -364,7 +364,7 @@ interactions: code: 200 duration: "" - request: - body: '{"label":"go-test-def","region":"us-iad","client_conn_throttle":20,"tags":null,"firewall_id":1805809,"vpcs":[{"ipv4_range":"10.100.0.0/24","subnet_id":148380}]}' + body: '{"label":"go-test-def","region":"us-iad","client_conn_throttle":20,"tags":null,"firewall_id":1805985,"vpcs":[{"ipv4_range":"192.168.0.64/30","subnet_id":148386}]}' form: {} headers: Accept: @@ -376,8 +376,8 @@ interactions: url: https://api.linode.com/v4beta/nodebalancers method: POST response: - body: '{"id": 1283200, "label": "go-test-def", "region": "us-iad", "hostname": - "172-234-69-122.ip.linodeusercontent.com", "ipv4": "172.234.69.122", "ipv6": + body: '{"id": 1283251, "label": "go-test-def", "region": "us-iad", "hostname": + "172-233-203-86.ip.linodeusercontent.com", "ipv4": "172.233.203.86", "ipv6": "1234::5678", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "client_conn_throttle": 20, "client_udp_sess_throttle": 0, "tags": [], "transfer": {"in": null, "out": null, "total": null}}' @@ -403,7 +403,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 13 Feb 2025 15:58:59 GMT + - Thu, 13 Feb 2025 16:20:20 GMT Pragma: - no-cache Strict-Transport-Security: @@ -436,7 +436,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/nodebalancers/1283200 + url: https://api.linode.com/v4beta/nodebalancers/1283251 method: DELETE response: body: '{}' @@ -462,7 +462,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 13 Feb 2025 15:58:59 GMT + - Thu, 13 Feb 2025 16:20:20 GMT Pragma: - no-cache Strict-Transport-Security: @@ -485,3 +485,62 @@ interactions: status: 200 OK code: 200 duration: "" +- request: + body: "" + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/vpcs/153106 + method: DELETE + response: + body: '{}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Length: + - "2" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 13 Feb 2025 16:20:21 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - vpc:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "1600" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" diff --git a/test/integration/nodebalancers_test.go b/test/integration/nodebalancers_test.go index 1db2a66c9..5d729ad68 100644 --- a/test/integration/nodebalancers_test.go +++ b/test/integration/nodebalancers_test.go @@ -126,7 +126,7 @@ func setupNodeBalancerWithVPC(t *testing.T, fixturesYaml string) (*linodego.Clie t.Helper() var fixtureTeardown func() client, fixtureTeardown := createTestClient(t, fixturesYaml) - vpc, vpcTeardown, err := createVPC(t, client) + vpc, subnet, vpcTeardown, err := createVPCWithSubnet(t, client) if err != nil { t.Errorf("Error creating vpc, got error %v", err) } @@ -137,9 +137,9 @@ func setupNodeBalancerWithVPC(t *testing.T, fixturesYaml string) (*linodego.Clie FirewallID: GetFirewallID(), VPCs: []*linodego.NodeBalancerVPCConfig{ { - IPv4Range: "10.100.0.0/24", + IPv4Range: "192.168.0.64/30", IPv6Range: "", - SubnetID: vpc.Subnets[0].ID, + SubnetID: subnet.ID, }, }, } @@ -153,8 +153,8 @@ func setupNodeBalancerWithVPC(t *testing.T, fixturesYaml string) (*linodego.Clie if err := client.DeleteNodeBalancer(context.Background(), nodebalancer.ID); err != nil { t.Errorf("Expected to delete a nodebalancer, but got %v", err) } - fixtureTeardown() vpcTeardown() + fixtureTeardown() } return client, nodebalancer, teardown, err } diff --git a/test/integration/vpc_test.go b/test/integration/vpc_test.go index 73215ca32..a5a19c15d 100644 --- a/test/integration/vpc_test.go +++ b/test/integration/vpc_test.go @@ -36,12 +36,6 @@ func createVPC(t *testing.T, client *linodego.Client, vpcModifier ...vpcModifier createOpts := linodego.VPCCreateOptions{ Label: "go-test-vpc-" + getUniqueText(), Region: getRegionsWithCaps(t, client, []string{"VPCs"})[0], - Subnets: []linodego.VPCSubnetCreateOptions{ - { - Label: "subnet1", - IPv4: "10.0.0.0/8", - }, - }, } for _, mod := range vpcModifier { From 4729ea7371f4cbe7419fac8740bf0409895c9fca Mon Sep 17 00:00:00 2001 From: Khaja Omer Date: Thu, 13 Feb 2025 10:36:47 -0600 Subject: [PATCH 10/15] Update the fixture for nb vpc list and get --- .../TestNodeBalancerVpcConfig_Get.yaml | 110 ++++++++++++++---- .../TestNodeBalancerVpcConfig_List.yaml | 108 +++++++++++++---- 2 files changed, 171 insertions(+), 47 deletions(-) diff --git a/test/integration/fixtures/TestNodeBalancerVpcConfig_Get.yaml b/test/integration/fixtures/TestNodeBalancerVpcConfig_Get.yaml index 3552b8405..315334cfb 100644 --- a/test/integration/fixtures/TestNodeBalancerVpcConfig_Get.yaml +++ b/test/integration/fixtures/TestNodeBalancerVpcConfig_Get.yaml @@ -277,7 +277,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 13 Feb 2025 15:50:26 GMT + - Thu, 13 Feb 2025 16:28:41 GMT Pragma: - no-cache Strict-Transport-Security: @@ -303,7 +303,7 @@ interactions: code: 200 duration: "" - request: - body: '{"label":"go-test-vpc-1739461825930551000","region":"us-iad","subnets":[{"label":"subnet1","ipv4":"10.0.0.0/8"}]}' + body: '{"label":"go-test-vpc-1739464121384352000","region":"us-iad","subnets":[{"label":"linodego-vpc-test-1739464121470745000","ipv4":"192.168.0.0/25"}]}' form: {} headers: Accept: @@ -315,10 +315,10 @@ interactions: url: https://api.linode.com/v4beta/vpcs method: POST response: - body: '{"id": 153099, "label": "go-test-vpc-1739461825930551000", "description": - "", "region": "us-iad", "subnets": [{"id": 148376, "label": "subnet1", "ipv4": - "10.0.0.0/8", "linodes": [], "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05"}], - "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05"}' + body: '{"id": 153107, "label": "go-test-vpc-1739464121384352000", "description": + "", "region": "us-iad", "subnets": [{"id": 148388, "label": "linodego-vpc-test-1739464121470745000", + "ipv4": "192.168.0.0/25", "linodes": [], "created": "2018-01-02T03:04:05", "updated": + "2018-01-02T03:04:05"}], "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05"}' headers: Access-Control-Allow-Credentials: - "true" @@ -337,13 +337,13 @@ interactions: Connection: - keep-alive Content-Length: - - "319" + - "353" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Thu, 13 Feb 2025 15:50:26 GMT + - Thu, 13 Feb 2025 16:28:41 GMT Pragma: - no-cache Strict-Transport-Security: @@ -367,7 +367,7 @@ interactions: code: 200 duration: "" - request: - body: '{"label":"go-test-def","region":"us-iad","client_conn_throttle":20,"tags":null,"firewall_id":1805781,"vpcs":[{"ipv4_range":"10.100.0.0/24","subnet_id":148376}]}' + body: '{"label":"go-test-def","region":"us-iad","client_conn_throttle":20,"tags":null,"firewall_id":1806097,"vpcs":[{"ipv4_range":"192.168.0.64/30","subnet_id":148388}]}' form: {} headers: Accept: @@ -379,8 +379,8 @@ interactions: url: https://api.linode.com/v4beta/nodebalancers method: POST response: - body: '{"id": 1283187, "label": "go-test-def", "region": "us-iad", "hostname": - "172-234-157-109.ip.linodeusercontent.com", "ipv4": "172.234.157.109", "ipv6": + body: '{"id": 1283268, "label": "go-test-def", "region": "us-iad", "hostname": + "139-144-208-202.ip.linodeusercontent.com", "ipv4": "139.144.208.202", "ipv6": "1234::5678", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "client_conn_throttle": 20, "client_udp_sess_throttle": 0, "tags": [], "transfer": {"in": null, "out": null, "total": null}}' @@ -408,7 +408,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 13 Feb 2025 15:50:27 GMT + - Thu, 13 Feb 2025 16:28:42 GMT Pragma: - no-cache Strict-Transport-Security: @@ -441,11 +441,12 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/nodebalancers/1283187/vpcs?page=1 + url: https://api.linode.com/v4beta/nodebalancers/1283268/vpcs?page=1 method: GET response: - body: '{"data": [{"id": 1187, "nodebalancer_id": 1283187, "vpc_id": 153099, "subnet_id": - 148376, "ipv4_range": "10.100.0.0/24"}], "page": 1, "pages": 1, "results": 1}' + body: '{"data": [{"id": 1191, "nodebalancer_id": 1283268, "vpc_id": 153107, "subnet_id": + 148388, "ipv4_range": "192.168.0.64/30"}], "page": 1, "pages": 1, "results": + 1}' headers: Access-Control-Allow-Credentials: - "true" @@ -464,13 +465,13 @@ interactions: Connection: - keep-alive Content-Length: - - "159" + - "161" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Thu, 13 Feb 2025 15:50:27 GMT + - Thu, 13 Feb 2025 16:28:42 GMT Pragma: - no-cache Strict-Transport-Security: @@ -504,11 +505,11 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/nodebalancers/1283187/vpcs/1187 + url: https://api.linode.com/v4beta/nodebalancers/1283268/vpcs/1191 method: GET response: - body: '{"id": 1187, "nodebalancer_id": 1283187, "vpc_id": 153099, "subnet_id": - 148376, "ipv4_range": "10.100.0.0/24"}' + body: '{"id": 1191, "nodebalancer_id": 1283268, "vpc_id": 153107, "subnet_id": + 148388, "ipv4_range": "192.168.0.64/30"}' headers: Access-Control-Allow-Credentials: - "true" @@ -527,13 +528,13 @@ interactions: Connection: - keep-alive Content-Length: - - "110" + - "112" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Thu, 13 Feb 2025 15:50:34 GMT + - Thu, 13 Feb 2025 16:28:48 GMT Pragma: - no-cache Strict-Transport-Security: @@ -567,7 +568,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/nodebalancers/1283187 + url: https://api.linode.com/v4beta/nodebalancers/1283268 method: DELETE response: body: '{}' @@ -595,7 +596,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 13 Feb 2025 15:50:34 GMT + - Thu, 13 Feb 2025 16:28:49 GMT Pragma: - no-cache Strict-Transport-Security: @@ -618,3 +619,64 @@ interactions: status: 200 OK code: 200 duration: "" +- request: + body: "" + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/vpcs/153107 + method: DELETE + response: + body: '{}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Length: + - "2" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 13 Feb 2025 16:28:49 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - vpc:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "1600" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" diff --git a/test/integration/fixtures/TestNodeBalancerVpcConfig_List.yaml b/test/integration/fixtures/TestNodeBalancerVpcConfig_List.yaml index 77dbc72ab..fd2e1b8bc 100644 --- a/test/integration/fixtures/TestNodeBalancerVpcConfig_List.yaml +++ b/test/integration/fixtures/TestNodeBalancerVpcConfig_List.yaml @@ -277,7 +277,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 13 Feb 2025 15:48:23 GMT + - Thu, 13 Feb 2025 16:29:01 GMT Pragma: - no-cache Strict-Transport-Security: @@ -303,7 +303,7 @@ interactions: code: 200 duration: "" - request: - body: '{"label":"go-test-vpc-1739461703548700000","region":"us-iad","subnets":[{"label":"subnet1","ipv4":"10.0.0.0/8"}]}' + body: '{"label":"go-test-vpc-1739464141355425000","region":"us-iad","subnets":[{"label":"linodego-vpc-test-1739464141466594000","ipv4":"192.168.0.0/25"}]}' form: {} headers: Accept: @@ -315,10 +315,10 @@ interactions: url: https://api.linode.com/v4beta/vpcs method: POST response: - body: '{"id": 153097, "label": "go-test-vpc-1739461703548700000", "description": - "", "region": "us-iad", "subnets": [{"id": 148373, "label": "subnet1", "ipv4": - "10.0.0.0/8", "linodes": [], "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05"}], - "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05"}' + body: '{"id": 153108, "label": "go-test-vpc-1739464141355425000", "description": + "", "region": "us-iad", "subnets": [{"id": 148390, "label": "linodego-vpc-test-1739464141466594000", + "ipv4": "192.168.0.0/25", "linodes": [], "created": "2018-01-02T03:04:05", "updated": + "2018-01-02T03:04:05"}], "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05"}' headers: Access-Control-Allow-Credentials: - "true" @@ -337,13 +337,13 @@ interactions: Connection: - keep-alive Content-Length: - - "319" + - "353" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Thu, 13 Feb 2025 15:48:23 GMT + - Thu, 13 Feb 2025 16:29:01 GMT Pragma: - no-cache Strict-Transport-Security: @@ -367,7 +367,7 @@ interactions: code: 200 duration: "" - request: - body: '{"label":"go-test-def","region":"us-iad","client_conn_throttle":20,"tags":null,"firewall_id":1805773,"vpcs":[{"ipv4_range":"10.100.0.0/24","subnet_id":148373}]}' + body: '{"label":"go-test-def","region":"us-iad","client_conn_throttle":20,"tags":null,"firewall_id":1806106,"vpcs":[{"ipv4_range":"192.168.0.64/30","subnet_id":148390}]}' form: {} headers: Accept: @@ -379,11 +379,11 @@ interactions: url: https://api.linode.com/v4beta/nodebalancers method: POST response: - body: '{"id": 1283181, "label": "go-test-def", "region": "us-iad", "hostname": - "172-234-157-182.ip.linodeusercontent.com", "ipv4": "172.234.157.182", "ipv6": - "1234::5678", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", - "client_conn_throttle": 20, "client_udp_sess_throttle": 0, "tags": [], "transfer": - {"in": null, "out": null, "total": null}}' + body: '{"id": 1283270, "label": "go-test-def", "region": "us-iad", "hostname": + "172-234-69-11.ip.linodeusercontent.com", "ipv4": "172.234.69.11", "ipv6": "1234::5678", + "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "client_conn_throttle": + 20, "client_udp_sess_throttle": 0, "tags": [], "transfer": {"in": null, "out": + null, "total": null}}' headers: Access-Control-Allow-Credentials: - "true" @@ -402,13 +402,13 @@ interactions: Connection: - keep-alive Content-Length: - - "369" + - "365" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Thu, 13 Feb 2025 15:48:24 GMT + - Thu, 13 Feb 2025 16:29:02 GMT Pragma: - no-cache Strict-Transport-Security: @@ -441,11 +441,12 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/nodebalancers/1283181/vpcs?page=1 + url: https://api.linode.com/v4beta/nodebalancers/1283270/vpcs?page=1 method: GET response: - body: '{"data": [{"id": 1186, "nodebalancer_id": 1283181, "vpc_id": 153097, "subnet_id": - 148373, "ipv4_range": "10.100.0.0/24"}], "page": 1, "pages": 1, "results": 1}' + body: '{"data": [{"id": 1192, "nodebalancer_id": 1283270, "vpc_id": 153108, "subnet_id": + 148390, "ipv4_range": "192.168.0.64/30"}], "page": 1, "pages": 1, "results": + 1}' headers: Access-Control-Allow-Credentials: - "true" @@ -464,13 +465,13 @@ interactions: Connection: - keep-alive Content-Length: - - "159" + - "161" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Thu, 13 Feb 2025 15:48:24 GMT + - Thu, 13 Feb 2025 16:29:02 GMT Pragma: - no-cache Strict-Transport-Security: @@ -504,7 +505,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/nodebalancers/1283181 + url: https://api.linode.com/v4beta/nodebalancers/1283270 method: DELETE response: body: '{}' @@ -532,7 +533,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 13 Feb 2025 15:48:24 GMT + - Thu, 13 Feb 2025 16:29:02 GMT Pragma: - no-cache Strict-Transport-Security: @@ -555,3 +556,64 @@ interactions: status: 200 OK code: 200 duration: "" +- request: + body: "" + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/vpcs/153108 + method: DELETE + response: + body: '{}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Length: + - "2" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 13 Feb 2025 16:29:03 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - vpc:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "1600" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" From 2d5a46dc767d3795fd6d3070b13a8a0b0019d0b6 Mon Sep 17 00:00:00 2001 From: Rahul Sharma Date: Thu, 13 Feb 2025 16:52:57 +0000 Subject: [PATCH 11/15] fix formatting --- test/integration/nodebalancers_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/integration/nodebalancers_test.go b/test/integration/nodebalancers_test.go index 5d729ad68..ffafe8c6b 100644 --- a/test/integration/nodebalancers_test.go +++ b/test/integration/nodebalancers_test.go @@ -139,7 +139,7 @@ func setupNodeBalancerWithVPC(t *testing.T, fixturesYaml string) (*linodego.Clie { IPv4Range: "192.168.0.64/30", IPv6Range: "", - SubnetID: subnet.ID, + SubnetID: subnet.ID, }, }, } From 7b943192866343daadcaac66b7c6d07502ea3b98 Mon Sep 17 00:00:00 2001 From: Khaja Omer <56000175+komer3@users.noreply.github.com> Date: Tue, 18 Feb 2025 14:57:01 -0600 Subject: [PATCH 12/15] Update nodebalancer_config_vpc.go Co-authored-by: Lena Garber <114949949+lgarber-akamai@users.noreply.github.com> --- nodebalancer_config_vpc.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nodebalancer_config_vpc.go b/nodebalancer_config_vpc.go index ed3ac20aa..1e577fe80 100644 --- a/nodebalancer_config_vpc.go +++ b/nodebalancer_config_vpc.go @@ -5,7 +5,7 @@ import ( ) // NodeBalancerVpcConfig objects represent a VPC config for a NodeBalancer -type NodeBalancerVpcConfig struct { +type NodeBalancerVPCConfig struct { ID int `json:"id"` IPv4Range string `json:"ipv4_range"` IPv6Range string `json:"ipv6_range,omitempty"` From feb92c87577707522f1ae95589ef5a8e8981e6b9 Mon Sep 17 00:00:00 2001 From: Khaja Omer Date: Tue, 18 Feb 2025 15:39:55 -0600 Subject: [PATCH 13/15] Fix naming --- nodebalancer.go | 4 ++-- nodebalancer_config_vpc.go | 14 +++++++------- test/integration/nodebalancer_config_vpc_test.go | 10 +++++----- test/integration/nodebalancers_test.go | 2 +- 4 files changed, 15 insertions(+), 15 deletions(-) diff --git a/nodebalancer.go b/nodebalancer.go index 2687fd663..27c33ddb8 100644 --- a/nodebalancer.go +++ b/nodebalancer.go @@ -44,7 +44,7 @@ type NodeBalancerTransfer struct { In *float64 `json:"in"` } -type NodeBalancerVPCConfig struct { +type NodeBalancerVPCOptions struct { IPv4Range string `json:"ipv4_range"` IPv6Range string `json:"ipv6_range,omitempty"` SubnetID int `json:"subnet_id"` @@ -58,7 +58,7 @@ type NodeBalancerCreateOptions struct { Configs []*NodeBalancerConfigCreateOptions `json:"configs,omitempty"` Tags []string `json:"tags"` FirewallID int `json:"firewall_id,omitempty"` - VPCs []*NodeBalancerVPCConfig `json:"vpcs,omitempty"` + VPCs []*NodeBalancerVPCOptions `json:"vpcs,omitempty"` } // NodeBalancerUpdateOptions are the options permitted for UpdateNodeBalancer diff --git a/nodebalancer_config_vpc.go b/nodebalancer_config_vpc.go index 1e577fe80..7c8e78407 100644 --- a/nodebalancer_config_vpc.go +++ b/nodebalancer_config_vpc.go @@ -4,7 +4,7 @@ import ( "context" ) -// NodeBalancerVpcConfig objects represent a VPC config for a NodeBalancer +// NodeBalancerVPCConfig objects represent a VPC config for a NodeBalancer type NodeBalancerVPCConfig struct { ID int `json:"id"` IPv4Range string `json:"ipv4_range"` @@ -14,13 +14,13 @@ type NodeBalancerVPCConfig struct { VPCID int `json:"vpc_id"` } -// ListNodeBalancerVpcConfigs lists NodeBalancer VPC configs -func (c *Client) ListNodeBalancerVpcConfigs(ctx context.Context, nodebalancerID int, opts *ListOptions) ([]NodeBalancerVpcConfig, error) { - return getPaginatedResults[NodeBalancerVpcConfig](ctx, c, formatAPIPath("nodebalancers/%d/vpcs", nodebalancerID), opts) +// ListNodeBalancerVPCConfigs lists NodeBalancer VPC configs +func (c *Client) ListNodeBalancerVPCConfigs(ctx context.Context, nodebalancerID int, opts *ListOptions) ([]NodeBalancerVPCConfig, error) { + return getPaginatedResults[NodeBalancerVPCConfig](ctx, c, formatAPIPath("nodebalancers/%d/vpcs", nodebalancerID), opts) } -// GetNodeBalancerVpcConfig gets the NodeBalancer VPC config with the specified id -func (c *Client) GetNodeBalancerVpcConfig(ctx context.Context, nodebalancerID int, vpcID int) (*NodeBalancerVpcConfig, error) { +// GetNodeBalancerVPCConfig gets the NodeBalancer VPC config with the specified id +func (c *Client) GetNodeBalancerVPCConfig(ctx context.Context, nodebalancerID int, vpcID int) (*NodeBalancerVPCConfig, error) { e := formatAPIPath("nodebalancers/%d/vpcs/%d", nodebalancerID, vpcID) - return doGETRequest[NodeBalancerVpcConfig](ctx, c, e) + return doGETRequest[NodeBalancerVPCConfig](ctx, c, e) } diff --git a/test/integration/nodebalancer_config_vpc_test.go b/test/integration/nodebalancer_config_vpc_test.go index 70e01d486..ce0178df7 100644 --- a/test/integration/nodebalancer_config_vpc_test.go +++ b/test/integration/nodebalancer_config_vpc_test.go @@ -7,14 +7,14 @@ import ( "github.com/stretchr/testify/require" ) -func TestNodeBalancerVpcConfig_List(t *testing.T) { +func TestNodeBalancerVPCConfig_List(t *testing.T) { client, nodebalancer, teardown, err := setupNodeBalancerWithVPC(t, "fixtures/TestNodeBalancerVpcConfig_List") if err != nil { t.Errorf("Error setting up nodebalancer: %s", err) } defer teardown() - configs, err := client.ListNodeBalancerVpcConfigs(context.Background(), nodebalancer.ID, nil) + configs, err := client.ListNodeBalancerVPCConfigs(context.Background(), nodebalancer.ID, nil) if err != nil { t.Errorf("Error listing nodebalancer VPC configs: %s", err) } @@ -24,7 +24,7 @@ func TestNodeBalancerVpcConfig_List(t *testing.T) { require.Len(t, configs, 1) } -func TestNodeBalancerVpcConfig_Get(t *testing.T) { +func TestNodeBalancerVPCConfig_Get(t *testing.T) { client, nodebalancer, teardown, err := setupNodeBalancerWithVPC(t, "fixtures/TestNodeBalancerVpcConfig_Get") if err != nil { t.Errorf("Error setting up nodebalancer: %s", err) @@ -32,7 +32,7 @@ func TestNodeBalancerVpcConfig_Get(t *testing.T) { defer teardown() // Get the VPC config list for the nodebalancer (should only have one) - configs, err := client.ListNodeBalancerVpcConfigs(context.Background(), nodebalancer.ID, nil) + configs, err := client.ListNodeBalancerVPCConfigs(context.Background(), nodebalancer.ID, nil) if err != nil { t.Errorf("Error listing nodebalancer VPC configs: %s", err) } @@ -40,7 +40,7 @@ func TestNodeBalancerVpcConfig_Get(t *testing.T) { require.Len(t, configs, 1) // Get the VPC config by ID - config, err := client.GetNodeBalancerVpcConfig(context.Background(), nodebalancer.ID, configs[0].ID) + config, err := client.GetNodeBalancerVPCConfig(context.Background(), nodebalancer.ID, configs[0].ID) if err != nil { t.Errorf("Error getting nodebalancer VPC config: %s", err) } diff --git a/test/integration/nodebalancers_test.go b/test/integration/nodebalancers_test.go index ffafe8c6b..d12f51edb 100644 --- a/test/integration/nodebalancers_test.go +++ b/test/integration/nodebalancers_test.go @@ -135,7 +135,7 @@ func setupNodeBalancerWithVPC(t *testing.T, fixturesYaml string) (*linodego.Clie Region: vpc.Region, ClientConnThrottle: &clientConnThrottle, FirewallID: GetFirewallID(), - VPCs: []*linodego.NodeBalancerVPCConfig{ + VPCs: []*linodego.NodeBalancerVPCOptions{ { IPv4Range: "192.168.0.64/30", IPv6Range: "", From c3fe2acc908b7c6c9919a6596513d4e55e953271 Mon Sep 17 00:00:00 2001 From: Khaja Omer Date: Thu, 20 Feb 2025 14:01:48 -0600 Subject: [PATCH 14/15] Adding disclaimer for letting users know this might not be available to everyone --- nodebalancer_config_vpc.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/nodebalancer_config_vpc.go b/nodebalancer_config_vpc.go index 7c8e78407..122d4c9b8 100644 --- a/nodebalancer_config_vpc.go +++ b/nodebalancer_config_vpc.go @@ -5,6 +5,8 @@ import ( ) // NodeBalancerVPCConfig objects represent a VPC config for a NodeBalancer +// s +// NOTE: NodeBalancer VPC support may not currently be available to all users. type NodeBalancerVPCConfig struct { ID int `json:"id"` IPv4Range string `json:"ipv4_range"` From a5cae30be18419defd7377d3dd347dfc8956eb42 Mon Sep 17 00:00:00 2001 From: Khaja Omer Date: Mon, 24 Feb 2025 10:43:46 -0600 Subject: [PATCH 15/15] Remove use of pointers with VPC options --- nodebalancer.go | 2 +- test/integration/nodebalancers_test.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/nodebalancer.go b/nodebalancer.go index 27c33ddb8..c6fd27d67 100644 --- a/nodebalancer.go +++ b/nodebalancer.go @@ -58,7 +58,7 @@ type NodeBalancerCreateOptions struct { Configs []*NodeBalancerConfigCreateOptions `json:"configs,omitempty"` Tags []string `json:"tags"` FirewallID int `json:"firewall_id,omitempty"` - VPCs []*NodeBalancerVPCOptions `json:"vpcs,omitempty"` + VPCs []NodeBalancerVPCOptions `json:"vpcs,omitempty"` } // NodeBalancerUpdateOptions are the options permitted for UpdateNodeBalancer diff --git a/test/integration/nodebalancers_test.go b/test/integration/nodebalancers_test.go index d12f51edb..2959b8098 100644 --- a/test/integration/nodebalancers_test.go +++ b/test/integration/nodebalancers_test.go @@ -135,7 +135,7 @@ func setupNodeBalancerWithVPC(t *testing.T, fixturesYaml string) (*linodego.Clie Region: vpc.Region, ClientConnThrottle: &clientConnThrottle, FirewallID: GetFirewallID(), - VPCs: []*linodego.NodeBalancerVPCOptions{ + VPCs: []linodego.NodeBalancerVPCOptions{ { IPv4Range: "192.168.0.64/30", IPv6Range: "",