diff --git a/nodebalancer.go b/nodebalancer.go index c0b8c1b52..e05dece4e 100644 --- a/nodebalancer.go +++ b/nodebalancer.go @@ -45,6 +45,9 @@ type NodeBalancer struct { // NOTE: Locks can only be used with v4beta. Locks []LockType `json:"locks"` + FrontendAddressType NodeBalancerVPCFrontendAddressType `json:"frontend_address_type"` + FrontendVPCSubnetID *int `json:"frontend_vpc_subnet_id"` + Created *time.Time `json:"-"` Updated *time.Time `json:"-"` } @@ -66,6 +69,19 @@ type NodeBalancerVPCOptions struct { IPv4RangeAutoAssign bool `json:"ipv4_range_auto_assign,omitzero"` } +type NodeBalancerBackendVPCOptions struct { + IPv4Range string `json:"ipv4_range,omitzero"` + IPv6Range string `json:"ipv6_range,omitzero"` + SubnetID int `json:"subnet_id"` + IPv4RangeAutoAssign bool `json:"ipv4_range_auto_assign,omitzero"` +} + +type NodeBalancerFrontendVPCOptions struct { + IPv4Range string `json:"ipv4_range,omitzero"` + IPv6Range string `json:"ipv6_range,omitzero"` + SubnetID int `json:"subnet_id"` +} + // NodeBalancerCreateOptions are the options permitted for CreateNodeBalancer type NodeBalancerCreateOptions struct { Label *string `json:"label,omitzero"` @@ -79,8 +95,12 @@ type NodeBalancerCreateOptions struct { Tags []string `json:"tags"` FirewallID int `json:"firewall_id,omitzero"` Type NodeBalancerPlanType `json:"type,omitzero"` - VPCs []NodeBalancerVPCOptions `json:"vpcs,omitzero"` - IPv4 *string `json:"ipv4,omitzero"` + // Deprecated: `VPCs` is deprecated in favor of `BackendVPCs`. + // This field may be removed in a later release. + VPCs []NodeBalancerVPCOptions `json:"vpcs,omitzero"` + BackendVPCs []NodeBalancerBackendVPCOptions `json:"backend_vpcs,omitzero"` + FrontendVPCs []NodeBalancerFrontendVPCOptions `json:"frontend_vpcs,omitzero"` + IPv4 *string `json:"ipv4,omitzero"` } // NodeBalancerUpdateOptions are the options permitted for UpdateNodeBalancer @@ -115,6 +135,15 @@ const ( NBTypeCommon NodeBalancerPlanType = "common" ) +// NodeBalancerVPCFrontendAddressType constants start with NodeBalancerVPCFrontendAddressType and include the types of frontend addresses a NodeBalancer VPC can have +type NodeBalancerVPCFrontendAddressType string + +// NodeBalancerVPCFrontendAddressType constants reflect the types of frontend addresses a NodeBalancer VPC can have +const ( + NodeBalancerVPCFrontendAddressTypeVPC NodeBalancerVPCFrontendAddressType = "vpc" + NodeBalancerVPCFrontendAddressTypePublic NodeBalancerVPCFrontendAddressType = "public" +) + // UnmarshalJSON implements the json.Unmarshaler interface func (i *NodeBalancer) UnmarshalJSON(b []byte) error { type Mask NodeBalancer diff --git a/nodebalancer_config_vpc.go b/nodebalancer_config_vpc.go index 3e3d8987c..9f7bb2b96 100644 --- a/nodebalancer_config_vpc.go +++ b/nodebalancer_config_vpc.go @@ -5,24 +5,43 @@ 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"` - IPv6Range string `json:"ipv6_range,omitzero"` - NodeBalancerID int `json:"nodebalancer_id"` - SubnetID int `json:"subnet_id"` - VPCID int `json:"vpc_id"` + ID int `json:"id"` + IPv4Range string `json:"ipv4_range"` + IPv6Range string `json:"ipv6_range,omitzero"` + NodeBalancerID int `json:"nodebalancer_id"` + SubnetID int `json:"subnet_id"` + VPCID int `json:"vpc_id"` + Purpose NodeBalancerVPCConfigPurpose `json:"purpose,omitzero"` } +// NodeBalancerVPCConfigPurpose constants start with NodeBalancerVPCConfigPurpose and include the purposes of a NodeBalancer VPC config +type NodeBalancerVPCConfigPurpose string + +// NodeBalancerVPCConfigPurpose constants reflect the purpose of a NodeBalancer VPC config +const ( + NodeBalancerVPCConfigPurposeFrontend NodeBalancerVPCConfigPurpose = "frontend" + NodeBalancerVPCConfigPurposeBackend NodeBalancerVPCConfigPurpose = "backend" +) + // 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) } +// ListNodeBalancerVPCBackendConfigs lists NodeBalancer Backend VPC configs +func (c *Client) ListNodeBalancerVPCBackendConfigs(ctx context.Context, nodebalancerID int, opts *ListOptions) ([]NodeBalancerVPCConfig, error) { + return getPaginatedResults[NodeBalancerVPCConfig](ctx, c, formatAPIPath("nodebalancers/%d/backend_vpcs", nodebalancerID), opts) +} + +// ListNodeBalancerVPCFrontendConfigs lists NodeBalancer Frontend VPC configs +func (c *Client) ListNodeBalancerVPCFrontendConfigs(ctx context.Context, nodebalancerID int, opts *ListOptions) ([]NodeBalancerVPCConfig, error) { + return getPaginatedResults[NodeBalancerVPCConfig](ctx, c, formatAPIPath("nodebalancers/%d/frontend_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) +func (c *Client) GetNodeBalancerVPCConfig(ctx context.Context, nodebalancerID int, vpcConfigID int) (*NodeBalancerVPCConfig, error) { + e := formatAPIPath("nodebalancers/%d/vpcs/%d", nodebalancerID, vpcConfigID) return doGETRequest[NodeBalancerVPCConfig](ctx, c, e) } diff --git a/test/integration/fixtures/TestNodeBalancer_Create_WithBackendVPCOnly.yaml b/test/integration/fixtures/TestNodeBalancer_Create_WithBackendVPCOnly.yaml new file mode 100644 index 000000000..bbdd2f39b --- /dev/null +++ b/test/integration/fixtures/TestNodeBalancer_Create_WithBackendVPCOnly.yaml @@ -0,0 +1,822 @@ +--- +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": "au-mel", "label": "Melbourne, AU", "country": "au", "capabilities": + ["Linodes", "Block Storage Encryption", "LA Disk Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", "Metadata", + "Premium Plans", "Placement Group", "StackScripts", "Maintenance Policy", "Linode + Interfaces"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers", + "Object Storage"], "metrics": ["Managed Databases", "NodeBalancers", "Object + Storage"]}, "status": "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "es-mad", + "label": "Madrid, ES", "country": "es", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Kubernetes Enterprise", "Cloud Firewall", "Vlans", + "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", "Metadata", + "Premium Plans", "Placement Group", "StackScripts", "Maintenance Policy", "Linode + Interfaces"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], + "metrics": ["Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": + {"ipv4": "172.233.111.6,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "in-maa", + "label": "Chennai, IN", "country": "in", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes + Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 + Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces"], + "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed + Databases", "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "jp-osa", + "label": "Osaka, JP", "country": "jp", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "GPU Linodes", "Kubernetes", "Kubernetes Enterprise", "Cloud + Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "it-mil", + "label": "Milan, IT", "country": "it", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Kubernetes Enterprise", "Cloud Firewall", "Vlans", + "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", "Metadata", + "Premium Plans", "Placement Group", "StackScripts", "Maintenance Policy", "Linode + Interfaces"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], + "metrics": ["Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": + {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-mia", + "label": "Miami, FL", "country": "us", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes + Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 + Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces"], + "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed + Databases", "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "id-cgk", + "label": "Jakarta, ID", "country": "id", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes + Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 + Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": + ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-lax", + "label": "Los Angeles, CA", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes + Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 + Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces", + "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers", "Object Storage"], "metrics": ["Managed Databases", "NodeBalancers", + "Object Storage"]}, "status": "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "gb-lon", + "label": "London 2, UK", "country": "gb", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes + Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 + Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces", + "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": ["Linodes", "Managed Databases", + "NodeBalancers", "Object Storage"], "metrics": ["Managed Databases", "NodeBalancers", + "Object Storage"]}, "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "se-sto", + "label": "Stockholm, SE", "country": "se", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "GPU Linodes", "Kubernetes", "Kubernetes Enterprise", "Cloud + Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "in-bom-2", + "label": "Mumbai 2, IN", "country": "in", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "GPU Linodes", "Kubernetes", "Kubernetes Enterprise", "Cloud + Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces", "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": + ["Managed Databases", "NodeBalancers", "Object Storage"], "metrics": ["Managed + Databases", "NodeBalancers", "Object Storage"]}, "status": "ok", "resolvers": + {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "de-fra-2", + "label": "Frankfurt 2, DE", "country": "de", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes + Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 + Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces", + "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers", "Object Storage"], "metrics": ["Managed Databases", "NodeBalancers", + "Object Storage"]}, "status": "ok", "resolvers": {"ipv4": "172.236.203.9,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "sg-sin-2", + "label": "Singapore 2, SG", "country": "sg", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes + Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 + Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs Datacenter + LKE-E"], "monitors": {"alerts": ["Linodes", "Managed Databases", "NodeBalancers", + "Object Storage"], "metrics": ["Managed Databases", "NodeBalancers", "Object + Storage"]}, "status": "ok", "resolvers": {"ipv4": "172.236.129.8,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "jp-tyo-3", + "label": "Tokyo 3, JP", "country": "jp", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes + Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 + Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs Datacenter + LKE-E"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers", "Object + Storage"], "metrics": ["Managed Databases", "NodeBalancers", "Object Storage"]}, + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "no-osl-1", + "label": "Oslo, NO", "country": "no", "capabilities": ["Linodes", "Block Storage + Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", + "Object Storage", "Kubernetes", "Kubernetes Enterprise", "Cloud Firewall", "Vlans", + "VPCs", "Custom VPC IPv4 Ranges", "VPC Dual Stack", "VPC IPv6 Stack", "Managed + Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts", + "Maintenance Policy", "Linode Interfaces", "ACLP Logs Datacenter LKE-E"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers", "Object Storage"], "metrics": + ["Managed Databases", "NodeBalancers", "Object Storage"]}, "status": "ok", "resolvers": + {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-iad-2", + "label": "Washington 2, DC", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", + "Object Storage", "Kubernetes", "Kubernetes Enterprise", "Cloud Firewall", "Vlans", + "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", "Metadata", + "Premium Plans", "Placement Group", "StackScripts", "Maintenance Policy", "Linode + Interfaces"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers", + "Object Storage"], "metrics": ["Managed Databases", "NodeBalancers", "Object + Storage"]}, "status": "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "fr-par-2", + "label": "Paris 2, FR", "country": "fr", "capabilities": ["Linodes", "Block + Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", + "GPU Linodes", "Kubernetes", "Kubernetes Enterprise", "Cloud Firewall", "Vlans", + "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", "Metadata", + "Premium Plans", "Placement Group", "StackScripts", "Maintenance Policy", "Linode + Interfaces", "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": ["Managed + Databases", "NodeBalancers", "Object Storage"], "metrics": ["Managed Databases", + "NodeBalancers", "Object Storage"]}, "status": "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "nl-ams", + "label": "Amsterdam, NL", "country": "nl", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "GPU Linodes", "Kubernetes", "Kubernetes Enterprise", "Cloud + Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ap-west", + "label": "Mumbai, IN", "country": "in", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ca-central", + "label": "Toronto, CA", "country": "ca", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "Block + Storage Migrations", "Managed Databases", "Metadata", "Placement Group", "StackScripts", + "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed + Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ap-southeast", + "label": "Sydney, AU", "country": "au", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-iad", + "label": "Washington, DC", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "Kubernetes", "Kubernetes Enterprise", "Cloud + Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces", "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": + ["Managed Databases", "NodeBalancers", "Object Storage"], "metrics": ["Linodes", + "Managed Databases", "NodeBalancers", "Object Storage"]}, "status": "ok", "resolvers": + {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-ord", + "label": "Chicago, IL", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes + Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 + Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs Datacenter + LKE-E"], "monitors": {"alerts": ["Linodes", "Managed Databases", "NodeBalancers", + "Object Storage"], "metrics": ["Managed Databases", "NodeBalancers", "Object + Storage"]}, "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "fr-par", + "label": "Paris, FR", "country": "fr", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes + Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 + Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": + ["Managed Databases", "NodeBalancers", "Object Storage"], "metrics": ["Managed + Databases", "NodeBalancers", "Object Storage"]}, "status": "ok", "resolvers": + {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-sea", + "label": "Seattle, WA", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes + Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 + Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs Datacenter + LKE-E"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers", "Object + Storage"], "metrics": ["Managed Databases", "NodeBalancers", "Object Storage"]}, + "status": "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,172.232.160.8,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "br-gru", + "label": "Sao Paulo, BR", "country": "br", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "Kubernetes", "Kubernetes Enterprise", "Cloud + Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-central", + "label": "Dallas, TX", "country": "us", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ap-northeast", + "label": "Tokyo 2, JP", "country": "jp", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "eu-central", + "label": "Frankfurt, DE", "country": "de", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "Block + Storage Migrations", "Managed Databases", "Metadata", "Placement Group", "StackScripts", + "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed + Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ap-south", + "label": "Singapore, SG", "country": "sg", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "Block + Storage Migrations", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["NodeBalancers"], "metrics": + ["NodeBalancers"]}, "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "eu-west", + "label": "London, UK", "country": "gb", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Metadata", "Placement Group", "StackScripts", "Maintenance Policy", "Linode + Interfaces"], "monitors": {"alerts": ["NodeBalancers"], "metrics": ["NodeBalancers"]}, + "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, 192.0.2.0, 192.0.2.0, + 192.0.2.0", "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-east", + "label": "Newark, NJ", "country": "us", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-southeast", + "label": "Atlanta, GA", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-west", + "label": "Fremont, CA", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "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, "maximum_linodes_per_flexible_pg": + 5}, "site_type": "core"}], "page": 1, "pages": 1, "results": 34}' + 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: + - Fri, 17 Jul 2026 10:45:06 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: + - "1840" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" +- request: + body: '{"label":"go-test-vpc-1784285105981014000","region":"au-mel","subnets":[{"label":"linodego-vpc-test-1784285106434919000","ipv4":"192.168.0.0/25"}]}' + 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": 573981, "label": "go-test-vpc-1784285105981014000", "description": + "", "region": "au-mel", "ipv4": [{"range": "10.0.0.0/8"}, {"range": "172.16.0.0/12"}, + {"range": "192.168.0.0/17"}], "ipv6": null, "subnets": [{"id": 804445, "label": + "linodego-vpc-test-1784285106434919000", "ipv4": "192.168.0.0/25", "ipv6": null, + "linodes": [], "databases": [], "nodebalancers": [], "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: + - "511" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Fri, 17 Jul 2026 10:45:06 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: + - "15" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" +- request: + body: '{"label":"go-test-def","region":"au-mel","client_conn_throttle":20,"tags":null,"firewall_id":75224790,"backend_vpcs":[{"ipv4_range":"192.168.0.64/30","subnet_id":804445}]}' + 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": 2376522, "label": "go-test-def", "region": "au-mel", "type": "common", + "backend_connectivity": "vpc", "hostname":"thisIsYourHostName", + "ipv4": "192.0.2.0", "ipv6": "1234::5678", "frontend_address_type": + "public", "frontend_vpc_subnet_id": null, "created": "2018-01-02T03:04:05", + "updated": "2018-01-02T03:04:05", "client_conn_throttle": 20, "client_udp_sess_throttle": + 0, "lke_cluster": null, "tags": [], "locks": [], "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: + - "515" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Fri, 17 Jul 2026 10:45:07 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: + - "1840" + 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/2376522/vpcs?page=1 + method: GET + response: + body: '{"data": [{"id": 162404, "nodebalancer_id": 2376522, "vpc_id": 573981, + "subnet_id": 804445, "ipv4_range": "192.168.0.64/30", "ipv6_range": null, "purpose": + "backend"}], "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: + - "205" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Fri, 17 Jul 2026 10:45:07 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: + - "1840" + 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/2376522/vpcs/162404 + method: GET + response: + body: '{"id": 162404, "nodebalancer_id": 2376522, "vpc_id": 573981, "subnet_id": + 804445, "ipv4_range": "192.168.0.64/30", "ipv6_range": null, "purpose": "backend"}' + 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: + - "156" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Fri, 17 Jul 2026 10:45:08 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: + - "1840" + 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/2376522 + 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: + - Fri, 17 Jul 2026 10:45:08 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: + - "1840" + 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/vpcs/573981 + 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: + - Fri, 17 Jul 2026 10:45:09 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: + - "1840" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" diff --git a/test/integration/fixtures/TestNodeBalancer_Create_WithDeprecatedVPCsAttribute.yaml b/test/integration/fixtures/TestNodeBalancer_Create_WithDeprecatedVPCsAttribute.yaml new file mode 100644 index 000000000..565aa1ba2 --- /dev/null +++ b/test/integration/fixtures/TestNodeBalancer_Create_WithDeprecatedVPCsAttribute.yaml @@ -0,0 +1,695 @@ +--- +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": "au-mel", "label": "Melbourne, AU", "country": "au", "capabilities": + ["Linodes", "Block Storage Encryption", "LA Disk Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", "Metadata", + "Premium Plans", "Placement Group", "StackScripts", "Maintenance Policy", "Linode + Interfaces"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers", + "Object Storage"], "metrics": ["Managed Databases", "NodeBalancers", "Object + Storage"]}, "status": "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "es-mad", + "label": "Madrid, ES", "country": "es", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Kubernetes Enterprise", "Cloud Firewall", "Vlans", + "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", "Metadata", + "Premium Plans", "Placement Group", "StackScripts", "Maintenance Policy", "Linode + Interfaces"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], + "metrics": ["Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": + {"ipv4": "172.233.111.6,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "in-maa", + "label": "Chennai, IN", "country": "in", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes + Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 + Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces"], + "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed + Databases", "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "jp-osa", + "label": "Osaka, JP", "country": "jp", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "GPU Linodes", "Kubernetes", "Kubernetes Enterprise", "Cloud + Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "it-mil", + "label": "Milan, IT", "country": "it", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Kubernetes Enterprise", "Cloud Firewall", "Vlans", + "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", "Metadata", + "Premium Plans", "Placement Group", "StackScripts", "Maintenance Policy", "Linode + Interfaces"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], + "metrics": ["Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": + {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-mia", + "label": "Miami, FL", "country": "us", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes + Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 + Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces"], + "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed + Databases", "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "id-cgk", + "label": "Jakarta, ID", "country": "id", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes + Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 + Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": + ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-lax", + "label": "Los Angeles, CA", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes + Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 + Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces", + "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers", "Object Storage"], "metrics": ["Managed Databases", "NodeBalancers", + "Object Storage"]}, "status": "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "gb-lon", + "label": "London 2, UK", "country": "gb", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes + Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 + Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces", + "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": ["Linodes", "Managed Databases", + "NodeBalancers", "Object Storage"], "metrics": ["Managed Databases", "NodeBalancers", + "Object Storage"]}, "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "se-sto", + "label": "Stockholm, SE", "country": "se", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "GPU Linodes", "Kubernetes", "Kubernetes Enterprise", "Cloud + Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "in-bom-2", + "label": "Mumbai 2, IN", "country": "in", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "GPU Linodes", "Kubernetes", "Kubernetes Enterprise", "Cloud + Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces", "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": + ["Managed Databases", "NodeBalancers", "Object Storage"], "metrics": ["Managed + Databases", "NodeBalancers", "Object Storage"]}, "status": "ok", "resolvers": + {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "de-fra-2", + "label": "Frankfurt 2, DE", "country": "de", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes + Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 + Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces", + "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers", "Object Storage"], "metrics": ["Managed Databases", "NodeBalancers", + "Object Storage"]}, "status": "ok", "resolvers": {"ipv4": "172.236.203.9,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "sg-sin-2", + "label": "Singapore 2, SG", "country": "sg", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes + Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 + Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs Datacenter + LKE-E"], "monitors": {"alerts": ["Linodes", "Managed Databases", "NodeBalancers", + "Object Storage"], "metrics": ["Managed Databases", "NodeBalancers", "Object + Storage"]}, "status": "ok", "resolvers": {"ipv4": "172.236.129.8,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "jp-tyo-3", + "label": "Tokyo 3, JP", "country": "jp", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes + Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 + Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs Datacenter + LKE-E"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers", "Object + Storage"], "metrics": ["Managed Databases", "NodeBalancers", "Object Storage"]}, + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "no-osl-1", + "label": "Oslo, NO", "country": "no", "capabilities": ["Linodes", "Block Storage + Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", + "Object Storage", "Kubernetes", "Kubernetes Enterprise", "Cloud Firewall", "Vlans", + "VPCs", "Custom VPC IPv4 Ranges", "VPC Dual Stack", "VPC IPv6 Stack", "Managed + Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts", + "Maintenance Policy", "Linode Interfaces", "ACLP Logs Datacenter LKE-E"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers", "Object Storage"], "metrics": + ["Managed Databases", "NodeBalancers", "Object Storage"]}, "status": "ok", "resolvers": + {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-iad-2", + "label": "Washington 2, DC", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", + "Object Storage", "Kubernetes", "Kubernetes Enterprise", "Cloud Firewall", "Vlans", + "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", "Metadata", + "Premium Plans", "Placement Group", "StackScripts", "Maintenance Policy", "Linode + Interfaces"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers", + "Object Storage"], "metrics": ["Managed Databases", "NodeBalancers", "Object + Storage"]}, "status": "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "fr-par-2", + "label": "Paris 2, FR", "country": "fr", "capabilities": ["Linodes", "Block + Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", + "GPU Linodes", "Kubernetes", "Kubernetes Enterprise", "Cloud Firewall", "Vlans", + "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", "Metadata", + "Premium Plans", "Placement Group", "StackScripts", "Maintenance Policy", "Linode + Interfaces", "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": ["Managed + Databases", "NodeBalancers", "Object Storage"], "metrics": ["Managed Databases", + "NodeBalancers", "Object Storage"]}, "status": "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "nl-ams", + "label": "Amsterdam, NL", "country": "nl", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "GPU Linodes", "Kubernetes", "Kubernetes Enterprise", "Cloud + Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ap-west", + "label": "Mumbai, IN", "country": "in", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ca-central", + "label": "Toronto, CA", "country": "ca", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "Block + Storage Migrations", "Managed Databases", "Metadata", "Placement Group", "StackScripts", + "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed + Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ap-southeast", + "label": "Sydney, AU", "country": "au", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-iad", + "label": "Washington, DC", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "Kubernetes", "Kubernetes Enterprise", "Cloud + Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces", "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": + ["Managed Databases", "NodeBalancers", "Object Storage"], "metrics": ["Linodes", + "Managed Databases", "NodeBalancers", "Object Storage"]}, "status": "ok", "resolvers": + {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-ord", + "label": "Chicago, IL", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes + Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 + Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs Datacenter + LKE-E"], "monitors": {"alerts": ["Linodes", "Managed Databases", "NodeBalancers", + "Object Storage"], "metrics": ["Managed Databases", "NodeBalancers", "Object + Storage"]}, "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "fr-par", + "label": "Paris, FR", "country": "fr", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes + Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 + Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": + ["Managed Databases", "NodeBalancers", "Object Storage"], "metrics": ["Managed + Databases", "NodeBalancers", "Object Storage"]}, "status": "ok", "resolvers": + {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-sea", + "label": "Seattle, WA", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes + Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 + Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs Datacenter + LKE-E"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers", "Object + Storage"], "metrics": ["Managed Databases", "NodeBalancers", "Object Storage"]}, + "status": "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,172.232.160.8,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "br-gru", + "label": "Sao Paulo, BR", "country": "br", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "Kubernetes", "Kubernetes Enterprise", "Cloud + Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-central", + "label": "Dallas, TX", "country": "us", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ap-northeast", + "label": "Tokyo 2, JP", "country": "jp", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "eu-central", + "label": "Frankfurt, DE", "country": "de", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "Block + Storage Migrations", "Managed Databases", "Metadata", "Placement Group", "StackScripts", + "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed + Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ap-south", + "label": "Singapore, SG", "country": "sg", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "Block + Storage Migrations", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["NodeBalancers"], "metrics": + ["NodeBalancers"]}, "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "eu-west", + "label": "London, UK", "country": "gb", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Metadata", "Placement Group", "StackScripts", "Maintenance Policy", "Linode + Interfaces"], "monitors": {"alerts": ["NodeBalancers"], "metrics": ["NodeBalancers"]}, + "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, 192.0.2.0, 192.0.2.0, + 192.0.2.0", "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-east", + "label": "Newark, NJ", "country": "us", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-southeast", + "label": "Atlanta, GA", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-west", + "label": "Fremont, CA", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "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, "maximum_linodes_per_flexible_pg": + 5}, "site_type": "core"}], "page": 1, "pages": 1, "results": 34}' + 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: + - Fri, 17 Jul 2026 10:45:46 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: + - "1840" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" +- request: + body: '{"label":"go-test-vpc-1784285146072649000","region":"nl-ams","subnets":[{"label":"linodego-vpc-test-1784285146580996000","ipv4":"192.168.0.0/25"}]}' + 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": 573989, "label": "go-test-vpc-1784285146072649000", "description": + "", "region": "nl-ams", "ipv4": [{"range": "10.0.0.0/8"}, {"range": "172.16.0.0/12"}, + {"range": "192.168.0.0/17"}], "ipv6": null, "subnets": [{"id": 804458, "label": + "linodego-vpc-test-1784285146580996000", "ipv4": "192.168.0.0/25", "ipv6": null, + "linodes": [], "databases": [], "nodebalancers": [], "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: + - "511" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Fri, 17 Jul 2026 10:45:46 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: + - "15" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" +- request: + body: '{"label":"go-test-def","region":"nl-ams","tags":null,"type":"premium","vpcs":[{"subnet_id":804458}]}' + 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": 2376529, "label": "go-test-def", "region": "nl-ams", "type": "premium", + "backend_connectivity": "vpc", "hostname":"thisIsYourHostName", + "ipv4": "192.0.2.0", "ipv6": "1234::5678", "frontend_address_type": + "public", "frontend_vpc_subnet_id": null, "created": "2018-01-02T03:04:05", + "updated": "2018-01-02T03:04:05", "client_conn_throttle": 0, "client_udp_sess_throttle": + 0, "lke_cluster": null, "tags": [], "locks": [], "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: + - "515" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Fri, 17 Jul 2026 10:45:47 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: + - "1840" + 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/2376529 + 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: + - Fri, 17 Jul 2026 10:45:48 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: + - "1840" + 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/vpcs/573989 + 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: + - Fri, 17 Jul 2026 10:45:48 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: + - "1840" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" diff --git a/test/integration/fixtures/TestNodeBalancer_Create_WithFrontendAndBackendInDifferentVPCs.yaml b/test/integration/fixtures/TestNodeBalancer_Create_WithFrontendAndBackendInDifferentVPCs.yaml new file mode 100644 index 000000000..dcbcc39e6 --- /dev/null +++ b/test/integration/fixtures/TestNodeBalancer_Create_WithFrontendAndBackendInDifferentVPCs.yaml @@ -0,0 +1,888 @@ +--- +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": "au-mel", "label": "Melbourne, AU", "country": "au", "capabilities": + ["Linodes", "Block Storage Encryption", "LA Disk Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", "Metadata", + "Premium Plans", "Placement Group", "StackScripts", "Maintenance Policy", "Linode + Interfaces"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers", + "Object Storage"], "metrics": ["Managed Databases", "NodeBalancers", "Object + Storage"]}, "status": "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "es-mad", + "label": "Madrid, ES", "country": "es", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Kubernetes Enterprise", "Cloud Firewall", "Vlans", + "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", "Metadata", + "Premium Plans", "Placement Group", "StackScripts", "Maintenance Policy", "Linode + Interfaces"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], + "metrics": ["Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": + {"ipv4": "172.233.111.6,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "in-maa", + "label": "Chennai, IN", "country": "in", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes + Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 + Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces"], + "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed + Databases", "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "jp-osa", + "label": "Osaka, JP", "country": "jp", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "GPU Linodes", "Kubernetes", "Kubernetes Enterprise", "Cloud + Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "it-mil", + "label": "Milan, IT", "country": "it", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Kubernetes Enterprise", "Cloud Firewall", "Vlans", + "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", "Metadata", + "Premium Plans", "Placement Group", "StackScripts", "Maintenance Policy", "Linode + Interfaces"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], + "metrics": ["Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": + {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-mia", + "label": "Miami, FL", "country": "us", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes + Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 + Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces"], + "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed + Databases", "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "id-cgk", + "label": "Jakarta, ID", "country": "id", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes + Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 + Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": + ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-lax", + "label": "Los Angeles, CA", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes + Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 + Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces", + "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers", "Object Storage"], "metrics": ["Managed Databases", "NodeBalancers", + "Object Storage"]}, "status": "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "gb-lon", + "label": "London 2, UK", "country": "gb", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes + Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 + Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces", + "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": ["Linodes", "Managed Databases", + "NodeBalancers", "Object Storage"], "metrics": ["Managed Databases", "NodeBalancers", + "Object Storage"]}, "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "se-sto", + "label": "Stockholm, SE", "country": "se", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "GPU Linodes", "Kubernetes", "Kubernetes Enterprise", "Cloud + Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "in-bom-2", + "label": "Mumbai 2, IN", "country": "in", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "GPU Linodes", "Kubernetes", "Kubernetes Enterprise", "Cloud + Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces", "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": + ["Managed Databases", "NodeBalancers", "Object Storage"], "metrics": ["Managed + Databases", "NodeBalancers", "Object Storage"]}, "status": "ok", "resolvers": + {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "de-fra-2", + "label": "Frankfurt 2, DE", "country": "de", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes + Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 + Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces", + "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers", "Object Storage"], "metrics": ["Managed Databases", "NodeBalancers", + "Object Storage"]}, "status": "ok", "resolvers": {"ipv4": "172.236.203.9,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "sg-sin-2", + "label": "Singapore 2, SG", "country": "sg", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes + Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 + Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs Datacenter + LKE-E"], "monitors": {"alerts": ["Linodes", "Managed Databases", "NodeBalancers", + "Object Storage"], "metrics": ["Managed Databases", "NodeBalancers", "Object + Storage"]}, "status": "ok", "resolvers": {"ipv4": "172.236.129.8,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "jp-tyo-3", + "label": "Tokyo 3, JP", "country": "jp", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes + Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 + Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs Datacenter + LKE-E"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers", "Object + Storage"], "metrics": ["Managed Databases", "NodeBalancers", "Object Storage"]}, + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "no-osl-1", + "label": "Oslo, NO", "country": "no", "capabilities": ["Linodes", "Block Storage + Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", + "Object Storage", "Kubernetes", "Kubernetes Enterprise", "Cloud Firewall", "Vlans", + "VPCs", "Custom VPC IPv4 Ranges", "VPC Dual Stack", "VPC IPv6 Stack", "Managed + Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts", + "Maintenance Policy", "Linode Interfaces", "ACLP Logs Datacenter LKE-E"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers", "Object Storage"], "metrics": + ["Managed Databases", "NodeBalancers", "Object Storage"]}, "status": "ok", "resolvers": + {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-iad-2", + "label": "Washington 2, DC", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", + "Object Storage", "Kubernetes", "Kubernetes Enterprise", "Cloud Firewall", "Vlans", + "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", "Metadata", + "Premium Plans", "Placement Group", "StackScripts", "Maintenance Policy", "Linode + Interfaces"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers", + "Object Storage"], "metrics": ["Managed Databases", "NodeBalancers", "Object + Storage"]}, "status": "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "fr-par-2", + "label": "Paris 2, FR", "country": "fr", "capabilities": ["Linodes", "Block + Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", + "GPU Linodes", "Kubernetes", "Kubernetes Enterprise", "Cloud Firewall", "Vlans", + "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", "Metadata", + "Premium Plans", "Placement Group", "StackScripts", "Maintenance Policy", "Linode + Interfaces", "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": ["Managed + Databases", "NodeBalancers", "Object Storage"], "metrics": ["Managed Databases", + "NodeBalancers", "Object Storage"]}, "status": "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "nl-ams", + "label": "Amsterdam, NL", "country": "nl", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "GPU Linodes", "Kubernetes", "Kubernetes Enterprise", "Cloud + Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ap-west", + "label": "Mumbai, IN", "country": "in", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ca-central", + "label": "Toronto, CA", "country": "ca", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "Block + Storage Migrations", "Managed Databases", "Metadata", "Placement Group", "StackScripts", + "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed + Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ap-southeast", + "label": "Sydney, AU", "country": "au", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-iad", + "label": "Washington, DC", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "Kubernetes", "Kubernetes Enterprise", "Cloud + Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces", "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": + ["Managed Databases", "NodeBalancers", "Object Storage"], "metrics": ["Linodes", + "Managed Databases", "NodeBalancers", "Object Storage"]}, "status": "ok", "resolvers": + {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-ord", + "label": "Chicago, IL", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes + Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 + Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs Datacenter + LKE-E"], "monitors": {"alerts": ["Linodes", "Managed Databases", "NodeBalancers", + "Object Storage"], "metrics": ["Managed Databases", "NodeBalancers", "Object + Storage"]}, "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "fr-par", + "label": "Paris, FR", "country": "fr", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes + Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 + Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": + ["Managed Databases", "NodeBalancers", "Object Storage"], "metrics": ["Managed + Databases", "NodeBalancers", "Object Storage"]}, "status": "ok", "resolvers": + {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-sea", + "label": "Seattle, WA", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes + Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 + Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs Datacenter + LKE-E"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers", "Object + Storage"], "metrics": ["Managed Databases", "NodeBalancers", "Object Storage"]}, + "status": "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,172.232.160.8,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "br-gru", + "label": "Sao Paulo, BR", "country": "br", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "Kubernetes", "Kubernetes Enterprise", "Cloud + Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-central", + "label": "Dallas, TX", "country": "us", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ap-northeast", + "label": "Tokyo 2, JP", "country": "jp", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "eu-central", + "label": "Frankfurt, DE", "country": "de", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "Block + Storage Migrations", "Managed Databases", "Metadata", "Placement Group", "StackScripts", + "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed + Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ap-south", + "label": "Singapore, SG", "country": "sg", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "Block + Storage Migrations", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["NodeBalancers"], "metrics": + ["NodeBalancers"]}, "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "eu-west", + "label": "London, UK", "country": "gb", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Metadata", "Placement Group", "StackScripts", "Maintenance Policy", "Linode + Interfaces"], "monitors": {"alerts": ["NodeBalancers"], "metrics": ["NodeBalancers"]}, + "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, 192.0.2.0, 192.0.2.0, + 192.0.2.0", "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-east", + "label": "Newark, NJ", "country": "us", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-southeast", + "label": "Atlanta, GA", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-west", + "label": "Fremont, CA", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "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, "maximum_linodes_per_flexible_pg": + 5}, "site_type": "core"}], "page": 1, "pages": 1, "results": 34}' + 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: + - Fri, 17 Jul 2026 10:45:34 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: + - "1840" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" +- request: + body: '{"label":"go-test-vpc-1784285134315110000","region":"nl-ams","ipv6":[{"range":"/52"}],"subnets":[{"label":"linodego-vpc-test-1784285134315270000","ipv4":"192.168.0.0/25","ipv6":[{"range":"/62"}]}]}' + 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": 573987, "label": "go-test-vpc-1784285134315110000", "description": + "", "region": "nl-ams", "ipv4": [{"range": "10.0.0.0/8"}, {"range": "172.16.0.0/12"}, + {"range": "192.168.0.0/17"}], "ipv6": [{"range": "1234::5678/52"}], "subnets": + [{"id": 804454, "label": "linodego-vpc-test-1784285134315270000", "ipv4": "192.168.0.0/25", + "ipv6": [{"range": "1234::5678/62"}], "linodes": [], "databases": [], + "nodebalancers": [], "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: + - "571" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Fri, 17 Jul 2026 10:45:36 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: + - "15" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" +- request: + body: '{"label":"go-test-vpc-1784285136810418000","region":"nl-ams","ipv6":[{"range":"/52"}],"subnets":[{"label":"linodego-vpc-test-1784285136810624000","ipv4":"192.168.0.0/25","ipv6":[{"range":"/62"}]}]}' + 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": 573988, "label": "go-test-vpc-1784285136810418000", "description": + "", "region": "nl-ams", "ipv4": [{"range": "10.0.0.0/8"}, {"range": "172.16.0.0/12"}, + {"range": "192.168.0.0/17"}], "ipv6": [{"range": "1234::5678/52"}], "subnets": + [{"id": 804455, "label": "linodego-vpc-test-1784285136810624000", "ipv4": "192.168.0.0/25", + "ipv6": [{"range": "1234::5678/62"}], "linodes": [], "databases": [], + "nodebalancers": [], "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: + - "571" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Fri, 17 Jul 2026 10:45:38 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: + - "15" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" +- request: + body: '{"label":"go-test-def","region":"nl-ams","client_conn_throttle":20,"tags":null,"type":"premium","backend_vpcs":[{"subnet_id":804454}],"frontend_vpcs":[{"ipv4_range":"192.168.0.0/25","subnet_id":804455}]}' + 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": 2376528, "label": "go-test-def", "region": "nl-ams", "type": "premium", + "backend_connectivity": "vpc", "hostname":"thisIsYourHostName", "ipv4": "192.168.0.2", "ipv6": + "1234::5678", "frontend_address_type": "vpc", "frontend_vpc_subnet_id": + 804455, "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", + "client_conn_throttle": 20, "client_udp_sess_throttle": 0, "lke_cluster": null, + "tags": [], "locks": [], "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: + - "472" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Fri, 17 Jul 2026 10:45:40 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: + - "1840" + 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/2376528/vpcs?page=1 + method: GET + response: + body: '{"data": [{"id": 162407, "nodebalancer_id": 2376528, "vpc_id": 573988, + "subnet_id": 804455, "ipv4_range": "192.168.0.2/32", "ipv6_range": "1234::5678/64", + "purpose": "frontend"}, {"id": 162408, "nodebalancer_id": 2376528, "vpc_id": + 573987, "subnet_id": 804454, "ipv4_range": "192.168.0.4/30", "ipv6_range": "1234::5678/64", + "purpose": "backend"}], "page": 1, "pages": 1, "results": 2}' + 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: + - "400" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Fri, 17 Jul 2026 10:45:40 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: + - "1840" + 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/2376528 + 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: + - Fri, 17 Jul 2026 10:45:44 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: + - "1840" + 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/vpcs/573987 + 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: + - Fri, 17 Jul 2026 10:45:45 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: + - "1840" + 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/vpcs/573988 + 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: + - Fri, 17 Jul 2026 10:45:46 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: + - "1840" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" diff --git a/test/integration/fixtures/TestNodeBalancer_Create_WithFrontendAndDefaultType_Fail.yaml b/test/integration/fixtures/TestNodeBalancer_Create_WithFrontendAndDefaultType_Fail.yaml new file mode 100644 index 000000000..97f8bf70c --- /dev/null +++ b/test/integration/fixtures/TestNodeBalancer_Create_WithFrontendAndDefaultType_Fail.yaml @@ -0,0 +1,613 @@ +--- +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": "au-mel", "label": "Melbourne, AU", "country": "au", "capabilities": + ["Linodes", "Block Storage Encryption", "LA Disk Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", "Metadata", + "Premium Plans", "Placement Group", "StackScripts", "Maintenance Policy", "Linode + Interfaces"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers", + "Object Storage"], "metrics": ["Managed Databases", "NodeBalancers", "Object + Storage"]}, "status": "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "es-mad", + "label": "Madrid, ES", "country": "es", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Kubernetes Enterprise", "Cloud Firewall", "Vlans", + "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", "Metadata", + "Premium Plans", "Placement Group", "StackScripts", "Maintenance Policy", "Linode + Interfaces"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], + "metrics": ["Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": + {"ipv4": "172.233.111.6,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "in-maa", + "label": "Chennai, IN", "country": "in", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes + Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 + Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces"], + "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed + Databases", "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "jp-osa", + "label": "Osaka, JP", "country": "jp", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "GPU Linodes", "Kubernetes", "Kubernetes Enterprise", "Cloud + Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "it-mil", + "label": "Milan, IT", "country": "it", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Kubernetes Enterprise", "Cloud Firewall", "Vlans", + "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", "Metadata", + "Premium Plans", "Placement Group", "StackScripts", "Maintenance Policy", "Linode + Interfaces"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], + "metrics": ["Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": + {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-mia", + "label": "Miami, FL", "country": "us", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes + Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 + Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces"], + "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed + Databases", "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "id-cgk", + "label": "Jakarta, ID", "country": "id", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes + Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 + Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": + ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-lax", + "label": "Los Angeles, CA", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes + Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 + Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces", + "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers", "Object Storage"], "metrics": ["Managed Databases", "NodeBalancers", + "Object Storage"]}, "status": "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "gb-lon", + "label": "London 2, UK", "country": "gb", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes + Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 + Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces", + "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": ["Linodes", "Managed Databases", + "NodeBalancers", "Object Storage"], "metrics": ["Managed Databases", "NodeBalancers", + "Object Storage"]}, "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "se-sto", + "label": "Stockholm, SE", "country": "se", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "GPU Linodes", "Kubernetes", "Kubernetes Enterprise", "Cloud + Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "in-bom-2", + "label": "Mumbai 2, IN", "country": "in", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "GPU Linodes", "Kubernetes", "Kubernetes Enterprise", "Cloud + Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces", "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": + ["Managed Databases", "NodeBalancers", "Object Storage"], "metrics": ["Managed + Databases", "NodeBalancers", "Object Storage"]}, "status": "ok", "resolvers": + {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "de-fra-2", + "label": "Frankfurt 2, DE", "country": "de", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes + Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 + Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces", + "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers", "Object Storage"], "metrics": ["Managed Databases", "NodeBalancers", + "Object Storage"]}, "status": "ok", "resolvers": {"ipv4": "172.236.203.9,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "sg-sin-2", + "label": "Singapore 2, SG", "country": "sg", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes + Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 + Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs Datacenter + LKE-E"], "monitors": {"alerts": ["Linodes", "Managed Databases", "NodeBalancers", + "Object Storage"], "metrics": ["Managed Databases", "NodeBalancers", "Object + Storage"]}, "status": "ok", "resolvers": {"ipv4": "172.236.129.8,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "jp-tyo-3", + "label": "Tokyo 3, JP", "country": "jp", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes + Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 + Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs Datacenter + LKE-E"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers", "Object + Storage"], "metrics": ["Managed Databases", "NodeBalancers", "Object Storage"]}, + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "no-osl-1", + "label": "Oslo, NO", "country": "no", "capabilities": ["Linodes", "Block Storage + Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", + "Object Storage", "Kubernetes", "Kubernetes Enterprise", "Cloud Firewall", "Vlans", + "VPCs", "Custom VPC IPv4 Ranges", "VPC Dual Stack", "VPC IPv6 Stack", "Managed + Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts", + "Maintenance Policy", "Linode Interfaces", "ACLP Logs Datacenter LKE-E"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers", "Object Storage"], "metrics": + ["Managed Databases", "NodeBalancers", "Object Storage"]}, "status": "ok", "resolvers": + {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-iad-2", + "label": "Washington 2, DC", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", + "Object Storage", "Kubernetes", "Kubernetes Enterprise", "Cloud Firewall", "Vlans", + "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", "Metadata", + "Premium Plans", "Placement Group", "StackScripts", "Maintenance Policy", "Linode + Interfaces"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers", + "Object Storage"], "metrics": ["Managed Databases", "NodeBalancers", "Object + Storage"]}, "status": "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "fr-par-2", + "label": "Paris 2, FR", "country": "fr", "capabilities": ["Linodes", "Block + Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", + "GPU Linodes", "Kubernetes", "Kubernetes Enterprise", "Cloud Firewall", "Vlans", + "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", "Metadata", + "Premium Plans", "Placement Group", "StackScripts", "Maintenance Policy", "Linode + Interfaces", "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": ["Managed + Databases", "NodeBalancers", "Object Storage"], "metrics": ["Managed Databases", + "NodeBalancers", "Object Storage"]}, "status": "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "nl-ams", + "label": "Amsterdam, NL", "country": "nl", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "GPU Linodes", "Kubernetes", "Kubernetes Enterprise", "Cloud + Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ap-west", + "label": "Mumbai, IN", "country": "in", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ca-central", + "label": "Toronto, CA", "country": "ca", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "Block + Storage Migrations", "Managed Databases", "Metadata", "Placement Group", "StackScripts", + "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed + Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ap-southeast", + "label": "Sydney, AU", "country": "au", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-iad", + "label": "Washington, DC", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "Kubernetes", "Kubernetes Enterprise", "Cloud + Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces", "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": + ["Managed Databases", "NodeBalancers", "Object Storage"], "metrics": ["Linodes", + "Managed Databases", "NodeBalancers", "Object Storage"]}, "status": "ok", "resolvers": + {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-ord", + "label": "Chicago, IL", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes + Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 + Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs Datacenter + LKE-E"], "monitors": {"alerts": ["Linodes", "Managed Databases", "NodeBalancers", + "Object Storage"], "metrics": ["Managed Databases", "NodeBalancers", "Object + Storage"]}, "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "fr-par", + "label": "Paris, FR", "country": "fr", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes + Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 + Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": + ["Managed Databases", "NodeBalancers", "Object Storage"], "metrics": ["Managed + Databases", "NodeBalancers", "Object Storage"]}, "status": "ok", "resolvers": + {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-sea", + "label": "Seattle, WA", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes + Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 + Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs Datacenter + LKE-E"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers", "Object + Storage"], "metrics": ["Managed Databases", "NodeBalancers", "Object Storage"]}, + "status": "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,172.232.160.8,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "br-gru", + "label": "Sao Paulo, BR", "country": "br", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "Kubernetes", "Kubernetes Enterprise", "Cloud + Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-central", + "label": "Dallas, TX", "country": "us", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ap-northeast", + "label": "Tokyo 2, JP", "country": "jp", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "eu-central", + "label": "Frankfurt, DE", "country": "de", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "Block + Storage Migrations", "Managed Databases", "Metadata", "Placement Group", "StackScripts", + "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed + Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ap-south", + "label": "Singapore, SG", "country": "sg", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "Block + Storage Migrations", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["NodeBalancers"], "metrics": + ["NodeBalancers"]}, "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "eu-west", + "label": "London, UK", "country": "gb", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Metadata", "Placement Group", "StackScripts", "Maintenance Policy", "Linode + Interfaces"], "monitors": {"alerts": ["NodeBalancers"], "metrics": ["NodeBalancers"]}, + "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, 192.0.2.0, 192.0.2.0, + 192.0.2.0", "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-east", + "label": "Newark, NJ", "country": "us", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-southeast", + "label": "Atlanta, GA", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-west", + "label": "Fremont, CA", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "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, "maximum_linodes_per_flexible_pg": + 5}, "site_type": "core"}], "page": 1, "pages": 1, "results": 34}' + 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: + - Fri, 17 Jul 2026 10:45:20 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: + - "1840" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" +- request: + body: '{"label":"go-test-vpc-1784285120082783000","region":"au-mel","ipv6":[{"range":"/52"}],"subnets":[{"label":"linodego-vpc-test-1784285121065685000","ipv4":"192.168.0.0/25","ipv6":[{"range":"/62"}]}]}' + 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": 573985, "label": "go-test-vpc-1784285120082783000", "description": + "", "region": "au-mel", "ipv4": [{"range": "10.0.0.0/8"}, {"range": "172.16.0.0/12"}, + {"range": "192.168.0.0/17"}], "ipv6": [{"range": "1234::5678/52"}], "subnets": + [{"id": 804451, "label": "linodego-vpc-test-1784285121065685000", "ipv4": "192.168.0.0/25", + "ipv6": [{"range": "1234::5678/62"}], "linodes": [], "databases": [], + "nodebalancers": [], "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: + - "571" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Fri, 17 Jul 2026 10:45: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: + - "15" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" +- request: + body: '{"label":"go-test-def","region":"au-mel","tags":null,"type":"common","frontend_vpcs":[{"subnet_id":804451}]}' + 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: '{"errors": [{"reason": "NodeBalancer with frontend VPC IP must be premium"}]}' + headers: + 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: + - '*' + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Content-Length: + - "77" + Content-Type: + - application/json + Expires: + - Fri, 17 Jul 2026 10:45:23 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + X-Accepted-Oauth-Scopes: + - nodebalancers:read_write + X-Frame-Options: + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "1840" + status: 400 Bad Request + code: 400 + 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/573985 + 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: + - Fri, 17 Jul 2026 10:45:24 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: + - "1840" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" diff --git a/test/integration/fixtures/TestNodeBalancer_Create_WithFrontendIPv6Only_Fail.yaml b/test/integration/fixtures/TestNodeBalancer_Create_WithFrontendIPv6Only_Fail.yaml new file mode 100644 index 000000000..16752503c --- /dev/null +++ b/test/integration/fixtures/TestNodeBalancer_Create_WithFrontendIPv6Only_Fail.yaml @@ -0,0 +1,613 @@ +--- +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": "au-mel", "label": "Melbourne, AU", "country": "au", "capabilities": + ["Linodes", "Block Storage Encryption", "LA Disk Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", "Metadata", + "Premium Plans", "Placement Group", "StackScripts", "Maintenance Policy", "Linode + Interfaces"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers", + "Object Storage"], "metrics": ["Managed Databases", "NodeBalancers", "Object + Storage"]}, "status": "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "es-mad", + "label": "Madrid, ES", "country": "es", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Kubernetes Enterprise", "Cloud Firewall", "Vlans", + "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", "Metadata", + "Premium Plans", "Placement Group", "StackScripts", "Maintenance Policy", "Linode + Interfaces"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], + "metrics": ["Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": + {"ipv4": "172.233.111.6,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "in-maa", + "label": "Chennai, IN", "country": "in", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes + Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 + Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces"], + "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed + Databases", "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "jp-osa", + "label": "Osaka, JP", "country": "jp", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "GPU Linodes", "Kubernetes", "Kubernetes Enterprise", "Cloud + Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "it-mil", + "label": "Milan, IT", "country": "it", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Kubernetes Enterprise", "Cloud Firewall", "Vlans", + "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", "Metadata", + "Premium Plans", "Placement Group", "StackScripts", "Maintenance Policy", "Linode + Interfaces"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], + "metrics": ["Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": + {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-mia", + "label": "Miami, FL", "country": "us", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes + Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 + Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces"], + "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed + Databases", "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "id-cgk", + "label": "Jakarta, ID", "country": "id", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes + Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 + Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": + ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-lax", + "label": "Los Angeles, CA", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes + Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 + Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces", + "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers", "Object Storage"], "metrics": ["Managed Databases", "NodeBalancers", + "Object Storage"]}, "status": "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "gb-lon", + "label": "London 2, UK", "country": "gb", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes + Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 + Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces", + "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": ["Linodes", "Managed Databases", + "NodeBalancers", "Object Storage"], "metrics": ["Managed Databases", "NodeBalancers", + "Object Storage"]}, "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "se-sto", + "label": "Stockholm, SE", "country": "se", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "GPU Linodes", "Kubernetes", "Kubernetes Enterprise", "Cloud + Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "in-bom-2", + "label": "Mumbai 2, IN", "country": "in", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "GPU Linodes", "Kubernetes", "Kubernetes Enterprise", "Cloud + Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces", "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": + ["Managed Databases", "NodeBalancers", "Object Storage"], "metrics": ["Managed + Databases", "NodeBalancers", "Object Storage"]}, "status": "ok", "resolvers": + {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "de-fra-2", + "label": "Frankfurt 2, DE", "country": "de", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes + Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 + Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces", + "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers", "Object Storage"], "metrics": ["Managed Databases", "NodeBalancers", + "Object Storage"]}, "status": "ok", "resolvers": {"ipv4": "172.236.203.9,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "sg-sin-2", + "label": "Singapore 2, SG", "country": "sg", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes + Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 + Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs Datacenter + LKE-E"], "monitors": {"alerts": ["Linodes", "Managed Databases", "NodeBalancers", + "Object Storage"], "metrics": ["Managed Databases", "NodeBalancers", "Object + Storage"]}, "status": "ok", "resolvers": {"ipv4": "172.236.129.8,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "jp-tyo-3", + "label": "Tokyo 3, JP", "country": "jp", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes + Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 + Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs Datacenter + LKE-E"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers", "Object + Storage"], "metrics": ["Managed Databases", "NodeBalancers", "Object Storage"]}, + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "no-osl-1", + "label": "Oslo, NO", "country": "no", "capabilities": ["Linodes", "Block Storage + Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", + "Object Storage", "Kubernetes", "Kubernetes Enterprise", "Cloud Firewall", "Vlans", + "VPCs", "Custom VPC IPv4 Ranges", "VPC Dual Stack", "VPC IPv6 Stack", "Managed + Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts", + "Maintenance Policy", "Linode Interfaces", "ACLP Logs Datacenter LKE-E"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers", "Object Storage"], "metrics": + ["Managed Databases", "NodeBalancers", "Object Storage"]}, "status": "ok", "resolvers": + {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-iad-2", + "label": "Washington 2, DC", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", + "Object Storage", "Kubernetes", "Kubernetes Enterprise", "Cloud Firewall", "Vlans", + "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", "Metadata", + "Premium Plans", "Placement Group", "StackScripts", "Maintenance Policy", "Linode + Interfaces"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers", + "Object Storage"], "metrics": ["Managed Databases", "NodeBalancers", "Object + Storage"]}, "status": "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "fr-par-2", + "label": "Paris 2, FR", "country": "fr", "capabilities": ["Linodes", "Block + Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", + "GPU Linodes", "Kubernetes", "Kubernetes Enterprise", "Cloud Firewall", "Vlans", + "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", "Metadata", + "Premium Plans", "Placement Group", "StackScripts", "Maintenance Policy", "Linode + Interfaces", "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": ["Managed + Databases", "NodeBalancers", "Object Storage"], "metrics": ["Managed Databases", + "NodeBalancers", "Object Storage"]}, "status": "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "nl-ams", + "label": "Amsterdam, NL", "country": "nl", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "GPU Linodes", "Kubernetes", "Kubernetes Enterprise", "Cloud + Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ap-west", + "label": "Mumbai, IN", "country": "in", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ca-central", + "label": "Toronto, CA", "country": "ca", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "Block + Storage Migrations", "Managed Databases", "Metadata", "Placement Group", "StackScripts", + "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed + Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ap-southeast", + "label": "Sydney, AU", "country": "au", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-iad", + "label": "Washington, DC", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "Kubernetes", "Kubernetes Enterprise", "Cloud + Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces", "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": + ["Managed Databases", "NodeBalancers", "Object Storage"], "metrics": ["Linodes", + "Managed Databases", "NodeBalancers", "Object Storage"]}, "status": "ok", "resolvers": + {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-ord", + "label": "Chicago, IL", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes + Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 + Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs Datacenter + LKE-E"], "monitors": {"alerts": ["Linodes", "Managed Databases", "NodeBalancers", + "Object Storage"], "metrics": ["Managed Databases", "NodeBalancers", "Object + Storage"]}, "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "fr-par", + "label": "Paris, FR", "country": "fr", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes + Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 + Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": + ["Managed Databases", "NodeBalancers", "Object Storage"], "metrics": ["Managed + Databases", "NodeBalancers", "Object Storage"]}, "status": "ok", "resolvers": + {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-sea", + "label": "Seattle, WA", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes + Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 + Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs Datacenter + LKE-E"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers", "Object + Storage"], "metrics": ["Managed Databases", "NodeBalancers", "Object Storage"]}, + "status": "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,172.232.160.8,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "br-gru", + "label": "Sao Paulo, BR", "country": "br", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "Kubernetes", "Kubernetes Enterprise", "Cloud + Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-central", + "label": "Dallas, TX", "country": "us", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ap-northeast", + "label": "Tokyo 2, JP", "country": "jp", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "eu-central", + "label": "Frankfurt, DE", "country": "de", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "Block + Storage Migrations", "Managed Databases", "Metadata", "Placement Group", "StackScripts", + "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed + Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ap-south", + "label": "Singapore, SG", "country": "sg", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "Block + Storage Migrations", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["NodeBalancers"], "metrics": + ["NodeBalancers"]}, "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "eu-west", + "label": "London, UK", "country": "gb", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Metadata", "Placement Group", "StackScripts", "Maintenance Policy", "Linode + Interfaces"], "monitors": {"alerts": ["NodeBalancers"], "metrics": ["NodeBalancers"]}, + "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, 192.0.2.0, 192.0.2.0, + 192.0.2.0", "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-east", + "label": "Newark, NJ", "country": "us", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-southeast", + "label": "Atlanta, GA", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-west", + "label": "Fremont, CA", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "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, "maximum_linodes_per_flexible_pg": + 5}, "site_type": "core"}], "page": 1, "pages": 1, "results": 34}' + 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: + - Fri, 17 Jul 2026 10:45:18 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: + - "1840" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" +- request: + body: '{"label":"go-test-vpc-1784285118041992000","region":"au-mel","subnets":[{"label":"linodego-vpc-test-1784285118488982000","ipv4":"192.168.0.0/25"}]}' + 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": 573984, "label": "go-test-vpc-1784285118041992000", "description": + "", "region": "au-mel", "ipv4": [{"range": "10.0.0.0/8"}, {"range": "172.16.0.0/12"}, + {"range": "192.168.0.0/17"}], "ipv6": null, "subnets": [{"id": 804450, "label": + "linodego-vpc-test-1784285118488982000", "ipv4": "192.168.0.0/25", "ipv6": null, + "linodes": [], "databases": [], "nodebalancers": [], "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: + - "511" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Fri, 17 Jul 2026 10:45:18 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: + - "15" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" +- request: + body: '{"label":"go-test-def","region":"au-mel","tags":null,"type":"premium","frontend_vpcs":[{"ipv6_range":"/62","subnet_id":804450}]}' + 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: '{"errors": [{"reason": "No IPv6 subnets available in VPC.", "field": "frontend_vpcs[0].ipv6_range"}]}' + headers: + 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: + - '*' + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Content-Length: + - "101" + Content-Type: + - application/json + Expires: + - Fri, 17 Jul 2026 10:45:19 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + X-Accepted-Oauth-Scopes: + - nodebalancers:read_write + X-Frame-Options: + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "1840" + status: 400 Bad Request + code: 400 + 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/573984 + 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: + - Fri, 17 Jul 2026 10:45:20 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: + - "1840" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" diff --git a/test/integration/fixtures/TestNodeBalancer_Create_WithFrontendVPCOnly.yaml b/test/integration/fixtures/TestNodeBalancer_Create_WithFrontendVPCOnly.yaml new file mode 100644 index 000000000..e415d9b4f --- /dev/null +++ b/test/integration/fixtures/TestNodeBalancer_Create_WithFrontendVPCOnly.yaml @@ -0,0 +1,822 @@ +--- +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": "au-mel", "label": "Melbourne, AU", "country": "au", "capabilities": + ["Linodes", "Block Storage Encryption", "LA Disk Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", "Metadata", + "Premium Plans", "Placement Group", "StackScripts", "Maintenance Policy", "Linode + Interfaces"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers", + "Object Storage"], "metrics": ["Managed Databases", "NodeBalancers", "Object + Storage"]}, "status": "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "es-mad", + "label": "Madrid, ES", "country": "es", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Kubernetes Enterprise", "Cloud Firewall", "Vlans", + "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", "Metadata", + "Premium Plans", "Placement Group", "StackScripts", "Maintenance Policy", "Linode + Interfaces"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], + "metrics": ["Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": + {"ipv4": "172.233.111.6,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "in-maa", + "label": "Chennai, IN", "country": "in", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes + Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 + Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces"], + "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed + Databases", "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "jp-osa", + "label": "Osaka, JP", "country": "jp", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "GPU Linodes", "Kubernetes", "Kubernetes Enterprise", "Cloud + Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "it-mil", + "label": "Milan, IT", "country": "it", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Kubernetes Enterprise", "Cloud Firewall", "Vlans", + "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", "Metadata", + "Premium Plans", "Placement Group", "StackScripts", "Maintenance Policy", "Linode + Interfaces"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], + "metrics": ["Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": + {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-mia", + "label": "Miami, FL", "country": "us", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes + Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 + Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces"], + "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed + Databases", "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "id-cgk", + "label": "Jakarta, ID", "country": "id", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes + Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 + Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": + ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-lax", + "label": "Los Angeles, CA", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes + Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 + Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces", + "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers", "Object Storage"], "metrics": ["Managed Databases", "NodeBalancers", + "Object Storage"]}, "status": "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "gb-lon", + "label": "London 2, UK", "country": "gb", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes + Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 + Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces", + "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": ["Linodes", "Managed Databases", + "NodeBalancers", "Object Storage"], "metrics": ["Managed Databases", "NodeBalancers", + "Object Storage"]}, "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "se-sto", + "label": "Stockholm, SE", "country": "se", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "GPU Linodes", "Kubernetes", "Kubernetes Enterprise", "Cloud + Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "in-bom-2", + "label": "Mumbai 2, IN", "country": "in", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "GPU Linodes", "Kubernetes", "Kubernetes Enterprise", "Cloud + Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces", "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": + ["Managed Databases", "NodeBalancers", "Object Storage"], "metrics": ["Managed + Databases", "NodeBalancers", "Object Storage"]}, "status": "ok", "resolvers": + {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "de-fra-2", + "label": "Frankfurt 2, DE", "country": "de", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes + Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 + Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces", + "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers", "Object Storage"], "metrics": ["Managed Databases", "NodeBalancers", + "Object Storage"]}, "status": "ok", "resolvers": {"ipv4": "172.236.203.9,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "sg-sin-2", + "label": "Singapore 2, SG", "country": "sg", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes + Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 + Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs Datacenter + LKE-E"], "monitors": {"alerts": ["Linodes", "Managed Databases", "NodeBalancers", + "Object Storage"], "metrics": ["Managed Databases", "NodeBalancers", "Object + Storage"]}, "status": "ok", "resolvers": {"ipv4": "172.236.129.8,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "jp-tyo-3", + "label": "Tokyo 3, JP", "country": "jp", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes + Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 + Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs Datacenter + LKE-E"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers", "Object + Storage"], "metrics": ["Managed Databases", "NodeBalancers", "Object Storage"]}, + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "no-osl-1", + "label": "Oslo, NO", "country": "no", "capabilities": ["Linodes", "Block Storage + Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", + "Object Storage", "Kubernetes", "Kubernetes Enterprise", "Cloud Firewall", "Vlans", + "VPCs", "Custom VPC IPv4 Ranges", "VPC Dual Stack", "VPC IPv6 Stack", "Managed + Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts", + "Maintenance Policy", "Linode Interfaces", "ACLP Logs Datacenter LKE-E"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers", "Object Storage"], "metrics": + ["Managed Databases", "NodeBalancers", "Object Storage"]}, "status": "ok", "resolvers": + {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-iad-2", + "label": "Washington 2, DC", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", + "Object Storage", "Kubernetes", "Kubernetes Enterprise", "Cloud Firewall", "Vlans", + "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", "Metadata", + "Premium Plans", "Placement Group", "StackScripts", "Maintenance Policy", "Linode + Interfaces"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers", + "Object Storage"], "metrics": ["Managed Databases", "NodeBalancers", "Object + Storage"]}, "status": "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "fr-par-2", + "label": "Paris 2, FR", "country": "fr", "capabilities": ["Linodes", "Block + Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", + "GPU Linodes", "Kubernetes", "Kubernetes Enterprise", "Cloud Firewall", "Vlans", + "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", "Metadata", + "Premium Plans", "Placement Group", "StackScripts", "Maintenance Policy", "Linode + Interfaces", "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": ["Managed + Databases", "NodeBalancers", "Object Storage"], "metrics": ["Managed Databases", + "NodeBalancers", "Object Storage"]}, "status": "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "nl-ams", + "label": "Amsterdam, NL", "country": "nl", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "GPU Linodes", "Kubernetes", "Kubernetes Enterprise", "Cloud + Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ap-west", + "label": "Mumbai, IN", "country": "in", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ca-central", + "label": "Toronto, CA", "country": "ca", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "Block + Storage Migrations", "Managed Databases", "Metadata", "Placement Group", "StackScripts", + "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed + Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ap-southeast", + "label": "Sydney, AU", "country": "au", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-iad", + "label": "Washington, DC", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "Kubernetes", "Kubernetes Enterprise", "Cloud + Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces", "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": + ["Managed Databases", "NodeBalancers", "Object Storage"], "metrics": ["Linodes", + "Managed Databases", "NodeBalancers", "Object Storage"]}, "status": "ok", "resolvers": + {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-ord", + "label": "Chicago, IL", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes + Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 + Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs Datacenter + LKE-E"], "monitors": {"alerts": ["Linodes", "Managed Databases", "NodeBalancers", + "Object Storage"], "metrics": ["Managed Databases", "NodeBalancers", "Object + Storage"]}, "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "fr-par", + "label": "Paris, FR", "country": "fr", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes + Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 + Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": + ["Managed Databases", "NodeBalancers", "Object Storage"], "metrics": ["Managed + Databases", "NodeBalancers", "Object Storage"]}, "status": "ok", "resolvers": + {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-sea", + "label": "Seattle, WA", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes + Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 + Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs Datacenter + LKE-E"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers", "Object + Storage"], "metrics": ["Managed Databases", "NodeBalancers", "Object Storage"]}, + "status": "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,172.232.160.8,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "br-gru", + "label": "Sao Paulo, BR", "country": "br", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "Kubernetes", "Kubernetes Enterprise", "Cloud + Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-central", + "label": "Dallas, TX", "country": "us", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ap-northeast", + "label": "Tokyo 2, JP", "country": "jp", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "eu-central", + "label": "Frankfurt, DE", "country": "de", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "Block + Storage Migrations", "Managed Databases", "Metadata", "Placement Group", "StackScripts", + "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed + Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ap-south", + "label": "Singapore, SG", "country": "sg", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "Block + Storage Migrations", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["NodeBalancers"], "metrics": + ["NodeBalancers"]}, "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "eu-west", + "label": "London, UK", "country": "gb", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Metadata", "Placement Group", "StackScripts", "Maintenance Policy", "Linode + Interfaces"], "monitors": {"alerts": ["NodeBalancers"], "metrics": ["NodeBalancers"]}, + "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, 192.0.2.0, 192.0.2.0, + 192.0.2.0", "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-east", + "label": "Newark, NJ", "country": "us", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-southeast", + "label": "Atlanta, GA", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-west", + "label": "Fremont, CA", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "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, "maximum_linodes_per_flexible_pg": + 5}, "site_type": "core"}], "page": 1, "pages": 1, "results": 34}' + 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: + - Fri, 17 Jul 2026 10:45:09 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: + - "1840" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" +- request: + body: '{"label":"go-test-vpc-1784285109627789000","region":"nl-ams","ipv6":[{"range":"/52"}],"subnets":[{"label":"linodego-vpc-test-1784285109627934000","ipv4":"192.168.0.0/25","ipv6":[{"range":"/62"}]}]}' + 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": 573983, "label": "go-test-vpc-1784285109627789000", "description": + "", "region": "nl-ams", "ipv4": [{"range": "10.0.0.0/8"}, {"range": "172.16.0.0/12"}, + {"range": "192.168.0.0/17"}], "ipv6": [{"range": "1234::5678/52"}], "subnets": + [{"id": 804448, "label": "linodego-vpc-test-1784285109627934000", "ipv4": "192.168.0.0/25", + "ipv6": [{"range": "1234::5678/62"}], "linodes": [], "databases": [], + "nodebalancers": [], "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: + - "571" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Fri, 17 Jul 2026 10:45:13 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: + - "15" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" +- request: + body: '{"label":"go-test-def","region":"nl-ams","client_conn_throttle":20,"tags":null,"type":"premium","frontend_vpcs":[{"ipv4_range":"192.168.0.0/25","subnet_id":804448}]}' + 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": 2376523, "label": "go-test-def", "region": "nl-ams", "type": "premium", + "backend_connectivity": "vpc", "hostname":"thisIsYourHostName", "ipv4": "192.168.0.2", "ipv6": + "1234::5678", "frontend_address_type": "vpc", "frontend_vpc_subnet_id": + 804448, "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", + "client_conn_throttle": 20, "client_udp_sess_throttle": 0, "lke_cluster": null, + "tags": [], "locks": [], "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: + - "472" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Fri, 17 Jul 2026 10:45:15 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: + - "1840" + 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/2376523/vpcs?page=1 + method: GET + response: + body: '{"data": [{"id": 162405, "nodebalancer_id": 2376523, "vpc_id": 573983, + "subnet_id": 804448, "ipv4_range": "192.168.0.2/32", "ipv6_range": "1234::5678/64", + "purpose": "frontend"}], "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: + - "224" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Fri, 17 Jul 2026 10:45:15 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: + - "1840" + 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/2376523/vpcs/162405 + method: GET + response: + body: '{"id": 162405, "nodebalancer_id": 2376523, "vpc_id": 573983, "subnet_id": + 804448, "ipv4_range": "192.168.0.2/32", "ipv6_range": "1234::5678/64", + "purpose": "frontend"}' + 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: + - "175" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Fri, 17 Jul 2026 10:45:15 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: + - "1840" + 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/2376523 + 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: + - Fri, 17 Jul 2026 10:45:17 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: + - "1840" + 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/vpcs/573983 + 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: + - Fri, 17 Jul 2026 10:45:18 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: + - "1840" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" diff --git a/test/integration/fixtures/TestNodeBalancer_Create_WithPremium40GBType.yaml b/test/integration/fixtures/TestNodeBalancer_Create_WithPremium40GBType.yaml new file mode 100644 index 000000000..19d261b8a --- /dev/null +++ b/test/integration/fixtures/TestNodeBalancer_Create_WithPremium40GBType.yaml @@ -0,0 +1,694 @@ +--- +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": "au-mel", "label": "Melbourne, AU", "country": "au", "capabilities": + ["Linodes", "Block Storage Encryption", "LA Disk Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", "Metadata", + "Premium Plans", "Placement Group", "StackScripts", "Maintenance Policy", "Linode + Interfaces"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers", + "Object Storage"], "metrics": ["Managed Databases", "NodeBalancers", "Object + Storage"]}, "status": "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "es-mad", + "label": "Madrid, ES", "country": "es", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Kubernetes Enterprise", "Cloud Firewall", "Vlans", + "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", "Metadata", + "Premium Plans", "Placement Group", "StackScripts", "Maintenance Policy", "Linode + Interfaces"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], + "metrics": ["Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": + {"ipv4": "172.233.111.6,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "in-maa", + "label": "Chennai, IN", "country": "in", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes + Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 + Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces"], + "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed + Databases", "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "jp-osa", + "label": "Osaka, JP", "country": "jp", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "GPU Linodes", "Kubernetes", "Kubernetes Enterprise", "Cloud + Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "it-mil", + "label": "Milan, IT", "country": "it", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Kubernetes Enterprise", "Cloud Firewall", "Vlans", + "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", "Metadata", + "Premium Plans", "Placement Group", "StackScripts", "Maintenance Policy", "Linode + Interfaces"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], + "metrics": ["Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": + {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-mia", + "label": "Miami, FL", "country": "us", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes + Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 + Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces"], + "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed + Databases", "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "id-cgk", + "label": "Jakarta, ID", "country": "id", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes + Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 + Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": + ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-lax", + "label": "Los Angeles, CA", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes + Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 + Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces", + "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers", "Object Storage"], "metrics": ["Managed Databases", "NodeBalancers", + "Object Storage"]}, "status": "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "gb-lon", + "label": "London 2, UK", "country": "gb", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes + Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 + Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces", + "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": ["Linodes", "Managed Databases", + "NodeBalancers", "Object Storage"], "metrics": ["Managed Databases", "NodeBalancers", + "Object Storage"]}, "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "se-sto", + "label": "Stockholm, SE", "country": "se", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "GPU Linodes", "Kubernetes", "Kubernetes Enterprise", "Cloud + Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "in-bom-2", + "label": "Mumbai 2, IN", "country": "in", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "GPU Linodes", "Kubernetes", "Kubernetes Enterprise", "Cloud + Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces", "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": + ["Managed Databases", "NodeBalancers", "Object Storage"], "metrics": ["Managed + Databases", "NodeBalancers", "Object Storage"]}, "status": "ok", "resolvers": + {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "de-fra-2", + "label": "Frankfurt 2, DE", "country": "de", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes + Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 + Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces", + "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers", "Object Storage"], "metrics": ["Managed Databases", "NodeBalancers", + "Object Storage"]}, "status": "ok", "resolvers": {"ipv4": "172.236.203.9,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "sg-sin-2", + "label": "Singapore 2, SG", "country": "sg", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes + Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 + Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs Datacenter + LKE-E"], "monitors": {"alerts": ["Linodes", "Managed Databases", "NodeBalancers", + "Object Storage"], "metrics": ["Managed Databases", "NodeBalancers", "Object + Storage"]}, "status": "ok", "resolvers": {"ipv4": "172.236.129.8,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "jp-tyo-3", + "label": "Tokyo 3, JP", "country": "jp", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes + Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 + Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs Datacenter + LKE-E"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers", "Object + Storage"], "metrics": ["Managed Databases", "NodeBalancers", "Object Storage"]}, + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "no-osl-1", + "label": "Oslo, NO", "country": "no", "capabilities": ["Linodes", "Block Storage + Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", + "Object Storage", "Kubernetes", "Kubernetes Enterprise", "Cloud Firewall", "Vlans", + "VPCs", "Custom VPC IPv4 Ranges", "VPC Dual Stack", "VPC IPv6 Stack", "Managed + Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts", + "Maintenance Policy", "Linode Interfaces", "ACLP Logs Datacenter LKE-E"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers", "Object Storage"], "metrics": + ["Managed Databases", "NodeBalancers", "Object Storage"]}, "status": "ok", "resolvers": + {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-iad-2", + "label": "Washington 2, DC", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", + "Object Storage", "Kubernetes", "Kubernetes Enterprise", "Cloud Firewall", "Vlans", + "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", "Metadata", + "Premium Plans", "Placement Group", "StackScripts", "Maintenance Policy", "Linode + Interfaces"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers", + "Object Storage"], "metrics": ["Managed Databases", "NodeBalancers", "Object + Storage"]}, "status": "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "fr-par-2", + "label": "Paris 2, FR", "country": "fr", "capabilities": ["Linodes", "Block + Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", + "GPU Linodes", "Kubernetes", "Kubernetes Enterprise", "Cloud Firewall", "Vlans", + "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", "Metadata", + "Premium Plans", "Placement Group", "StackScripts", "Maintenance Policy", "Linode + Interfaces", "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": ["Managed + Databases", "NodeBalancers", "Object Storage"], "metrics": ["Managed Databases", + "NodeBalancers", "Object Storage"]}, "status": "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "nl-ams", + "label": "Amsterdam, NL", "country": "nl", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "GPU Linodes", "Kubernetes", "Kubernetes Enterprise", "Cloud + Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ap-west", + "label": "Mumbai, IN", "country": "in", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ca-central", + "label": "Toronto, CA", "country": "ca", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "Block + Storage Migrations", "Managed Databases", "Metadata", "Placement Group", "StackScripts", + "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed + Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ap-southeast", + "label": "Sydney, AU", "country": "au", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-iad", + "label": "Washington, DC", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "Kubernetes", "Kubernetes Enterprise", "Cloud + Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces", "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": + ["Managed Databases", "NodeBalancers", "Object Storage"], "metrics": ["Linodes", + "Managed Databases", "NodeBalancers", "Object Storage"]}, "status": "ok", "resolvers": + {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-ord", + "label": "Chicago, IL", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes + Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 + Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs Datacenter + LKE-E"], "monitors": {"alerts": ["Linodes", "Managed Databases", "NodeBalancers", + "Object Storage"], "metrics": ["Managed Databases", "NodeBalancers", "Object + Storage"]}, "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "fr-par", + "label": "Paris, FR", "country": "fr", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes + Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 + Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": + ["Managed Databases", "NodeBalancers", "Object Storage"], "metrics": ["Managed + Databases", "NodeBalancers", "Object Storage"]}, "status": "ok", "resolvers": + {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-sea", + "label": "Seattle, WA", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes + Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 + Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs Datacenter + LKE-E"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers", "Object + Storage"], "metrics": ["Managed Databases", "NodeBalancers", "Object Storage"]}, + "status": "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,172.232.160.8,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "br-gru", + "label": "Sao Paulo, BR", "country": "br", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "Kubernetes", "Kubernetes Enterprise", "Cloud + Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-central", + "label": "Dallas, TX", "country": "us", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ap-northeast", + "label": "Tokyo 2, JP", "country": "jp", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "eu-central", + "label": "Frankfurt, DE", "country": "de", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "Block + Storage Migrations", "Managed Databases", "Metadata", "Placement Group", "StackScripts", + "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed + Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ap-south", + "label": "Singapore, SG", "country": "sg", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "Block + Storage Migrations", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["NodeBalancers"], "metrics": + ["NodeBalancers"]}, "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "eu-west", + "label": "London, UK", "country": "gb", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Metadata", "Placement Group", "StackScripts", "Maintenance Policy", "Linode + Interfaces"], "monitors": {"alerts": ["NodeBalancers"], "metrics": ["NodeBalancers"]}, + "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, 192.0.2.0, 192.0.2.0, + 192.0.2.0", "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-east", + "label": "Newark, NJ", "country": "us", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-southeast", + "label": "Atlanta, GA", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "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, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-west", + "label": "Fremont, CA", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "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, "maximum_linodes_per_flexible_pg": + 5}, "site_type": "core"}], "page": 1, "pages": 1, "results": 34}' + 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: + - Fri, 17 Jul 2026 10:45:24 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: + - "1840" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" +- request: + body: '{"label":"go-test-vpc-1784285124917082000","region":"us-iad","ipv6":[{"range":"/52"}],"subnets":[{"label":"linodego-vpc-test-1784285124917233000","ipv4":"192.168.0.0/25","ipv6":[{"range":"/62"}]}]}' + 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": 573986, "label": "go-test-vpc-1784285124917082000", "description": + "", "region": "us-iad", "ipv4": [{"range": "10.0.0.0/8"}, {"range": "172.16.0.0/12"}, + {"range": "192.168.0.0/17"}], "ipv6": [{"range": "1234::5678/52"}], "subnets": + [{"id": 804452, "label": "linodego-vpc-test-1784285124917233000", "ipv4": "192.168.0.0/25", + "ipv6": [{"range": "1234::5678/62"}], "linodes": [], "databases": [], + "nodebalancers": [], "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: + - "571" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Fri, 17 Jul 2026 10:45:27 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: + - "15" + 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,"type":"premium_40gb","frontend_vpcs":[{"ipv4_range":"192.168.0.0/25","subnet_id":804452}]}' + 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": 2376526, "label": "go-test-def", "region": "us-iad", "type": "premium_40gb", + "backend_connectivity": "vpc", "hostname":"thisIsYourHostName", "ipv4": "192.168.0.2", "ipv6": + "1234::5678", "frontend_address_type": "vpc", "frontend_vpc_subnet_id": + 804452, "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", + "client_conn_throttle": 20, "client_udp_sess_throttle": 0, "lke_cluster": null, + "tags": [], "locks": [], "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: + - "477" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Fri, 17 Jul 2026 10:45:30 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: + - "1840" + 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/2376526 + 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: + - Fri, 17 Jul 2026 10:45:33 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: + - "1840" + 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/vpcs/573986 + 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: + - Fri, 17 Jul 2026 10:45:33 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: + - "1840" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" diff --git a/test/integration/fixtures/TestVPC_ListAllIPv6Addresses.yaml b/test/integration/fixtures/TestVPC_ListAllIPv6Addresses.yaml index d2f03d162..038edea06 100644 --- a/test/integration/fixtures/TestVPC_ListAllIPv6Addresses.yaml +++ b/test/integration/fixtures/TestVPC_ListAllIPv6Addresses.yaml @@ -14,453 +14,347 @@ interactions: url: https://api.linode.com/v4beta/regions?page=1 method: GET response: - body: '{"data": [{"id": "au-mel", "label": "Melbourne, AU", "country": "au", "capabilities": - ["Linodes", "Block Storage Encryption", "LA Disk Encryption", "Disk Encryption", - "Backups", "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", - "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed - Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts", - "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed - Databases", "NodeBalancers", "Object Storage"], "metrics": ["Managed Databases", - "NodeBalancers", "Object Storage"]}, "status": "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", - "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, "maximum_linodes_per_flexible_pg": 250}, "site_type": "core"}, {"id": "us-lax", - "label": "Los Angeles, CA", "country": "us", "capabilities": ["Linodes", "Block - Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + body: '{"data": [{"id": "nl-ams", "label": "Amsterdam, NL", "country": "nl", "capabilities": + ["Linodes", "Block Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", - "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces", - "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", - "NodeBalancers", "Object Storage"], "metrics": ["Managed Databases", "NodeBalancers", - "Object Storage"]}, "status": "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": + ["Managed Databases"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", "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, "maximum_linodes_per_flexible_pg": 250}, "site_type": "core"}, {"id": "nz-akl-1", - "label": "Auckland, NZ", "country": "nz", "capabilities": ["Linodes", "Disk - Encryption", "Cloud Firewall", "Vlans", "Metadata", "Distributed Plans", "Maintenance - Policy"], "monitors": {"alerts": [], "metrics": []}, "status": "ok", "resolvers": - {"ipv4": "192.0.2.0,192.0.2.0", "ipv6": "1234::5678,1234::5678"}, - "placement_group_limits": {"maximum_pgs_per_customer": 0, "maximum_linodes_per_pg": - 0, "maximum_linodes_per_flexible_pg": 0}, "site_type": "distributed"}, {"id": - "us-den-1", "label": "Denver, CO", "country": "us", "capabilities": ["Linodes", - "Disk Encryption", "Cloud Firewall", "Vlans", "Metadata", "Distributed Plans", - "Maintenance Policy"], "monitors": {"alerts": [], "metrics": []}, "status": - "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0", "ipv6": "1234::5678,1234::5678"}, - "placement_group_limits": {"maximum_pgs_per_customer": 0, "maximum_linodes_per_pg": - 0, "maximum_linodes_per_flexible_pg": 0}, "site_type": "distributed"}, {"id": - "de-ham-1", "label": "Hamburg, DE", "country": "de", "capabilities": ["Linodes", - "Disk Encryption", "Cloud Firewall", "Vlans", "Metadata", "Distributed Plans", - "Maintenance Policy"], "monitors": {"alerts": [], "metrics": []}, "status": - "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0", "ipv6": "1234::5678,1234::5678"}, - "placement_group_limits": {"maximum_pgs_per_customer": 0, "maximum_linodes_per_pg": - 0, "maximum_linodes_per_flexible_pg": 0}, "site_type": "distributed"}, {"id": - "za-jnb-1", "label": "Johannesburg, ZA", "country": "za", "capabilities": ["Linodes", - "Disk Encryption", "Cloud Firewall", "Vlans", "Metadata", "Distributed Plans", - "Maintenance Policy"], "monitors": {"alerts": [], "metrics": []}, "status": - "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0", "ipv6": "1234::5678,1234::5678"}, - "placement_group_limits": {"maximum_pgs_per_customer": 0, "maximum_linodes_per_pg": - 0, "maximum_linodes_per_flexible_pg": 0}, "site_type": "distributed"}, {"id": - "my-kul-1", "label": "Kuala Lumpur, MY", "country": "my", "capabilities": ["Linodes", - "Disk Encryption", "Cloud Firewall", "Vlans", "Metadata", "Distributed Plans", - "Maintenance Policy"], "monitors": {"alerts": [], "metrics": []}, "status": - "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0", "ipv6": "1234::5678,1234::5678"}, - "placement_group_limits": {"maximum_pgs_per_customer": 0, "maximum_linodes_per_pg": - 0, "maximum_linodes_per_flexible_pg": 0}, "site_type": "distributed"}, {"id": - "co-bog-1", "label": "Bogot\u00e1, CO", "country": "co", "capabilities": ["Linodes", - "Disk Encryption", "Cloud Firewall", "Vlans", "Metadata", "Distributed Plans", - "Maintenance Policy"], "monitors": {"alerts": [], "metrics": []}, "status": - "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0", "ipv6": "1234::5678,1234::5678"}, - "placement_group_limits": {"maximum_pgs_per_customer": 0, "maximum_linodes_per_pg": - 0, "maximum_linodes_per_flexible_pg": 0}, "site_type": "distributed"}, {"id": - "mx-qro-1", "label": "Quer\u00e9taro, MX", "country": "mx", "capabilities": - ["Linodes", "Disk Encryption", "Cloud Firewall", "Vlans", "Metadata", "Distributed - Plans", "Maintenance Policy"], "monitors": {"alerts": [], "metrics": []}, "status": - "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0", "ipv6": "1234::5678,1234::5678"}, - "placement_group_limits": {"maximum_pgs_per_customer": 0, "maximum_linodes_per_pg": - 0, "maximum_linodes_per_flexible_pg": 0}, "site_type": "distributed"}, {"id": - "us-hou-1", "label": "Houston, TX", "country": "us", "capabilities": ["Linodes", - "Disk Encryption", "Cloud Firewall", "Vlans", "Metadata", "Distributed Plans", - "Maintenance Policy"], "monitors": {"alerts": [], "metrics": []}, "status": - "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0", "ipv6": "1234::5678,1234::5678"}, - "placement_group_limits": {"maximum_pgs_per_customer": 0, "maximum_linodes_per_pg": - 0, "maximum_linodes_per_flexible_pg": 0}, "site_type": "distributed"}, {"id": - "cl-scl-1", "label": "Santiago, CL", "country": "cl", "capabilities": ["Linodes", - "Disk Encryption", "Cloud Firewall", "Vlans", "Metadata", "Distributed Plans", - "Maintenance Policy"], "monitors": {"alerts": [], "metrics": []}, "status": - "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0", "ipv6": "1234::5678,1234::5678"}, - "placement_group_limits": {"maximum_pgs_per_customer": 0, "maximum_linodes_per_pg": - 0, "maximum_linodes_per_flexible_pg": 0}, "site_type": "distributed"}, {"id": - "gb-lon", "label": "London 2, UK", "country": "gb", "capabilities": ["Linodes", - "Block Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", - "NodeBalancers", "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", - "Kubernetes Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", - "VPC IPv6 Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement - Group", "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces", - "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": ["Linodes", "Managed Databases", - "NodeBalancers", "Object Storage"], "metrics": ["Linodes", "Managed Databases", - "NodeBalancers", "Object Storage"]}, "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", + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "fr-par-2", + "label": "Paris 2, FR", "country": "fr", "capabilities": ["Linodes", "Block + Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", + "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes Enterprise", "Cloud + Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces", "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": + ["Managed Databases"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", "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, "maximum_linodes_per_flexible_pg": 250}, "site_type": "core"}, {"id": "id-cgk", - "label": "Jakarta, ID", "country": "id", "capabilities": ["Linodes", "Block - Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes - Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 - Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", - "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": - ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, - "status": "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + 5, "maximum_linodes_per_flexible_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", + "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes Enterprise", "Cloud + Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces", "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": + ["Managed Databases"], "metrics": ["Managed Databases", "NodeBalancers"]}, "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, "maximum_linodes_per_flexible_pg": 250}, "site_type": "core"}, {"id": "in-bom-2", - "label": "Mumbai 2, IN", "country": "in", "capabilities": ["Linodes", "Block - Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "GPU Linodes", "Kubernetes", "Kubernetes Enterprise", "Cloud + 5, "maximum_linodes_per_flexible_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", "Kubernetes Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": - ["Managed Databases", "NodeBalancers", "Object Storage"], "metrics": ["Managed - Databases", "NodeBalancers", "Object Storage"]}, "status": "ok", "resolvers": - {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + ["Managed Databases"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "172.236.129.8,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", "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, "maximum_linodes_per_flexible_pg": 250}, "site_type": "core"}, {"id": "de-fra-2", + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "de-fra-2", "label": "Frankfurt 2, DE", "country": "de", "capabilities": ["Linodes", "Block - Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes - Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 - Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", - "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces", - "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", - "NodeBalancers", "Object Storage"], "metrics": ["Managed Databases", "NodeBalancers", - "Object Storage"]}, "status": "ok", "resolvers": {"ipv4": "172.236.203.9,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", + "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes Enterprise", "Cloud + Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts", "NETINT Quadra + T1U", "Maintenance Policy", "Linode Interfaces", "ACLP Logs Datacenter LKE-E"], + "monitors": {"alerts": ["Managed Databases"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.236.203.9,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", "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, "maximum_linodes_per_flexible_pg": 250}, "site_type": "core"}, {"id": "sg-sin-2", - "label": "Singapore 2, SG", "country": "sg", "capabilities": ["Linodes", "Block - Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes - Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 - Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", - "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs Datacenter - LKE-E"], "monitors": {"alerts": ["Linodes", "Managed Databases", "NodeBalancers", - "Object Storage"], "metrics": ["Linodes", "Managed Databases", "NodeBalancers", - "Object Storage"]}, "status": "ok", "resolvers": {"ipv4": "172.236.129.8,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + 5, "maximum_linodes_per_flexible_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", + "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes Enterprise", "Cloud + Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces", "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": + ["Managed Databases"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", "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, "maximum_linodes_per_flexible_pg": 250}, "site_type": "core"}, {"id": "jp-tyo-3", - "label": "Tokyo 3, JP", "country": "jp", "capabilities": ["Linodes", "Block - Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes - Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 - Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", - "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs Datacenter - LKE-E"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers", "Object - Storage"], "metrics": ["Managed Databases", "NodeBalancers", "Object Storage"]}, - "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", + 5, "maximum_linodes_per_flexible_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", "VPC Dual + Stack", "VPC IPv6 Stack", "Managed Databases", "Metadata", "Premium Plans", + "Placement Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], + "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed + Databases", "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", "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, "maximum_linodes_per_flexible_pg": 250}, "site_type": "core"}, {"id": "de-ber-1", - "label": "Berlin, DE", "country": "de", "capabilities": ["Linodes", "Disk Encryption", - "Cloud Firewall", "Vlans", "Metadata", "Distributed Plans", "Maintenance Policy"], - "monitors": {"alerts": [], "metrics": []}, "status": "ok", "resolvers": {"ipv4": - "192.0.2.0,192.0.2.0", "ipv6": "1234::5678,1234::5678"}, - "placement_group_limits": {"maximum_pgs_per_customer": 0, "maximum_linodes_per_pg": - 0, "maximum_linodes_per_flexible_pg": 0}, "site_type": "distributed"}, {"id": - "no-osl-1", "label": "Oslo, NO", "country": "no", "capabilities": ["Linodes", - "Block Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block - Storage", "Kubernetes", "Kubernetes Enterprise", "Cloud Firewall", "Vlans", - "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", "Metadata", - "Premium Plans", "Placement Group", "StackScripts", "Maintenance Policy", "Linode - Interfaces", "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": ["Managed - Databases", "NodeBalancers", "Object Storage"], "metrics": ["Managed Databases", - "NodeBalancers", "Object Storage"]}, "status": "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + 5, "maximum_linodes_per_flexible_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", "GPU Linodes", "Kubernetes", "Kubernetes Enterprise", "Cloud + Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts", "NETINT Quadra + T1U", "Maintenance Policy", "Linode Interfaces", "ACLP Logs Datacenter LKE-E"], + "monitors": {"alerts": ["Managed Databases"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "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, "maximum_linodes_per_flexible_pg": 250}, "site_type": "core"}, {"id": "us-iad-2", - "label": "Washington 2, DC", "country": "us", "capabilities": ["Linodes", "Block + 5, "maximum_linodes_per_flexible_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", "Kubernetes Enterprise", "Cloud Firewall", "Vlans", - "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", "Metadata", - "Premium Plans", "Placement Group", "StackScripts", "Maintenance Policy", "Linode - Interfaces"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers", - "Object Storage"], "metrics": ["Managed Databases", "NodeBalancers", "Object - Storage"]}, "status": "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes Enterprise", "Cloud + Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts", "NETINT Quadra + T1U", "Maintenance Policy", "Linode Interfaces", "ACLP Logs Datacenter LKE-E"], + "monitors": {"alerts": ["Managed Databases"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", "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, "maximum_linodes_per_flexible_pg": 250}, "site_type": "core"}, {"id": "fr-par-2", - "label": "Paris 2, FR", "country": "fr", "capabilities": ["Linodes", "Block + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "id-cgk", + "label": "Jakarta, ID", "country": "id", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", - "GPU Linodes", "Kubernetes", "Kubernetes Enterprise", "Cloud Firewall", "Vlans", - "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", "Metadata", - "Premium Plans", "Placement Group", "StackScripts", "Maintenance Policy", "Linode - Interfaces", "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": ["Managed - Databases", "NodeBalancers", "Object Storage"], "metrics": ["Managed Databases", - "NodeBalancers", "Object Storage"]}, "status": "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes Enterprise", "Cloud + Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases"], + "metrics": ["Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": + {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", "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, "maximum_linodes_per_flexible_pg": 250}, "site_type": "core"}, {"id": "co-bog-2", - "label": "Bogot\u00e1 2, CO", "country": "co", "capabilities": ["Linodes", "Disk - Encryption", "Cloud Firewall", "Vlans", "Metadata", "Distributed Plans", "Maintenance - Policy"], "monitors": {"alerts": [], "metrics": []}, "status": "ok", "resolvers": - {"ipv4": "192.0.2.0,192.0.2.0", "ipv6": "1234::5678,1234::5678"}, - "placement_group_limits": {"maximum_pgs_per_customer": 0, "maximum_linodes_per_pg": - 0, "maximum_linodes_per_flexible_pg": 0}, "site_type": "distributed"}, {"id": - "fr-mrs-2", "label": "Marseille 2, FR", "country": "fr", "capabilities": ["Linodes", - "Disk Encryption", "Cloud Firewall", "Vlans", "Metadata", "Distributed Plans", - "Maintenance Policy"], "monitors": {"alerts": [], "metrics": []}, "status": - "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0", "ipv6": "1234::5678,1234::5678"}, - "placement_group_limits": {"maximum_pgs_per_customer": 0, "maximum_linodes_per_pg": - 0, "maximum_linodes_per_flexible_pg": 0}, "site_type": "distributed"}, {"id": - "us-mia", "label": "Miami, FL", "country": "us", "capabilities": ["Linodes", - "Block Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", - "NodeBalancers", "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", - "Kubernetes Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", - "VPC IPv6 Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement - Group", "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces"], - "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed - Databases", "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + 5, "maximum_linodes_per_flexible_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", "GPU Linodes", "Kubernetes", "Kubernetes Enterprise", "Cloud + Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts", "NETINT Quadra + T1U", "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed + Databases"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": "ok", + "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", "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, "maximum_linodes_per_flexible_pg": 250}, "site_type": "core"}, {"id": "ap-west", - "label": "Mumbai, IN", "country": "in", "capabilities": ["Linodes", "Block Storage - Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", - "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance - Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", - "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "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", + 5, "maximum_linodes_per_flexible_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", "GPU Linodes", "Kubernetes", "Kubernetes Enterprise", "Cloud + Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases"], + "metrics": ["Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": + {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", "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, "maximum_linodes_per_flexible_pg": 250}, "site_type": "core"}, {"id": "ca-central", - "label": "Toronto, CA", "country": "ca", "capabilities": ["Linodes", "Block - Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "Block - Storage Migrations", "Managed Databases", "Metadata", "Placement Group", "StackScripts", - "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed - Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, - "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", + 5, "maximum_linodes_per_flexible_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", "Kubernetes Enterprise", "Cloud + Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases"], + "metrics": ["Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": + {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", "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, "maximum_linodes_per_flexible_pg": 250}, "site_type": "core"}, {"id": "ap-southeast", - "label": "Sydney, AU", "country": "au", "capabilities": ["Linodes", "Block Storage - Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", - "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance - Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", - "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "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", + 5, "maximum_linodes_per_flexible_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", "GPU Linodes", "Kubernetes", "Kubernetes Enterprise", "Cloud + Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts", "NETINT Quadra + T1U", "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed + Databases"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": "ok", + "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", "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, "maximum_linodes_per_flexible_pg": 250}, "site_type": "core"}, {"id": "us-iad", - "label": "Washington, DC", "country": "us", "capabilities": ["Linodes", "Block - Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "Object Storage", "Kubernetes", "Kubernetes Enterprise", "Cloud + 5, "maximum_linodes_per_flexible_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", "GPU Linodes", "Kubernetes", "Kubernetes Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts", "Maintenance - Policy", "Linode Interfaces", "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": - ["Linodes", "Managed Databases", "NodeBalancers", "Object Storage"], "metrics": - ["Linodes", "Managed Databases", "NodeBalancers", "Object Storage"]}, "status": - "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases"], + "metrics": ["Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": + {"ipv4": "172.233.111.6,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,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, "maximum_linodes_per_flexible_pg": 250}, "site_type": "core"}, {"id": "us-ord", - "label": "Chicago, IL", "country": "us", "capabilities": ["Linodes", "Block - Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes - Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 - Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", - "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs Datacenter - LKE-E"], "monitors": {"alerts": ["Linodes", "Managed Databases", "NodeBalancers", - "Object Storage"], "metrics": ["Linodes", "Managed Databases", "NodeBalancers", - "Object Storage"]}, "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", + 5, "maximum_linodes_per_flexible_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", "GPU Linodes", "Kubernetes", "Kubernetes Enterprise", "Cloud + Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases"], + "metrics": ["Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": + {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", "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, "maximum_linodes_per_flexible_pg": 250}, "site_type": "core"}, {"id": "fr-par", - "label": "Paris, FR", "country": "fr", "capabilities": ["Linodes", "Block Storage - Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes - Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 - Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", - "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": - ["Managed Databases", "NodeBalancers", "Object Storage"], "metrics": ["Managed - Databases", "NodeBalancers", "Object Storage"]}, "status": "ok", "resolvers": - {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + 5, "maximum_linodes_per_flexible_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", "Kubernetes Enterprise", "Cloud Firewall", "Vlans", + "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", "Metadata", + "Premium Plans", "Placement Group", "StackScripts", "Maintenance Policy", "Linode + Interfaces"], "monitors": {"alerts": ["Managed Databases"], "metrics": ["Managed + Databases", "NodeBalancers"]}, "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, "maximum_linodes_per_flexible_pg": 250}, "site_type": "core"}, {"id": "us-sea", + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-sea", "label": "Seattle, WA", "country": "us", "capabilities": ["Linodes", "Block - Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes - Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 - Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", - "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs Datacenter - LKE-E"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers", "Object - Storage"], "metrics": ["Managed Databases", "NodeBalancers", "Object Storage"]}, - "status": "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,172.232.160.8,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", + "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes Enterprise", "Cloud + Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces", "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": + ["Managed Databases"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,172.232.160.8,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", "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, "maximum_linodes_per_flexible_pg": 250}, "site_type": "core"}, {"id": "br-gru", - "label": "Sao Paulo, BR", "country": "br", "capabilities": ["Linodes", "Block - Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "Object Storage", "Kubernetes", "Kubernetes Enterprise", "Cloud + 5, "maximum_linodes_per_flexible_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", "Kubernetes Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts", "Maintenance - Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", - "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "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", + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases"], + "metrics": ["Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": + {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", "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, "maximum_linodes_per_flexible_pg": 250}, "site_type": "core"}, {"id": "nl-ams", - "label": "Amsterdam, NL", "country": "nl", "capabilities": ["Linodes", "Block - Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes - Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 - Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", - "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": - ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, - "status": "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + 5, "maximum_linodes_per_flexible_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", "Kubernetes Enterprise", "Cloud + Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces", "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": + ["Managed Databases"], "metrics": ["Managed Databases", "NodeBalancers"]}, "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, "maximum_linodes_per_flexible_pg": 250}, "site_type": "core"}, {"id": "se-sto", - "label": "Stockholm, SE", "country": "se", "capabilities": ["Linodes", "Block - Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes - Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 - Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", - "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": - ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + 5, "maximum_linodes_per_flexible_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", "Kubernetes Enterprise", "Cloud Firewall", "Vlans", + "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", "Metadata", + "Premium Plans", "Placement Group", "StackScripts", "Maintenance Policy", "Linode + Interfaces", "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": ["Managed + Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", "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, "maximum_linodes_per_flexible_pg": 250}, "site_type": "core"}, {"id": "es-mad", - "label": "Madrid, ES", "country": "es", "capabilities": ["Linodes", "Block Storage - Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "Object Storage", "Kubernetes", "Kubernetes Enterprise", "Cloud - Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", - "Metadata", "Premium Plans", "Placement Group", "StackScripts", "Maintenance - Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", - "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": - "ok", "resolvers": {"ipv4": "172.233.111.6,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,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, "maximum_linodes_per_flexible_pg": 250}, "site_type": "core"}, {"id": "in-maa", - "label": "Chennai, IN", "country": "in", "capabilities": ["Linodes", "Block - Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes - Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 - Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", - "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces"], - "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed - Databases", "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ap-southeast", + "label": "Sydney, AU", "country": "au", "capabilities": ["Linodes", "Block Storage + Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", + "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", "Managed + Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance Policy", + "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], + "metrics": ["Managed Databases", "NodeBalancers"]}, "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, "maximum_linodes_per_flexible_pg": 250}, "site_type": "core"}, {"id": "jp-osa", - "label": "Osaka, JP", "country": "jp", "capabilities": ["Linodes", "Block Storage - Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes - Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 - Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", - "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": - ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, - "status": "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ca-central", + "label": "Toronto, CA", "country": "ca", "capabilities": ["Linodes", "Block + Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", + "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases"], + "metrics": ["Managed Databases", "NodeBalancers"]}, "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, "maximum_linodes_per_flexible_pg": 250}, "site_type": "core"}, {"id": "it-mil", - "label": "Milan, IT", "country": "it", "capabilities": ["Linodes", "Block Storage - Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "Object Storage", "Kubernetes", "Kubernetes Enterprise", "Cloud - Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", - "Metadata", "Premium Plans", "Placement Group", "StackScripts", "Maintenance - Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", - "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": - "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ap-west", + "label": "Mumbai, IN", "country": "in", "capabilities": ["Linodes", "Block Storage + Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", + "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases"], + "metrics": ["Managed Databases", "NodeBalancers"]}, "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, "maximum_linodes_per_flexible_pg": 250}, "site_type": "core"}, {"id": "us-central", + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-central", "label": "Dallas, TX", "country": "us", "capabilities": ["Linodes", "Block Storage - Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", - "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance - Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", - "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "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", + Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", + "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", "Managed + Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance Policy", + "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases"], "metrics": + ["Managed Databases", "NodeBalancers"]}, "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, "maximum_linodes_per_flexible_pg": 250}, "site_type": "core"}, {"id": "ap-northeast", + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ap-northeast", "label": "Tokyo 2, JP", "country": "jp", "capabilities": ["Linodes", "Block - Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", - "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance - Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", - "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "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", + Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", + "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", "Managed + Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance Policy", + "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases"], "metrics": + ["Managed Databases", "NodeBalancers"]}, "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, "maximum_linodes_per_flexible_pg": 250}, "site_type": "core"}, {"id": "eu-central", + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "eu-central", "label": "Frankfurt, DE", "country": "de", "capabilities": ["Linodes", "Block - Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", - "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata", "Placement - Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": - {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", - "NodeBalancers"]}, "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", + Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", + "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "Block + Storage Migrations", "Managed Databases", "Metadata", "Placement Group", "StackScripts", + "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed + Databases"], "metrics": ["Managed Databases", "NodeBalancers"]}, "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, "maximum_linodes_per_flexible_pg": 250}, "site_type": "core"}, {"id": "ap-south", + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ap-south", "label": "Singapore, SG", "country": "sg", "capabilities": ["Linodes", "Block - Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", - "Vlans", "Block Storage Migrations", "Metadata", "Placement Group", "StackScripts", - "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": ["NodeBalancers"], - "metrics": ["NodeBalancers"]}, "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", + Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", + "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "Block + Storage Migrations", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": [], "metrics": ["NodeBalancers"]}, + "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, "maximum_linodes_per_flexible_pg": 250}, "site_type": "core"}, {"id": "eu-west", + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "eu-west", "label": "London, UK", "country": "gb", "capabilities": ["Linodes", "Block Storage - Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", - "Metadata", "Placement Group", "StackScripts", "Maintenance Policy", "Linode - Interfaces"], "monitors": {"alerts": ["NodeBalancers"], "metrics": ["NodeBalancers"]}, - "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, 192.0.2.0, 192.0.2.0, - 192.0.2.0", "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, "maximum_linodes_per_flexible_pg": 250}, "site_type": "core"}, {"id": "us-east", - "label": "Newark, NJ", "country": "us", "capabilities": ["Linodes", "Block Storage - Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", - "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata", "Placement - Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": - {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", - "NodeBalancers"]}, "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", + Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", + "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", "Metadata", + "Placement Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], + "monitors": {"alerts": [], "metrics": ["NodeBalancers"]}, "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, 192.0.2.0, 192.0.2.0, 192.0.2.0", "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, "maximum_linodes_per_flexible_pg": + 5}, "site_type": "core"}, {"id": "us-east", "label": "Newark, NJ", "country": + "us", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "Object Storage", "GPU Linodes", + "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", "Managed + Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance Policy", + "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases"], "metrics": + ["Managed Databases", "NodeBalancers"]}, "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, "maximum_linodes_per_flexible_pg": 250}, "site_type": "core"}, {"id": "us-southeast", + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-southeast", "label": "Atlanta, GA", "country": "us", "capabilities": ["Linodes", "Block - Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", - "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata", "Placement - Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": - {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", - "NodeBalancers"]}, "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", + Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", + "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "Block + Storage Migrations", "Managed Databases", "Metadata", "Placement Group", "StackScripts", + "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed + Databases"], "metrics": ["Managed Databases", "NodeBalancers"]}, "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, "maximum_linodes_per_flexible_pg": 250}, "site_type": "core"}, {"id": "us-west", + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-west", "label": "Fremont, CA", "country": "us", "capabilities": ["Linodes", "Block - Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", - "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance - Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", - "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "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": + Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", + "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", "Managed + Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance Policy", + "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases"], "metrics": + ["Managed Databases", "NodeBalancers"]}, "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, "maximum_linodes_per_flexible_pg": - 250}, "site_type": "core"}], "page": 1, "pages": 1, "results": 46}' + 5}, "site_type": "core"}], "page": 1, "pages": 1, "results": 32}' headers: Access-Control-Allow-Credentials: - "true" @@ -483,7 +377,7 @@ interactions: Content-Type: - application/json Expires: - - Tue, 28 Jul 2026 16:41:39 GMT + - Wed, 18 Mar 2026 11:46:42 GMT Pragma: - no-cache Strict-Transport-Security: @@ -509,7 +403,7 @@ interactions: code: 200 duration: "" - request: - body: '{"region":"no-osl-1","type":"g6-nanode-1","label":"go-test-ins-wo-disk-9ihk75cw3a67","firewall_id":92695693,"booted":false}' + body: '{"region":"nl-ams","type":"g6-nanode-1","label":"go-test-ins-wo-disk-9lj3w8s7wx08","firewall_id":3985754,"booted":false}' form: {} headers: Accept: @@ -521,19 +415,19 @@ interactions: url: https://api.linode.com/v4beta/linode/instances method: POST response: - body: '{"id": 101623958, "label": "go-test-ins-wo-disk-9ihk75cw3a67", "group": + body: '{"id": 94367231, "label": "go-test-ins-wo-disk-9lj3w8s7wx08", "group": "", "status": "provisioning", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", - "type": "g6-nanode-1", "ipv4": ["172.238.141.7"], "ipv6": "1234::5678/128", - "image": null, "region": "no-osl-1", "site_type": "core", "specs": {"disk": - 25600, "memory": 1024, "vcpus": 1, "gpus": 0, "transfer": 1000, "accelerated_devices": + "type": "g6-nanode-1", "ipv4": ["192.0.2.0"], "ipv6": "1234::5678/128", + "image": null, "region": "nl-ams", "site_type": "core", "specs": {"disk": 25600, + "memory": 1024, "vcpus": 1, "gpus": 0, "transfer": 1000, "accelerated_devices": 0}, "alerts": {"cpu": 90, "network_in": 10, "network_out": 10, "transfer_quota": - 80, "io": 10000, "system_alerts": [], "user_alerts": []}, "backups": {"enabled": - true, "available": false, "schedule": {"day": null, "window": null}, "last_successful": - null}, "hypervisor": "kvm", "watchdog_enabled": true, "tags": [], "host_uuid": - "4fb425e782ad9fd5cfe05a259d1f5c1e0ce15f27", "has_user_data": false, "placement_group": - null, "disk_encryption": "enabled", "lke_cluster_id": null, "capabilities": - ["Block Storage Encryption", "SMTP Enabled", "Maintenance Policy"], "interface_generation": - "legacy_config", "maintenance_policy": "linode/migrate", "locks": []}' + 80, "io": 10000}, "backups": {"enabled": false, "available": false, "schedule": + {"day": null, "window": null}, "last_successful": null}, "hypervisor": "kvm", + "watchdog_enabled": true, "tags": [], "host_uuid": "2321d3f5429c39b5b4372add49ec9d4d4dff1c11", + "has_user_data": false, "placement_group": null, "disk_encryption": "enabled", + "lke_cluster_id": null, "capabilities": ["Block Storage Encryption", "Maintenance + Policy"], "interface_generation": "legacy_config", "maintenance_policy": "linode/migrate", + "locks": []}' headers: Access-Control-Allow-Credentials: - "true" @@ -556,7 +450,7 @@ interactions: Content-Type: - application/json Expires: - - Tue, 28 Jul 2026 16:41:40 GMT + - Wed, 18 Mar 2026 11:46:42 GMT Pragma: - no-cache Strict-Transport-Security: @@ -581,7 +475,7 @@ interactions: code: 200 duration: "" - request: - body: '{"label":"go-test-conf-nl1n393qkp39","devices":{},"interfaces":null}' + body: '{"label":"go-test-conf-ze715lrsu086","devices":{},"interfaces":null}' form: {} headers: Accept: @@ -590,11 +484,11 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/linode/instances/101623958/configs + url: https://api.linode.com/v4beta/linode/instances/94367231/configs method: POST response: - body: '{"id": 105049340, "label": "go-test-conf-nl1n393qkp39", "helpers": {"updatedb_disabled": - true, "distro": true, "modules_dep": true, "network": false, "devtmpfs_automount": + body: '{"id": 97854707, "label": "go-test-conf-ze715lrsu086", "helpers": {"updatedb_disabled": + true, "distro": true, "modules_dep": true, "network": true, "devtmpfs_automount": true}, "kernel": "linode/latest-64bit", "comments": "", "memory_limit": 0, "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "root_device": "/dev/sda", "devices": {"sda": null, "sdb": null, "sdc": null, "sdd": null, "sde": null, @@ -618,13 +512,13 @@ interactions: Connection: - keep-alive Content-Length: - - "541" + - "539" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Tue, 28 Jul 2026 16:41:40 GMT + - Wed, 18 Mar 2026 11:46:43 GMT Pragma: - no-cache Strict-Transport-Security: @@ -648,7 +542,7 @@ interactions: code: 200 duration: "" - request: - body: '{"label":"go-test-vpc-1785256901032570000","region":"no-osl-1","ipv6":[{"range":"/52"}],"subnets":[{"label":"linodego-vpc-test-1785256901032878000","ipv4":"192.168.0.0/25","ipv6":[{"range":"/62"}]}]}' + body: '{"label":"go-test-vpc-1773834403195792000","region":"nl-ams","ipv6":[{"range":"/52"}],"subnets":[{"label":"linodego-vpc-test-1773834403196144000","ipv4":"192.168.0.0/25","ipv6":[{"range":"/62"}]}]}' form: {} headers: Accept: @@ -660,14 +554,12 @@ interactions: url: https://api.linode.com/v4beta/vpcs method: POST response: - body: '{"id": 583192, "label": "go-test-vpc-1785256901032570000", "description": - "", "region": "no-osl-1", "ipv4": [{"range": "10.0.0.0/8"}, {"range": "172.16.0.0/12"}, - {"range": "192.168.0.0/17"}], "ipv6": [{"range": "1234::5678/52"}], "subnets": - [{"id": 818352, "label": "linodego-vpc-test-1785256901032878000", "ipv4": "192.168.0.0/25", + body: '{"id": 414382, "label": "go-test-vpc-1773834403195792000", "description": + "", "region": "nl-ams", "ipv6": [{"range": "1234::5678/52"}], "subnets": + [{"id": 508121, "label": "linodego-vpc-test-1773834403196144000", "ipv4": "192.168.0.0/25", "ipv6": [{"range": "1234::5678/62"}], "linodes": [], "databases": [], - "nodebalancers": [], "vpc_type": "regular", "created": "2018-01-02T03:04:05", - "updated": "2018-01-02T03:04:05"}], "vpc_type": "regular", "created": "2018-01-02T03:04:05", - "updated": "2018-01-02T03:04:05"}' + "nodebalancers": [], "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" @@ -686,13 +578,13 @@ interactions: Connection: - keep-alive Content-Length: - - "619" + - "479" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Tue, 28 Jul 2026 16:41:44 GMT + - Wed, 18 Mar 2026 11:46:45 GMT Pragma: - no-cache Strict-Transport-Security: @@ -709,14 +601,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "15" + - "1840" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"label":"go-test-conf-nl1n393qkp39","comments":"","devices":{},"helpers":{"updatedb_disabled":true,"distro":true,"modules_dep":true,"network":false,"devtmpfs_automount":true},"interfaces":[{"purpose":"vpc","subnet_id":818352,"ipv4":{"nat_1_1":"any"},"ipv6":{"slaac":[{"range":"/64"}],"is_public":true}}],"memory_limit":0,"kernel":"linode/latest-64bit","init_rd":null,"root_device":"/dev/sda","run_level":"default","virt_mode":"paravirt"}' + body: '{"label":"go-test-conf-ze715lrsu086","comments":"","devices":{},"helpers":{"updatedb_disabled":true,"distro":true,"modules_dep":true,"network":true,"devtmpfs_automount":true},"interfaces":[{"purpose":"vpc","subnet_id":508121,"ipv4":{"nat_1_1":"any"},"ipv6":{"slaac":[{"range":"/64"}],"is_public":true}}],"memory_limit":0,"kernel":"linode/latest-64bit","init_rd":null,"root_device":"/dev/sda","run_level":"default","virt_mode":"paravirt"}' form: {} headers: Accept: @@ -725,18 +617,18 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/linode/instances/101623958/configs/105049340 + url: https://api.linode.com/v4beta/linode/instances/94367231/configs/97854707 method: PUT response: - body: '{"id": 105049340, "label": "go-test-conf-nl1n393qkp39", "helpers": {"updatedb_disabled": - true, "distro": true, "modules_dep": true, "network": false, "devtmpfs_automount": + body: '{"id": 97854707, "label": "go-test-conf-ze715lrsu086", "helpers": {"updatedb_disabled": + true, "distro": true, "modules_dep": true, "network": true, "devtmpfs_automount": true}, "kernel": "linode/latest-64bit", "comments": "", "memory_limit": 0, "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "root_device": "/dev/sda", "devices": {"sda": null, "sdb": null, "sdc": null, "sdd": null, "sde": null, "sdf": null, "sdg": null, "sdh": null}, "initrd": null, "run_level": "default", - "virt_mode": "paravirt", "interfaces": [{"id": 13956696, "purpose": "vpc", "primary": - false, "active": false, "ipam_address": null, "label": null, "vpc_id": 583192, - "subnet_id": 818352, "ipv4": {"vpc": "192.168.0.2", "nat_1_1": "172.238.141.7"}, + "virt_mode": "paravirt", "interfaces": [{"id": 11276770, "purpose": "vpc", "primary": + false, "active": false, "ipam_address": null, "label": null, "vpc_id": 414382, + "subnet_id": 508121, "ipv4": {"vpc": "192.168.0.2", "nat_1_1": "192.0.2.0"}, "ip_ranges": [], "ipv6": {"slaac": [{"range": "1234::5678/64", "address": "1234::5678"}], "ranges": [], "is_public": true}}]}' headers: @@ -761,7 +653,7 @@ interactions: Content-Type: - application/json Expires: - - Tue, 28 Jul 2026 16:41:44 GMT + - Wed, 18 Mar 2026 11:46:46 GMT Pragma: - no-cache Strict-Transport-Security: @@ -796,17 +688,16 @@ interactions: User-Agent: - linodego/dev https://github.com/linode/linodego X-Filter: - - '{"linode_id": 101623958}' + - '{"linode_id": 94367231}' url: https://api.linode.com/v4beta/vpcs/ipv6s?page=1 method: GET response: - body: '{"data": [{"address": null, "address_range": null, "vpc_id": 583192, "subnet_id": - 818352, "region": "no-osl-1", "linode_id": 101623958, "config_id": 105049340, - "interface_id": 13956696, "nodebalancer_id": null, "database_id": null, "active": - false, "nat_1_1": "", "gateway": null, "prefix": 64, "subnet_mask": "", "ipv6_range": - "1234::5678/64", "ipv6_is_public": true, "ipv6_addresses": [{"slaac_address": - "1234::5678"}]}], "page": 1, "pages": 1, "results": - 1}' + body: '{"data": [{"address": null, "address_range": null, "vpc_id": 414382, "subnet_id": + 508121, "region": "nl-ams", "linode_id": 94367231, "config_id": 97854707, "interface_id": + 11276770, "nodebalancer_id": null, "database_id": null, "active": false, "nat_1_1": + "", "gateway": null, "prefix": 64, "subnet_mask": "", "ipv6_range": "1234::5678/64", + "ipv6_is_public": true, "ipv6_addresses": [{"slaac_address": "1234::5678"}]}], + "page": 1, "pages": 1, "results": 1}' headers: Access-Control-Allow-Credentials: - "true" @@ -825,13 +716,13 @@ interactions: Connection: - keep-alive Content-Length: - - "494" + - "490" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Tue, 28 Jul 2026 16:41:44 GMT + - Wed, 18 Mar 2026 11:46:46 GMT Pragma: - no-cache Strict-Transport-Security: @@ -865,7 +756,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/linode/instances/101623958 + url: https://api.linode.com/v4beta/linode/instances/94367231 method: DELETE response: body: '{}' @@ -893,7 +784,7 @@ interactions: Content-Type: - application/json Expires: - - Tue, 28 Jul 2026 16:41:45 GMT + - Wed, 18 Mar 2026 11:46:47 GMT Pragma: - no-cache Strict-Transport-Security: @@ -926,7 +817,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/vpcs/583192 + url: https://api.linode.com/v4beta/vpcs/414382 method: DELETE response: body: '{}' @@ -954,7 +845,7 @@ interactions: Content-Type: - application/json Expires: - - Tue, 28 Jul 2026 16:41:45 GMT + - Wed, 18 Mar 2026 11:46:47 GMT Pragma: - no-cache Strict-Transport-Security: diff --git a/test/integration/fixtures/TestVPC_ListIPv6Addresses.yaml b/test/integration/fixtures/TestVPC_ListIPv6Addresses.yaml index c61559dc4..8fefbc480 100644 --- a/test/integration/fixtures/TestVPC_ListIPv6Addresses.yaml +++ b/test/integration/fixtures/TestVPC_ListIPv6Addresses.yaml @@ -14,453 +14,347 @@ interactions: url: https://api.linode.com/v4beta/regions?page=1 method: GET response: - body: '{"data": [{"id": "au-mel", "label": "Melbourne, AU", "country": "au", "capabilities": - ["Linodes", "Block Storage Encryption", "LA Disk Encryption", "Disk Encryption", - "Backups", "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", - "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed - Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts", - "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed - Databases", "NodeBalancers", "Object Storage"], "metrics": ["Managed Databases", - "NodeBalancers", "Object Storage"]}, "status": "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", - "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, "maximum_linodes_per_flexible_pg": 250}, "site_type": "core"}, {"id": "us-lax", - "label": "Los Angeles, CA", "country": "us", "capabilities": ["Linodes", "Block - Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + body: '{"data": [{"id": "nl-ams", "label": "Amsterdam, NL", "country": "nl", "capabilities": + ["Linodes", "Block Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", - "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces", - "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", - "NodeBalancers", "Object Storage"], "metrics": ["Managed Databases", "NodeBalancers", - "Object Storage"]}, "status": "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": + ["Managed Databases"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", "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, "maximum_linodes_per_flexible_pg": 250}, "site_type": "core"}, {"id": "nz-akl-1", - "label": "Auckland, NZ", "country": "nz", "capabilities": ["Linodes", "Disk - Encryption", "Cloud Firewall", "Vlans", "Metadata", "Distributed Plans", "Maintenance - Policy"], "monitors": {"alerts": [], "metrics": []}, "status": "ok", "resolvers": - {"ipv4": "192.0.2.0,192.0.2.0", "ipv6": "1234::5678,1234::5678"}, - "placement_group_limits": {"maximum_pgs_per_customer": 0, "maximum_linodes_per_pg": - 0, "maximum_linodes_per_flexible_pg": 0}, "site_type": "distributed"}, {"id": - "us-den-1", "label": "Denver, CO", "country": "us", "capabilities": ["Linodes", - "Disk Encryption", "Cloud Firewall", "Vlans", "Metadata", "Distributed Plans", - "Maintenance Policy"], "monitors": {"alerts": [], "metrics": []}, "status": - "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0", "ipv6": "1234::5678,1234::5678"}, - "placement_group_limits": {"maximum_pgs_per_customer": 0, "maximum_linodes_per_pg": - 0, "maximum_linodes_per_flexible_pg": 0}, "site_type": "distributed"}, {"id": - "de-ham-1", "label": "Hamburg, DE", "country": "de", "capabilities": ["Linodes", - "Disk Encryption", "Cloud Firewall", "Vlans", "Metadata", "Distributed Plans", - "Maintenance Policy"], "monitors": {"alerts": [], "metrics": []}, "status": - "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0", "ipv6": "1234::5678,1234::5678"}, - "placement_group_limits": {"maximum_pgs_per_customer": 0, "maximum_linodes_per_pg": - 0, "maximum_linodes_per_flexible_pg": 0}, "site_type": "distributed"}, {"id": - "za-jnb-1", "label": "Johannesburg, ZA", "country": "za", "capabilities": ["Linodes", - "Disk Encryption", "Cloud Firewall", "Vlans", "Metadata", "Distributed Plans", - "Maintenance Policy"], "monitors": {"alerts": [], "metrics": []}, "status": - "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0", "ipv6": "1234::5678,1234::5678"}, - "placement_group_limits": {"maximum_pgs_per_customer": 0, "maximum_linodes_per_pg": - 0, "maximum_linodes_per_flexible_pg": 0}, "site_type": "distributed"}, {"id": - "my-kul-1", "label": "Kuala Lumpur, MY", "country": "my", "capabilities": ["Linodes", - "Disk Encryption", "Cloud Firewall", "Vlans", "Metadata", "Distributed Plans", - "Maintenance Policy"], "monitors": {"alerts": [], "metrics": []}, "status": - "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0", "ipv6": "1234::5678,1234::5678"}, - "placement_group_limits": {"maximum_pgs_per_customer": 0, "maximum_linodes_per_pg": - 0, "maximum_linodes_per_flexible_pg": 0}, "site_type": "distributed"}, {"id": - "co-bog-1", "label": "Bogot\u00e1, CO", "country": "co", "capabilities": ["Linodes", - "Disk Encryption", "Cloud Firewall", "Vlans", "Metadata", "Distributed Plans", - "Maintenance Policy"], "monitors": {"alerts": [], "metrics": []}, "status": - "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0", "ipv6": "1234::5678,1234::5678"}, - "placement_group_limits": {"maximum_pgs_per_customer": 0, "maximum_linodes_per_pg": - 0, "maximum_linodes_per_flexible_pg": 0}, "site_type": "distributed"}, {"id": - "mx-qro-1", "label": "Quer\u00e9taro, MX", "country": "mx", "capabilities": - ["Linodes", "Disk Encryption", "Cloud Firewall", "Vlans", "Metadata", "Distributed - Plans", "Maintenance Policy"], "monitors": {"alerts": [], "metrics": []}, "status": - "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0", "ipv6": "1234::5678,1234::5678"}, - "placement_group_limits": {"maximum_pgs_per_customer": 0, "maximum_linodes_per_pg": - 0, "maximum_linodes_per_flexible_pg": 0}, "site_type": "distributed"}, {"id": - "us-hou-1", "label": "Houston, TX", "country": "us", "capabilities": ["Linodes", - "Disk Encryption", "Cloud Firewall", "Vlans", "Metadata", "Distributed Plans", - "Maintenance Policy"], "monitors": {"alerts": [], "metrics": []}, "status": - "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0", "ipv6": "1234::5678,1234::5678"}, - "placement_group_limits": {"maximum_pgs_per_customer": 0, "maximum_linodes_per_pg": - 0, "maximum_linodes_per_flexible_pg": 0}, "site_type": "distributed"}, {"id": - "cl-scl-1", "label": "Santiago, CL", "country": "cl", "capabilities": ["Linodes", - "Disk Encryption", "Cloud Firewall", "Vlans", "Metadata", "Distributed Plans", - "Maintenance Policy"], "monitors": {"alerts": [], "metrics": []}, "status": - "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0", "ipv6": "1234::5678,1234::5678"}, - "placement_group_limits": {"maximum_pgs_per_customer": 0, "maximum_linodes_per_pg": - 0, "maximum_linodes_per_flexible_pg": 0}, "site_type": "distributed"}, {"id": - "gb-lon", "label": "London 2, UK", "country": "gb", "capabilities": ["Linodes", - "Block Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", - "NodeBalancers", "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", - "Kubernetes Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", - "VPC IPv6 Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement - Group", "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces", - "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": ["Linodes", "Managed Databases", - "NodeBalancers", "Object Storage"], "metrics": ["Linodes", "Managed Databases", - "NodeBalancers", "Object Storage"]}, "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", + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "fr-par-2", + "label": "Paris 2, FR", "country": "fr", "capabilities": ["Linodes", "Block + Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", + "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes Enterprise", "Cloud + Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces", "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": + ["Managed Databases"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", "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, "maximum_linodes_per_flexible_pg": 250}, "site_type": "core"}, {"id": "id-cgk", - "label": "Jakarta, ID", "country": "id", "capabilities": ["Linodes", "Block - Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes - Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 - Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", - "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": - ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, - "status": "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + 5, "maximum_linodes_per_flexible_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", + "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes Enterprise", "Cloud + Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces", "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": + ["Managed Databases"], "metrics": ["Managed Databases", "NodeBalancers"]}, "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, "maximum_linodes_per_flexible_pg": 250}, "site_type": "core"}, {"id": "in-bom-2", - "label": "Mumbai 2, IN", "country": "in", "capabilities": ["Linodes", "Block - Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "GPU Linodes", "Kubernetes", "Kubernetes Enterprise", "Cloud + 5, "maximum_linodes_per_flexible_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", "Kubernetes Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": - ["Managed Databases", "NodeBalancers", "Object Storage"], "metrics": ["Managed - Databases", "NodeBalancers", "Object Storage"]}, "status": "ok", "resolvers": - {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + ["Managed Databases"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "172.236.129.8,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", "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, "maximum_linodes_per_flexible_pg": 250}, "site_type": "core"}, {"id": "de-fra-2", + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "de-fra-2", "label": "Frankfurt 2, DE", "country": "de", "capabilities": ["Linodes", "Block - Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes - Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 - Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", - "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces", - "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", - "NodeBalancers", "Object Storage"], "metrics": ["Managed Databases", "NodeBalancers", - "Object Storage"]}, "status": "ok", "resolvers": {"ipv4": "172.236.203.9,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", + "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes Enterprise", "Cloud + Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts", "NETINT Quadra + T1U", "Maintenance Policy", "Linode Interfaces", "ACLP Logs Datacenter LKE-E"], + "monitors": {"alerts": ["Managed Databases"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.236.203.9,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", "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, "maximum_linodes_per_flexible_pg": 250}, "site_type": "core"}, {"id": "sg-sin-2", - "label": "Singapore 2, SG", "country": "sg", "capabilities": ["Linodes", "Block - Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes - Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 - Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", - "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs Datacenter - LKE-E"], "monitors": {"alerts": ["Linodes", "Managed Databases", "NodeBalancers", - "Object Storage"], "metrics": ["Linodes", "Managed Databases", "NodeBalancers", - "Object Storage"]}, "status": "ok", "resolvers": {"ipv4": "172.236.129.8,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + 5, "maximum_linodes_per_flexible_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", + "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes Enterprise", "Cloud + Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces", "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": + ["Managed Databases"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", "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, "maximum_linodes_per_flexible_pg": 250}, "site_type": "core"}, {"id": "jp-tyo-3", - "label": "Tokyo 3, JP", "country": "jp", "capabilities": ["Linodes", "Block - Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes - Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 - Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", - "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs Datacenter - LKE-E"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers", "Object - Storage"], "metrics": ["Managed Databases", "NodeBalancers", "Object Storage"]}, - "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", + 5, "maximum_linodes_per_flexible_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", "VPC Dual + Stack", "VPC IPv6 Stack", "Managed Databases", "Metadata", "Premium Plans", + "Placement Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], + "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed + Databases", "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", "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, "maximum_linodes_per_flexible_pg": 250}, "site_type": "core"}, {"id": "de-ber-1", - "label": "Berlin, DE", "country": "de", "capabilities": ["Linodes", "Disk Encryption", - "Cloud Firewall", "Vlans", "Metadata", "Distributed Plans", "Maintenance Policy"], - "monitors": {"alerts": [], "metrics": []}, "status": "ok", "resolvers": {"ipv4": - "192.0.2.0,192.0.2.0", "ipv6": "1234::5678,1234::5678"}, - "placement_group_limits": {"maximum_pgs_per_customer": 0, "maximum_linodes_per_pg": - 0, "maximum_linodes_per_flexible_pg": 0}, "site_type": "distributed"}, {"id": - "no-osl-1", "label": "Oslo, NO", "country": "no", "capabilities": ["Linodes", - "Block Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block - Storage", "Kubernetes", "Kubernetes Enterprise", "Cloud Firewall", "Vlans", - "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", "Metadata", - "Premium Plans", "Placement Group", "StackScripts", "Maintenance Policy", "Linode - Interfaces", "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": ["Managed - Databases", "NodeBalancers", "Object Storage"], "metrics": ["Managed Databases", - "NodeBalancers", "Object Storage"]}, "status": "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + 5, "maximum_linodes_per_flexible_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", "GPU Linodes", "Kubernetes", "Kubernetes Enterprise", "Cloud + Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts", "NETINT Quadra + T1U", "Maintenance Policy", "Linode Interfaces", "ACLP Logs Datacenter LKE-E"], + "monitors": {"alerts": ["Managed Databases"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "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, "maximum_linodes_per_flexible_pg": 250}, "site_type": "core"}, {"id": "us-iad-2", - "label": "Washington 2, DC", "country": "us", "capabilities": ["Linodes", "Block + 5, "maximum_linodes_per_flexible_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", "Kubernetes Enterprise", "Cloud Firewall", "Vlans", - "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", "Metadata", - "Premium Plans", "Placement Group", "StackScripts", "Maintenance Policy", "Linode - Interfaces"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers", - "Object Storage"], "metrics": ["Managed Databases", "NodeBalancers", "Object - Storage"]}, "status": "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes Enterprise", "Cloud + Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts", "NETINT Quadra + T1U", "Maintenance Policy", "Linode Interfaces", "ACLP Logs Datacenter LKE-E"], + "monitors": {"alerts": ["Managed Databases"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", "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, "maximum_linodes_per_flexible_pg": 250}, "site_type": "core"}, {"id": "fr-par-2", - "label": "Paris 2, FR", "country": "fr", "capabilities": ["Linodes", "Block + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "id-cgk", + "label": "Jakarta, ID", "country": "id", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", - "GPU Linodes", "Kubernetes", "Kubernetes Enterprise", "Cloud Firewall", "Vlans", - "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", "Metadata", - "Premium Plans", "Placement Group", "StackScripts", "Maintenance Policy", "Linode - Interfaces", "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": ["Managed - Databases", "NodeBalancers", "Object Storage"], "metrics": ["Managed Databases", - "NodeBalancers", "Object Storage"]}, "status": "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes Enterprise", "Cloud + Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases"], + "metrics": ["Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": + {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", "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, "maximum_linodes_per_flexible_pg": 250}, "site_type": "core"}, {"id": "co-bog-2", - "label": "Bogot\u00e1 2, CO", "country": "co", "capabilities": ["Linodes", "Disk - Encryption", "Cloud Firewall", "Vlans", "Metadata", "Distributed Plans", "Maintenance - Policy"], "monitors": {"alerts": [], "metrics": []}, "status": "ok", "resolvers": - {"ipv4": "192.0.2.0,192.0.2.0", "ipv6": "1234::5678,1234::5678"}, - "placement_group_limits": {"maximum_pgs_per_customer": 0, "maximum_linodes_per_pg": - 0, "maximum_linodes_per_flexible_pg": 0}, "site_type": "distributed"}, {"id": - "fr-mrs-2", "label": "Marseille 2, FR", "country": "fr", "capabilities": ["Linodes", - "Disk Encryption", "Cloud Firewall", "Vlans", "Metadata", "Distributed Plans", - "Maintenance Policy"], "monitors": {"alerts": [], "metrics": []}, "status": - "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0", "ipv6": "1234::5678,1234::5678"}, - "placement_group_limits": {"maximum_pgs_per_customer": 0, "maximum_linodes_per_pg": - 0, "maximum_linodes_per_flexible_pg": 0}, "site_type": "distributed"}, {"id": - "us-mia", "label": "Miami, FL", "country": "us", "capabilities": ["Linodes", - "Block Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", - "NodeBalancers", "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", - "Kubernetes Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", - "VPC IPv6 Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement - Group", "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces"], - "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed - Databases", "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + 5, "maximum_linodes_per_flexible_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", "GPU Linodes", "Kubernetes", "Kubernetes Enterprise", "Cloud + Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts", "NETINT Quadra + T1U", "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed + Databases"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": "ok", + "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", "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, "maximum_linodes_per_flexible_pg": 250}, "site_type": "core"}, {"id": "ap-west", - "label": "Mumbai, IN", "country": "in", "capabilities": ["Linodes", "Block Storage - Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", - "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance - Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", - "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "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", + 5, "maximum_linodes_per_flexible_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", "GPU Linodes", "Kubernetes", "Kubernetes Enterprise", "Cloud + Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases"], + "metrics": ["Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": + {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", "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, "maximum_linodes_per_flexible_pg": 250}, "site_type": "core"}, {"id": "ca-central", - "label": "Toronto, CA", "country": "ca", "capabilities": ["Linodes", "Block - Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "Block - Storage Migrations", "Managed Databases", "Metadata", "Placement Group", "StackScripts", - "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed - Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, - "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", + 5, "maximum_linodes_per_flexible_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", "Kubernetes Enterprise", "Cloud + Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases"], + "metrics": ["Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": + {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", "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, "maximum_linodes_per_flexible_pg": 250}, "site_type": "core"}, {"id": "ap-southeast", - "label": "Sydney, AU", "country": "au", "capabilities": ["Linodes", "Block Storage - Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", - "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance - Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", - "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "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", + 5, "maximum_linodes_per_flexible_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", "GPU Linodes", "Kubernetes", "Kubernetes Enterprise", "Cloud + Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts", "NETINT Quadra + T1U", "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed + Databases"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": "ok", + "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", "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, "maximum_linodes_per_flexible_pg": 250}, "site_type": "core"}, {"id": "us-iad", - "label": "Washington, DC", "country": "us", "capabilities": ["Linodes", "Block - Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "Object Storage", "Kubernetes", "Kubernetes Enterprise", "Cloud + 5, "maximum_linodes_per_flexible_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", "GPU Linodes", "Kubernetes", "Kubernetes Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts", "Maintenance - Policy", "Linode Interfaces", "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": - ["Linodes", "Managed Databases", "NodeBalancers", "Object Storage"], "metrics": - ["Linodes", "Managed Databases", "NodeBalancers", "Object Storage"]}, "status": - "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases"], + "metrics": ["Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": + {"ipv4": "172.233.111.6,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,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, "maximum_linodes_per_flexible_pg": 250}, "site_type": "core"}, {"id": "us-ord", - "label": "Chicago, IL", "country": "us", "capabilities": ["Linodes", "Block - Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes - Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 - Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", - "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs Datacenter - LKE-E"], "monitors": {"alerts": ["Linodes", "Managed Databases", "NodeBalancers", - "Object Storage"], "metrics": ["Linodes", "Managed Databases", "NodeBalancers", - "Object Storage"]}, "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", + 5, "maximum_linodes_per_flexible_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", "GPU Linodes", "Kubernetes", "Kubernetes Enterprise", "Cloud + Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases"], + "metrics": ["Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": + {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", "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, "maximum_linodes_per_flexible_pg": 250}, "site_type": "core"}, {"id": "fr-par", - "label": "Paris, FR", "country": "fr", "capabilities": ["Linodes", "Block Storage - Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes - Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 - Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", - "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": - ["Managed Databases", "NodeBalancers", "Object Storage"], "metrics": ["Managed - Databases", "NodeBalancers", "Object Storage"]}, "status": "ok", "resolvers": - {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + 5, "maximum_linodes_per_flexible_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", "Kubernetes Enterprise", "Cloud Firewall", "Vlans", + "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", "Metadata", + "Premium Plans", "Placement Group", "StackScripts", "Maintenance Policy", "Linode + Interfaces"], "monitors": {"alerts": ["Managed Databases"], "metrics": ["Managed + Databases", "NodeBalancers"]}, "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, "maximum_linodes_per_flexible_pg": 250}, "site_type": "core"}, {"id": "us-sea", + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-sea", "label": "Seattle, WA", "country": "us", "capabilities": ["Linodes", "Block - Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes - Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 - Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", - "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs Datacenter - LKE-E"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers", "Object - Storage"], "metrics": ["Managed Databases", "NodeBalancers", "Object Storage"]}, - "status": "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,172.232.160.8,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", + "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes Enterprise", "Cloud + Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces", "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": + ["Managed Databases"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,172.232.160.8,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", "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, "maximum_linodes_per_flexible_pg": 250}, "site_type": "core"}, {"id": "br-gru", - "label": "Sao Paulo, BR", "country": "br", "capabilities": ["Linodes", "Block - Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "Object Storage", "Kubernetes", "Kubernetes Enterprise", "Cloud + 5, "maximum_linodes_per_flexible_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", "Kubernetes Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts", "Maintenance - Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", - "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "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", + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases"], + "metrics": ["Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": + {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", "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, "maximum_linodes_per_flexible_pg": 250}, "site_type": "core"}, {"id": "nl-ams", - "label": "Amsterdam, NL", "country": "nl", "capabilities": ["Linodes", "Block - Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes - Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 - Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", - "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": - ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, - "status": "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + 5, "maximum_linodes_per_flexible_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", "Kubernetes Enterprise", "Cloud + Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces", "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": + ["Managed Databases"], "metrics": ["Managed Databases", "NodeBalancers"]}, "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, "maximum_linodes_per_flexible_pg": 250}, "site_type": "core"}, {"id": "se-sto", - "label": "Stockholm, SE", "country": "se", "capabilities": ["Linodes", "Block - Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes - Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 - Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", - "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": - ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + 5, "maximum_linodes_per_flexible_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", "Kubernetes Enterprise", "Cloud Firewall", "Vlans", + "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", "Metadata", + "Premium Plans", "Placement Group", "StackScripts", "Maintenance Policy", "Linode + Interfaces", "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": ["Managed + Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", "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, "maximum_linodes_per_flexible_pg": 250}, "site_type": "core"}, {"id": "es-mad", - "label": "Madrid, ES", "country": "es", "capabilities": ["Linodes", "Block Storage - Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "Object Storage", "Kubernetes", "Kubernetes Enterprise", "Cloud - Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", - "Metadata", "Premium Plans", "Placement Group", "StackScripts", "Maintenance - Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", - "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": - "ok", "resolvers": {"ipv4": "172.233.111.6,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,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, "maximum_linodes_per_flexible_pg": 250}, "site_type": "core"}, {"id": "in-maa", - "label": "Chennai, IN", "country": "in", "capabilities": ["Linodes", "Block - Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes - Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 - Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", - "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces"], - "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed - Databases", "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ap-southeast", + "label": "Sydney, AU", "country": "au", "capabilities": ["Linodes", "Block Storage + Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", + "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", "Managed + Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance Policy", + "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], + "metrics": ["Managed Databases", "NodeBalancers"]}, "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, "maximum_linodes_per_flexible_pg": 250}, "site_type": "core"}, {"id": "jp-osa", - "label": "Osaka, JP", "country": "jp", "capabilities": ["Linodes", "Block Storage - Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Kubernetes - Enterprise", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 - Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", - "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": - ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, - "status": "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ca-central", + "label": "Toronto, CA", "country": "ca", "capabilities": ["Linodes", "Block + Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", + "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases"], + "metrics": ["Managed Databases", "NodeBalancers"]}, "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, "maximum_linodes_per_flexible_pg": 250}, "site_type": "core"}, {"id": "it-mil", - "label": "Milan, IT", "country": "it", "capabilities": ["Linodes", "Block Storage - Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "Object Storage", "Kubernetes", "Kubernetes Enterprise", "Cloud - Firewall", "Vlans", "VPCs", "VPC Dual Stack", "VPC IPv6 Stack", "Managed Databases", - "Metadata", "Premium Plans", "Placement Group", "StackScripts", "Maintenance - Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", - "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": - "ok", "resolvers": {"ipv4": "192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0,192.0.2.0", + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ap-west", + "label": "Mumbai, IN", "country": "in", "capabilities": ["Linodes", "Block Storage + Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", + "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases"], + "metrics": ["Managed Databases", "NodeBalancers"]}, "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, "maximum_linodes_per_flexible_pg": 250}, "site_type": "core"}, {"id": "us-central", + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-central", "label": "Dallas, TX", "country": "us", "capabilities": ["Linodes", "Block Storage - Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", - "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance - Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", - "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "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", + Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", + "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", "Managed + Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance Policy", + "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases"], "metrics": + ["Managed Databases", "NodeBalancers"]}, "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, "maximum_linodes_per_flexible_pg": 250}, "site_type": "core"}, {"id": "ap-northeast", + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ap-northeast", "label": "Tokyo 2, JP", "country": "jp", "capabilities": ["Linodes", "Block - Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", - "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance - Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", - "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "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", + Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", + "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", "Managed + Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance Policy", + "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases"], "metrics": + ["Managed Databases", "NodeBalancers"]}, "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, "maximum_linodes_per_flexible_pg": 250}, "site_type": "core"}, {"id": "eu-central", + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "eu-central", "label": "Frankfurt, DE", "country": "de", "capabilities": ["Linodes", "Block - Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", - "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata", "Placement - Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": - {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", - "NodeBalancers"]}, "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", + Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", + "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "Block + Storage Migrations", "Managed Databases", "Metadata", "Placement Group", "StackScripts", + "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed + Databases"], "metrics": ["Managed Databases", "NodeBalancers"]}, "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, "maximum_linodes_per_flexible_pg": 250}, "site_type": "core"}, {"id": "ap-south", + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ap-south", "label": "Singapore, SG", "country": "sg", "capabilities": ["Linodes", "Block - Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", - "Vlans", "Block Storage Migrations", "Metadata", "Placement Group", "StackScripts", - "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": ["NodeBalancers"], - "metrics": ["NodeBalancers"]}, "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", + Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", + "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "Block + Storage Migrations", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": [], "metrics": ["NodeBalancers"]}, + "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, "maximum_linodes_per_flexible_pg": 250}, "site_type": "core"}, {"id": "eu-west", + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "eu-west", "label": "London, UK", "country": "gb", "capabilities": ["Linodes", "Block Storage - Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", - "Metadata", "Placement Group", "StackScripts", "Maintenance Policy", "Linode - Interfaces"], "monitors": {"alerts": ["NodeBalancers"], "metrics": ["NodeBalancers"]}, - "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, 192.0.2.0, 192.0.2.0, - 192.0.2.0", "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, "maximum_linodes_per_flexible_pg": 250}, "site_type": "core"}, {"id": "us-east", - "label": "Newark, NJ", "country": "us", "capabilities": ["Linodes", "Block Storage - Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", - "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata", "Placement - Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": - {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", - "NodeBalancers"]}, "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", + Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", + "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", "Metadata", + "Placement Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], + "monitors": {"alerts": [], "metrics": ["NodeBalancers"]}, "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, 192.0.2.0, 192.0.2.0, 192.0.2.0", "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, "maximum_linodes_per_flexible_pg": + 5}, "site_type": "core"}, {"id": "us-east", "label": "Newark, NJ", "country": + "us", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "Object Storage", "GPU Linodes", + "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", "Managed + Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance Policy", + "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases"], "metrics": + ["Managed Databases", "NodeBalancers"]}, "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, "maximum_linodes_per_flexible_pg": 250}, "site_type": "core"}, {"id": "us-southeast", + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-southeast", "label": "Atlanta, GA", "country": "us", "capabilities": ["Linodes", "Block - Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", - "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata", "Placement - Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": - {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", - "NodeBalancers"]}, "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", + Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", + "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "Block + Storage Migrations", "Managed Databases", "Metadata", "Placement Group", "StackScripts", + "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed + Databases"], "metrics": ["Managed Databases", "NodeBalancers"]}, "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, "maximum_linodes_per_flexible_pg": 250}, "site_type": "core"}, {"id": "us-west", + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-west", "label": "Fremont, CA", "country": "us", "capabilities": ["Linodes", "Block - Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", - "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance - Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", - "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "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": + Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", + "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", "Managed + Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance Policy", + "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases"], "metrics": + ["Managed Databases", "NodeBalancers"]}, "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, "maximum_linodes_per_flexible_pg": - 250}, "site_type": "core"}], "page": 1, "pages": 1, "results": 46}' + 5}, "site_type": "core"}], "page": 1, "pages": 1, "results": 32}' headers: Access-Control-Allow-Credentials: - "true" @@ -483,7 +377,7 @@ interactions: Content-Type: - application/json Expires: - - Tue, 28 Jul 2026 16:41:46 GMT + - Wed, 18 Mar 2026 11:49:16 GMT Pragma: - no-cache Strict-Transport-Security: @@ -509,7 +403,7 @@ interactions: code: 200 duration: "" - request: - body: '{"region":"no-osl-1","type":"g6-nanode-1","label":"go-test-ins-wo-disk-1c09tf9qot70","firewall_id":92695693,"booted":false}' + body: '{"region":"nl-ams","type":"g6-nanode-1","label":"go-test-ins-wo-disk-x216h2iu9nv2","firewall_id":3985782,"booted":false}' form: {} headers: Accept: @@ -521,19 +415,19 @@ interactions: url: https://api.linode.com/v4beta/linode/instances method: POST response: - body: '{"id": 101623967, "label": "go-test-ins-wo-disk-1c09tf9qot70", "group": + body: '{"id": 94367422, "label": "go-test-ins-wo-disk-x216h2iu9nv2", "group": "", "status": "provisioning", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", - "type": "g6-nanode-1", "ipv4": ["172.238.141.7"], "ipv6": "1234::5678/128", - "image": null, "region": "no-osl-1", "site_type": "core", "specs": {"disk": - 25600, "memory": 1024, "vcpus": 1, "gpus": 0, "transfer": 1000, "accelerated_devices": + "type": "g6-nanode-1", "ipv4": ["192.0.2.0"], "ipv6": "1234::5678/128", + "image": null, "region": "nl-ams", "site_type": "core", "specs": {"disk": 25600, + "memory": 1024, "vcpus": 1, "gpus": 0, "transfer": 1000, "accelerated_devices": 0}, "alerts": {"cpu": 90, "network_in": 10, "network_out": 10, "transfer_quota": - 80, "io": 10000, "system_alerts": [], "user_alerts": []}, "backups": {"enabled": - true, "available": false, "schedule": {"day": null, "window": null}, "last_successful": - null}, "hypervisor": "kvm", "watchdog_enabled": true, "tags": [], "host_uuid": - "01fe325e0095f31ac423ba2206353b22bf2473d9", "has_user_data": false, "placement_group": - null, "disk_encryption": "enabled", "lke_cluster_id": null, "capabilities": - ["Block Storage Encryption", "SMTP Enabled", "Maintenance Policy"], "interface_generation": - "legacy_config", "maintenance_policy": "linode/migrate", "locks": []}' + 80, "io": 10000}, "backups": {"enabled": false, "available": false, "schedule": + {"day": null, "window": null}, "last_successful": null}, "hypervisor": "kvm", + "watchdog_enabled": true, "tags": [], "host_uuid": "2321d3f5429c39b5b4372add49ec9d4d4dff1c11", + "has_user_data": false, "placement_group": null, "disk_encryption": "enabled", + "lke_cluster_id": null, "capabilities": ["Block Storage Encryption", "Maintenance + Policy"], "interface_generation": "legacy_config", "maintenance_policy": "linode/migrate", + "locks": []}' headers: Access-Control-Allow-Credentials: - "true" @@ -556,7 +450,7 @@ interactions: Content-Type: - application/json Expires: - - Tue, 28 Jul 2026 16:41:47 GMT + - Wed, 18 Mar 2026 11:49:17 GMT Pragma: - no-cache Strict-Transport-Security: @@ -581,7 +475,7 @@ interactions: code: 200 duration: "" - request: - body: '{"label":"go-test-conf-39z49xp6v9fl","devices":{},"interfaces":null}' + body: '{"label":"go-test-conf-60sij366k0cr","devices":{},"interfaces":null}' form: {} headers: Accept: @@ -590,11 +484,11 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/linode/instances/101623967/configs + url: https://api.linode.com/v4beta/linode/instances/94367422/configs method: POST response: - body: '{"id": 105049350, "label": "go-test-conf-39z49xp6v9fl", "helpers": {"updatedb_disabled": - true, "distro": true, "modules_dep": true, "network": false, "devtmpfs_automount": + body: '{"id": 97854886, "label": "go-test-conf-60sij366k0cr", "helpers": {"updatedb_disabled": + true, "distro": true, "modules_dep": true, "network": true, "devtmpfs_automount": true}, "kernel": "linode/latest-64bit", "comments": "", "memory_limit": 0, "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "root_device": "/dev/sda", "devices": {"sda": null, "sdb": null, "sdc": null, "sdd": null, "sde": null, @@ -618,13 +512,13 @@ interactions: Connection: - keep-alive Content-Length: - - "541" + - "539" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Tue, 28 Jul 2026 16:41:47 GMT + - Wed, 18 Mar 2026 11:49:17 GMT Pragma: - no-cache Strict-Transport-Security: @@ -648,7 +542,7 @@ interactions: code: 200 duration: "" - request: - body: '{"label":"go-test-vpc-1785256907791014000","region":"no-osl-1","ipv6":[{"range":"/52"}],"subnets":[{"label":"linodego-vpc-test-1785256907791350000","ipv4":"192.168.0.0/25","ipv6":[{"range":"/62"}]}]}' + body: '{"label":"go-test-vpc-1773834557665640000","region":"nl-ams","ipv6":[{"range":"/52"}],"subnets":[{"label":"linodego-vpc-test-1773834557665969000","ipv4":"192.168.0.0/25","ipv6":[{"range":"/62"}]}]}' form: {} headers: Accept: @@ -660,14 +554,12 @@ interactions: url: https://api.linode.com/v4beta/vpcs method: POST response: - body: '{"id": 583193, "label": "go-test-vpc-1785256907791014000", "description": - "", "region": "no-osl-1", "ipv4": [{"range": "10.0.0.0/8"}, {"range": "172.16.0.0/12"}, - {"range": "192.168.0.0/17"}], "ipv6": [{"range": "1234::5678/52"}], "subnets": - [{"id": 818353, "label": "linodego-vpc-test-1785256907791350000", "ipv4": "192.168.0.0/25", + body: '{"id": 414391, "label": "go-test-vpc-1773834557665640000", "description": + "", "region": "nl-ams", "ipv6": [{"range": "1234::5678/52"}], "subnets": + [{"id": 508130, "label": "linodego-vpc-test-1773834557665969000", "ipv4": "192.168.0.0/25", "ipv6": [{"range": "1234::5678/62"}], "linodes": [], "databases": [], - "nodebalancers": [], "vpc_type": "regular", "created": "2018-01-02T03:04:05", - "updated": "2018-01-02T03:04:05"}], "vpc_type": "regular", "created": "2018-01-02T03:04:05", - "updated": "2018-01-02T03:04:05"}' + "nodebalancers": [], "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" @@ -686,13 +578,13 @@ interactions: Connection: - keep-alive Content-Length: - - "619" + - "479" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Tue, 28 Jul 2026 16:41:51 GMT + - Wed, 18 Mar 2026 11:49:19 GMT Pragma: - no-cache Strict-Transport-Security: @@ -709,14 +601,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "15" + - "1840" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"label":"go-test-conf-39z49xp6v9fl","comments":"","devices":{},"helpers":{"updatedb_disabled":true,"distro":true,"modules_dep":true,"network":false,"devtmpfs_automount":true},"interfaces":[{"purpose":"vpc","subnet_id":818353,"ipv4":{"nat_1_1":"any"},"ipv6":{"slaac":[{"range":"/64"}],"is_public":true}}],"memory_limit":0,"kernel":"linode/latest-64bit","init_rd":null,"root_device":"/dev/sda","run_level":"default","virt_mode":"paravirt"}' + body: '{"label":"go-test-conf-60sij366k0cr","comments":"","devices":{},"helpers":{"updatedb_disabled":true,"distro":true,"modules_dep":true,"network":true,"devtmpfs_automount":true},"interfaces":[{"purpose":"vpc","subnet_id":508130,"ipv4":{"nat_1_1":"any"},"ipv6":{"slaac":[{"range":"/64"}],"is_public":true}}],"memory_limit":0,"kernel":"linode/latest-64bit","init_rd":null,"root_device":"/dev/sda","run_level":"default","virt_mode":"paravirt"}' form: {} headers: Accept: @@ -725,18 +617,18 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/linode/instances/101623967/configs/105049350 + url: https://api.linode.com/v4beta/linode/instances/94367422/configs/97854886 method: PUT response: - body: '{"id": 105049350, "label": "go-test-conf-39z49xp6v9fl", "helpers": {"updatedb_disabled": - true, "distro": true, "modules_dep": true, "network": false, "devtmpfs_automount": + body: '{"id": 97854886, "label": "go-test-conf-60sij366k0cr", "helpers": {"updatedb_disabled": + true, "distro": true, "modules_dep": true, "network": true, "devtmpfs_automount": true}, "kernel": "linode/latest-64bit", "comments": "", "memory_limit": 0, "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "root_device": "/dev/sda", "devices": {"sda": null, "sdb": null, "sdc": null, "sdd": null, "sde": null, "sdf": null, "sdg": null, "sdh": null}, "initrd": null, "run_level": "default", - "virt_mode": "paravirt", "interfaces": [{"id": 13956702, "purpose": "vpc", "primary": - false, "active": false, "ipam_address": null, "label": null, "vpc_id": 583193, - "subnet_id": 818353, "ipv4": {"vpc": "192.168.0.2", "nat_1_1": "172.238.141.7"}, + "virt_mode": "paravirt", "interfaces": [{"id": 11276827, "purpose": "vpc", "primary": + false, "active": false, "ipam_address": null, "label": null, "vpc_id": 414391, + "subnet_id": 508130, "ipv4": {"vpc": "192.168.0.2", "nat_1_1": "192.0.2.0"}, "ip_ranges": [], "ipv6": {"slaac": [{"range": "1234::5678/64", "address": "1234::5678"}], "ranges": [], "is_public": true}}]}' headers: @@ -761,7 +653,7 @@ interactions: Content-Type: - application/json Expires: - - Tue, 28 Jul 2026 16:41:51 GMT + - Wed, 18 Mar 2026 11:49:19 GMT Pragma: - no-cache Strict-Transport-Security: @@ -795,16 +687,15 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/vpcs/583193/ipv6s?page=1 + url: https://api.linode.com/v4beta/vpcs/414391/ipv6s?page=1 method: GET response: - body: '{"data": [{"address": null, "address_range": null, "vpc_id": 583193, "subnet_id": - 818353, "region": "no-osl-1", "linode_id": 101623967, "config_id": 105049350, - "interface_id": 13956702, "nodebalancer_id": null, "database_id": null, "active": - false, "nat_1_1": "", "gateway": null, "prefix": 64, "subnet_mask": "", "ipv6_range": - "1234::5678/64", "ipv6_is_public": true, "ipv6_addresses": [{"slaac_address": - "1234::5678"}]}], "page": 1, "pages": 1, "results": - 1}' + body: '{"data": [{"address": null, "address_range": null, "vpc_id": 414391, "subnet_id": + 508130, "region": "nl-ams", "linode_id": 94367422, "config_id": 97854886, "interface_id": + 11276827, "nodebalancer_id": null, "database_id": null, "active": false, "nat_1_1": + "", "gateway": null, "prefix": 64, "subnet_mask": "", "ipv6_range": "1234::5678/64", + "ipv6_is_public": true, "ipv6_addresses": [{"slaac_address": "1234::5678"}]}], + "page": 1, "pages": 1, "results": 1}' headers: Access-Control-Allow-Credentials: - "true" @@ -823,13 +714,13 @@ interactions: Connection: - keep-alive Content-Length: - - "494" + - "490" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Tue, 28 Jul 2026 16:41:51 GMT + - Wed, 18 Mar 2026 11:49:20 GMT Pragma: - no-cache Strict-Transport-Security: @@ -863,7 +754,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/linode/instances/101623967 + url: https://api.linode.com/v4beta/linode/instances/94367422 method: DELETE response: body: '{}' @@ -891,7 +782,7 @@ interactions: Content-Type: - application/json Expires: - - Tue, 28 Jul 2026 16:41:52 GMT + - Wed, 18 Mar 2026 11:49:20 GMT Pragma: - no-cache Strict-Transport-Security: @@ -924,7 +815,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/vpcs/583193 + url: https://api.linode.com/v4beta/vpcs/414391 method: DELETE response: body: '{}' @@ -952,7 +843,7 @@ interactions: Content-Type: - application/json Expires: - - Tue, 28 Jul 2026 16:41:52 GMT + - Wed, 18 Mar 2026 11:49:21 GMT Pragma: - no-cache Strict-Transport-Security: diff --git a/test/integration/instance_config_test.go b/test/integration/instance_config_test.go index 4d53ea4d2..7b84870a1 100644 --- a/test/integration/instance_config_test.go +++ b/test/integration/instance_config_test.go @@ -162,12 +162,13 @@ func setupInstanceWithDualStackVPCAndNAT11(t *testing.T, fixturesYaml string) ( t, fixturesYaml, func(client *Client, opts *InstanceCreateOptions) { - // TODO: Revert once rolled out to all DCs. - // NOTE: There is currently no VPC Dual Stack region capability - // so this needs to be hardcoded. - // opts.Region = getRegionsWithCaps(t, client, []linodego.RegionCapability{linodego.CapabilityLinodes, - // linodego.CapabilityVPCs})[0] - opts.Region = "no-osl-1" + opts.Region = getRegionsWithCaps(t, client, []linodego.RegionCapability{ + linodego.CapabilityVPCs, + linodego.CapabilityVPCIPv6Stack, + linodego.CapabilityVPCDualStack, + linodego.CapabilityLinodeInterfaces, + linodego.CapabilityNodeBalancers, + })[0] }, ) if err != nil { diff --git a/test/integration/nodebalancers_test.go b/test/integration/nodebalancers_test.go index 6582ff980..29aae5c88 100644 --- a/test/integration/nodebalancers_test.go +++ b/test/integration/nodebalancers_test.go @@ -2,16 +2,39 @@ package integration import ( "context" + "slices" "strings" "testing" "github.com/linode/linodego/v2" + "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) var ( clientConnThrottle = 20 label = "go-test-def" + premiumRegions = []string{ + "nl-ams", + "jp-tyo-3", + "sg-sin-2", + "de-fra-2", + "in-bom-2", + "gb-lon", + "us-lax", + "id-cgk", + "us-mia", + "it-mil", + "jp-osa", + "in-maa", + "se-sto", + "br-gru", + "us-sea", + "fr-par", + "us-iad", + "pl-labkrk-2", // DevCloud + } + premium40GBRegions = []string{"us-iad"} // No DevCloud region for premium_40gb type ) func TestNodeBalancer_Create_create_smoke(t *testing.T) { @@ -79,21 +102,233 @@ func TestNodeBalancer_Create_with_ReservedIP(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") +func TestNodeBalancer_Create_WithBackendVPCOnly(t *testing.T) { + client, nodebalancer, _, _, teardown, err := setupNodeBalancerWithVPC(t, "fixtures/TestNodeBalancer_Create_WithBackendVPCOnly") defer teardown() - - if err != nil { - t.Errorf("Error creating nodebalancer: %v", err) - } + require.NoErrorf(t, err, "Error creating NodeBalancer with Backend VPC: %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") + t.Errorf("NodeBalancer returned does not match NodeBalancer create request") } assertDateSet(t, nodebalancer.Created) assertDateSet(t, nodebalancer.Updated) + assert.NotEmpty(t, nodebalancer.IPv4) + assert.NotEmpty(t, nodebalancer.IPv6) + assert.Equal(t, "public", string(nodebalancer.FrontendAddressType)) + assert.Nil(t, nodebalancer.FrontendVPCSubnetID) + + vpcConfigs, err := client.ListNodeBalancerVPCConfigs(context.Background(), nodebalancer.ID, nil) + require.NoErrorf(t, err, "Error listing nodebalancer VPC configs: %v", err) + require.Len(t, vpcConfigs, 1, "Expected exactly one nodebalancer VPC config, got %d", len(vpcConfigs)) + assert.Equal(t, "backend", string(vpcConfigs[0].Purpose)) + + vpcConfig, err := client.GetNodeBalancerVPCConfig(context.Background(), nodebalancer.ID, vpcConfigs[0].ID) + require.NoErrorf(t, err, "Error getting nodebalancer VPC config: %v", err) + assert.Equal(t, "backend", string(vpcConfig.Purpose)) + + // TODO: Uncomment when API implementation of /backend_vpcs and /frontend_vpcs endpoints is finished + //backendVPCs, err := client.ListNodeBalancerVPCBackendConfigs(context.Background(), nodebalancer.ID, nil) + //require.NoErrorf(t, err, "Error listing NodeBalancer backend VPC configs: %v", err) + //require.Len(t, backendVPCs, 1, "Expected exactly one backend VPC, got %d", len(backendVPCs)) + //assert.Equal(t, "backend", backendVPCs[0].Purpose) + // + //frontendVPCs, err := client.ListNodeBalancerVPCFrontendConfigs(context.Background(), nodebalancer.ID, nil) + //require.NoErrorf(t, err, "Error listing NodeBalancer frontend VPC configs: %v", err) + //require.Len(t, frontendVPCs, 0, "Expected no frontend VPCs, got %d", len(frontendVPCs)) +} + +func TestNodeBalancer_Create_WithFrontendVPCOnly(t *testing.T) { + client, nodebalancer, subnet, teardown, err := setupNodeBalancerWithFrontendVPC( + t, + "fixtures/TestNodeBalancer_Create_WithFrontendVPCOnly", + premiumRegions, + []nbModifier{ + func(createOpts *linodego.NodeBalancerCreateOptions) { + createOpts.Type = linodego.NBTypePremium + }, + }, + ) + defer teardown() + require.NoErrorf(t, err, "Error creating NodeBalancer with Frontend VPC: %v", err) + + assert.Equal(t, "192.168.0.2", *nodebalancer.IPv4) + assert.Regexp(t, `\d+::\d+`, *nodebalancer.IPv6) + assert.Equal(t, "vpc", string(nodebalancer.FrontendAddressType)) + assert.Equal(t, subnet.ID, *nodebalancer.FrontendVPCSubnetID) + + vpcConfigs, err := client.ListNodeBalancerVPCConfigs(context.Background(), nodebalancer.ID, nil) + require.NoErrorf(t, err, "Error listing NodeBalancer VPC configs: %v", err) + require.Len(t, vpcConfigs, 1, "Expected exactly one NodeBalancer VPC config, got %d", len(vpcConfigs)) + assert.Equal(t, "frontend", string(vpcConfigs[0].Purpose)) + + vpcConfig, err := client.GetNodeBalancerVPCConfig(context.Background(), nodebalancer.ID, vpcConfigs[0].ID) + require.NoErrorf(t, err, "Error getting NodeBalancer VPC config: %v", err) + assert.Equal(t, "frontend", string(vpcConfig.Purpose)) + + // TODO: Uncomment when API implementation of /backend_vpcs and /frontend_vpcs endpoints is finished + //backendVPCs, err := client.ListNodeBalancerVPCBackendConfigs(context.Background(), nodebalancer.ID, nil) + //require.NoErrorf(t, err, "Error listing NodeBalancer backend VPC configs: %v", err) + //require.Len(t, backendVPCs, 0, "Expected no backend VPC, got %d", len(backendVPCs)) + // + //frontendVPCs, err := client.ListNodeBalancerVPCFrontendConfigs(context.Background(), nodebalancer.ID, nil) + //require.NoErrorf(t, err, "Error listing NodeBalancer frontend VPC configs: %v", err) + //require.Len(t, frontendVPCs, 1, "Expected exactly one frontend VPC, got %d", len(frontendVPCs)) + //assert.Equal(t, "frontend", frontendVPCs[0].Purpose) +} + +func TestNodeBalancer_Create_WithFrontendIPv6Only_Fail(t *testing.T) { + client, recordStopper := createTestClient(t, "fixtures/TestNodeBalancer_Create_WithFrontendIPv6Only_Fail") + defer recordStopper() + + vpc, subnet, teardown, err := createVPCWithSubnet(t, client) + defer teardown() + require.NoError(t, err, "Error creating VPC with subnet for NodeBalancer") + + createOpts := linodego.NodeBalancerCreateOptions{ + Label: &label, + Region: vpc.Region, + Type: linodego.NBTypePremium, + FrontendVPCs: []linodego.NodeBalancerFrontendVPCOptions{{ + SubnetID: subnet.ID, + IPv6Range: "/62", + }}, + } + + _, err = client.CreateNodeBalancer(context.Background(), createOpts) + require.ErrorContainsf( + t, + err, + "No IPv6 subnets available in VPC", + "No expected error returned, actual error value: %v", err, + ) + e, ok := err.(*linodego.Error) + require.Truef(t, ok, "Expected error related to incorrect IPv6 subnets, got %v", err) + require.Equalf(t, 400, e.Code, "Expected error with 400 Status Code, got %v", err) +} + +func TestNodeBalancer_Create_WithFrontendAndDefaultType_Fail(t *testing.T) { + client, recordStopper := createTestClient(t, "fixtures/TestNodeBalancer_Create_WithFrontendAndDefaultType_Fail") + defer recordStopper() + + vpc, subnet, teardown, err := createVPCWithDualStackSubnet(t, client) + defer teardown() + require.NoError(t, err, "Error creating VPC with subnet for NodeBalancer") + + createOpts := linodego.NodeBalancerCreateOptions{ + Label: &label, + Region: vpc.Region, + Type: linodego.NBTypeCommon, + FrontendVPCs: []linodego.NodeBalancerFrontendVPCOptions{{ + SubnetID: subnet.ID, + }}, + } + + _, err = client.CreateNodeBalancer(context.Background(), createOpts) + require.ErrorContainsf( + t, + err, + "NodeBalancer with frontend VPC IP must be premium", + "No expected error returned, actual error value: %v", err, + ) + e, ok := err.(*linodego.Error) + require.Truef(t, ok, "Expected error related to incorrect NodeBalancer type, got %v", err) + require.Equalf(t, 400, e.Code, "Expected error with 400 Status Code, got %v", err) +} + +func TestNodeBalancer_Create_WithPremium40GBType(t *testing.T) { + _, nodebalancer, _, teardown, err := setupNodeBalancerWithFrontendVPC( + t, + "fixtures/TestNodeBalancer_Create_WithPremium40GBType", + premium40GBRegions, + []nbModifier{ + func(createOpts *linodego.NodeBalancerCreateOptions) { + createOpts.Type = linodego.NBTypePremium40GB + }, + }, + ) + defer teardown() + require.NoErrorf(t, err, "Error creating NodeBalancer with premium_40gb type: %v", err) + + assert.Equal(t, linodego.NBTypePremium40GB, nodebalancer.Type) +} + +func TestNodeBalancer_Create_WithFrontendAndBackendInDifferentVPCs(t *testing.T) { + client, nodebalancer, subnetFrontend, teardown, err := setupNodeBalancerWithPremiumTypeInDifferentVPCs( + t, + "fixtures/TestNodeBalancer_Create_WithFrontendAndBackendInDifferentVPCs", + premiumRegions, + ) + defer teardown() + require.NoErrorf(t, err, "Error creating NodeBalancer with different VPCs") + + assert.Equal(t, "192.168.0.2", *nodebalancer.IPv4) + assert.Regexp(t, `\d+::\d+`, *nodebalancer.IPv6) + assert.Equal(t, "vpc", string(nodebalancer.FrontendAddressType)) + assert.Equal(t, subnetFrontend.ID, *nodebalancer.FrontendVPCSubnetID) + + vpcConfigs, err := client.ListNodeBalancerVPCConfigs(context.Background(), nodebalancer.ID, nil) + require.NoErrorf(t, err, "Error listing NodeBalancer VPC configs: %v", err) + require.Len(t, vpcConfigs, 2, "Expected exactly two VPC configs, got %d", len(vpcConfigs)) + + slices.SortFunc(vpcConfigs, func(a, b linodego.NodeBalancerVPCConfig) int { + return strings.Compare(string(a.Purpose), string(b.Purpose)) + }) + + assert.Equal(t, "backend", string(vpcConfigs[0].Purpose)) + assert.Equal(t, "frontend", string(vpcConfigs[1].Purpose)) + assert.Contains(t, vpcConfigs[1].IPv4Range, "/32") + assert.Contains(t, vpcConfigs[1].IPv6Range, "/64") + + // TODO: Uncomment when API implementation of /backend_vpcs and /frontend_vpcs endpoints is finished + //backendVPCs, err := client.ListNodeBalancerVPCBackendConfigs(context.Background(), nodebalancer.ID, nil) + //require.NoErrorf(t, err, "Error listing NodeBalancer backend VPC configs: %v", err) + //require.Len(t, backendVPCs, 1, "Expected exactly one backend VPC, got %d", len(backendVPCs)) + //assert.Equal(t, "backend", backendVPCs[0].Purpose) + // + //frontendVPCs, err := client.ListNodeBalancerVPCFrontendConfigs(context.Background(), nodebalancer.ID, nil) + //require.NoErrorf(t, err, "Error listing NodeBalancer frontend VPC configs: %v", err) + //require.Len(t, frontendVPCs, 1, "Expected exactly one frontend VPCs, got %d", len(frontendVPCs)) + //assert.Equal(t, "frontend", frontendVPCs[0].Purpose) +} + +func TestNodeBalancer_Create_WithDeprecatedVPCsAttribute(t *testing.T) { + // Test that the deprecated VPCs attribute is still valid - it will be deleted when it can no longer be used. + client, recordStopper := createTestClient(t, "fixtures/TestNodeBalancer_Create_WithDeprecatedVPCsAttribute") + defer recordStopper() + + vpc, subnet, vpcTeardown, err := createVPCWithSubnet( + t, + client, + func(client *linodego.Client, opts *linodego.VPCCreateOptions) { + opts.Region = premiumRegions[0] + }, + ) + defer vpcTeardown() + require.NoError(t, err, "Error creating VPC with subnet for NodeBalancer") + + createOpts := linodego.NodeBalancerCreateOptions{ + Label: &label, + Region: vpc.Region, + Type: linodego.NBTypePremium, + VPCs: []linodego.NodeBalancerVPCOptions{{ + SubnetID: subnet.ID, + }}, + } + + nodebalancer, err := client.CreateNodeBalancer(context.Background(), createOpts) + require.NoErrorf(t, err, "Error creating NodeBalancer with VPCs attribute: %v", err) + + assertDateSet(t, nodebalancer.Created) + assertDateSet(t, nodebalancer.Updated) + assert.NotEmpty(t, nodebalancer.IPv4) + assert.NotEmpty(t, nodebalancer.IPv6) + assert.Equal(t, "public", string(nodebalancer.FrontendAddressType)) + assert.Nil(t, nodebalancer.FrontendVPCSubnetID) + + err = client.DeleteNodeBalancer(context.Background(), nodebalancer.ID) + require.NoErrorf(t, err, "Expected to delete a nodebalancer, but got %v", err) } func TestNodeBalancer_Update(t *testing.T) { @@ -195,6 +430,39 @@ func TestNodeBalancer_UDP(t *testing.T) { type nbModifier func(options *linodego.NodeBalancerCreateOptions) +func createVPCWithDualStackSubnetInRegion(t *testing.T, client *linodego.Client, region string) ( + *linodego.VPC, + *linodego.VPCSubnet, + func(), + error, +) { + t.Helper() + vpc, subnet, teardown, err := createVPCWithDualStackSubnet( + t, + client, + func(_ *linodego.Client, vpcOpts *linodego.VPCCreateOptions) { + vpcOpts.Region = region + }, + ) + return vpc, subnet, teardown, err +} + +func getValidRegion(t *testing.T, client *linodego.Client, validRegions []string) string { + regionsWithCaps := getRegionsWithCaps(t, client, []linodego.RegionCapability{ + linodego.CapabilityVPCs, + linodego.CapabilityVPCIPv6Stack, + linodego.CapabilityVPCDualStack, + linodego.CapabilityLinodeInterfaces, + linodego.CapabilityNodeBalancers, + }) + intersection := getIntersection(regionsWithCaps, validRegions) + + if len(intersection) == 0 { + t.Skip("Skipping test: No valid regions with required capabilities") + } + return intersection[0] +} + func setupNodeBalancer(t *testing.T, fixturesYaml string, nbModifiers []nbModifier) (*linodego.Client, *linodego.NodeBalancer, func(), error) { t.Helper() var fixtureTeardown func() @@ -277,7 +545,7 @@ func setupNodeBalancerWithVPC( Region: vpc.Region, ClientConnThrottle: &clientConnThrottle, FirewallID: GetFirewallID(), - VPCs: []linodego.NodeBalancerVPCOptions{ + BackendVPCs: []linodego.NodeBalancerBackendVPCOptions{ { IPv4Range: "192.168.0.64/30", IPv6Range: "", @@ -300,3 +568,92 @@ func setupNodeBalancerWithVPC( } return client, nodebalancer, vpc, subnet, teardown, err } + +func setupNodeBalancerWithFrontendVPC(t *testing.T, fixturesYaml string, regions []string, nbModifiers []nbModifier) ( + *linodego.Client, + *linodego.NodeBalancer, + *linodego.VPCSubnet, + func(), + error, +) { + t.Helper() + var fixtureTeardown func() + client, fixtureTeardown := createTestClient(t, fixturesYaml) + region := getValidRegion(t, client, regions) + + _, subnet, vpcTeardown, err := createVPCWithDualStackSubnetInRegion(t, client, region) + require.NoErrorf(t, err, "Error creating VPC with subnet in region '%s'", region) + + createOpts := linodego.NodeBalancerCreateOptions{ + Label: &label, + Region: region, + ClientConnThrottle: &clientConnThrottle, + FrontendVPCs: []linodego.NodeBalancerFrontendVPCOptions{{ + SubnetID: subnet.ID, + IPv4Range: TestSubnetIPv4, + }}, + } + for _, modifier := range nbModifiers { + modifier(&createOpts) + } + + nodebalancer, err := client.CreateNodeBalancer(context.Background(), createOpts) + require.NoErrorf(t, err, "Error creating nodebalancer, expected struct, got error %v", err) + + teardown := func() { + err = client.DeleteNodeBalancer(context.Background(), nodebalancer.ID) + require.NoErrorf(t, err, "Expected to delete a nodebalancer, but got %v", err) + + vpcTeardown() + fixtureTeardown() + } + return client, nodebalancer, subnet, teardown, err +} + +func setupNodeBalancerWithPremiumTypeInDifferentVPCs(t *testing.T, fixturesYaml string, regions []string) ( + *linodego.Client, + *linodego.NodeBalancer, + *linodego.VPCSubnet, + func(), + error, +) { + t.Helper() + var fixtureTeardown func() + client, fixtureTeardown := createTestClient(t, fixturesYaml) + region := getValidRegion(t, client, regions) + + _, subnetBackend, backendTeardown, err := createVPCWithDualStackSubnetInRegion(t, client, region) + require.NoErrorf(t, err, "Error creating backend VPC with subnet in region '%s'", region) + + _, subnetFrontend, frontendTeardown, err := createVPCWithDualStackSubnetInRegion(t, client, region) + require.NoErrorf(t, err, "Error creating frontend VPC with subnet in region '%s'", region) + + createOpts := linodego.NodeBalancerCreateOptions{ + Label: &label, + Region: region, + ClientConnThrottle: &clientConnThrottle, + Type: linodego.NBTypePremium, + BackendVPCs: []linodego.NodeBalancerBackendVPCOptions{ + { + SubnetID: subnetBackend.ID, + }, + }, + FrontendVPCs: []linodego.NodeBalancerFrontendVPCOptions{{ + SubnetID: subnetFrontend.ID, + IPv4Range: TestSubnetIPv4, + }}, + } + + nodebalancer, err := client.CreateNodeBalancer(context.Background(), createOpts) + require.NoErrorf(t, err, "Error listing nodebalancers, expected struct, got error %v", err) + + teardown := func() { + err = client.DeleteNodeBalancer(context.Background(), nodebalancer.ID) + require.NoErrorf(t, err, "Expected to delete a nodebalancer, but got %v", err) + + backendTeardown() + frontendTeardown() + fixtureTeardown() + } + return client, nodebalancer, subnetFrontend, teardown, err +} diff --git a/test/integration/util_test.go b/test/integration/util_test.go index df5eea912..41793d867 100644 --- a/test/integration/util_test.go +++ b/test/integration/util_test.go @@ -34,3 +34,20 @@ func minInt(a, b int) int { func getUniqueText() string { return strconv.FormatInt(time.Now().UnixNano(), 10) } + +// getIntersection returns common items of two data structures (e.g. slices) +func getIntersection[T comparable](a, b []T) []T { + set := make(map[T]struct{}) + var result []T + + for _, item := range a { + set[item] = struct{}{} + } + + for _, item := range b { + if _, ok := set[item]; ok { + result = append(result, item) + } + } + return result +} diff --git a/test/integration/vpc_subnet_test.go b/test/integration/vpc_subnet_test.go index 2e5ea002e..93a126d17 100644 --- a/test/integration/vpc_subnet_test.go +++ b/test/integration/vpc_subnet_test.go @@ -87,6 +87,7 @@ func createVPCWithSubnet(t *testing.T, client *linodego.Client, vpcModifier ...v Region: getRegionsWithCaps(t, client, []linodego.RegionCapability{ linodego.CapabilityLinodes, linodego.CapabilityVPCs, + linodego.CapabilityNodeBalancers, })[0], Subnets: []VPCSubnetCreateOptions{ { @@ -123,8 +124,12 @@ func createVPCWithDualStackSubnet(t *testing.T, client *linodego.Client, vpcModi createOpts := linodego.VPCCreateOptions{ Label: "go-test-vpc-" + getUniqueText(), Region: getRegionsWithCaps(t, client, []linodego.RegionCapability{ - linodego.CapabilityLinodes, linodego.CapabilityVPCs, + linodego.CapabilityVPCDualStack, + linodego.CapabilityVPCIPv6Stack, + linodego.CapabilityLinodes, + linodego.CapabilityLinodeInterfaces, + linodego.CapabilityNodeBalancers, })[0], IPv6: []VPCCreateOptionsIPv6{ { diff --git a/test/unit/fixtures/nodebalancer_create_with_vpcs.json b/test/unit/fixtures/nodebalancer_create_with_vpcs.json new file mode 100644 index 000000000..13d3249a4 --- /dev/null +++ b/test/unit/fixtures/nodebalancer_create_with_vpcs.json @@ -0,0 +1,23 @@ +{ + "id": 12345, + "label": "Test NodeBalancer VPC", + "region": "us-east", + "type": "premium_40gb", + "hostname": "", + "ipv4": "10.200.5.17", + "ipv6": "2600:3c01:e000:101::1", + "frontend_address_type": "vpc", + "frontend_vpc_subnet_id": 456, + "created": "2026-03-02T16:02:53", + "updated": "2026-03-02T16:02:53", + "client_conn_throttle": 0, + "client_udp_sess_throttle": 0, + "lke_cluster": null, + "tags": [], + "locks": [], + "transfer": { + "in": null, + "out": null, + "total": null + } +} \ No newline at end of file diff --git a/test/unit/fixtures/nodebalancer_get.json b/test/unit/fixtures/nodebalancer_get.json index 6cb3fa095..6f57b727e 100644 --- a/test/unit/fixtures/nodebalancer_get.json +++ b/test/unit/fixtures/nodebalancer_get.json @@ -5,6 +5,8 @@ "hostname": "existing.nodebalancer.linode.com", "ipv4": "192.0.2.2", "ipv6": "2600:3c03::f03c:91ff:fe24:abcd", + "frontend_address_type": "vpc", + "frontend_vpc_subnet_id": 456, "client_conn_throttle": 20, "transfer": { "total": 2000.0, @@ -15,6 +17,6 @@ "tags": ["production"], "locks": ["cannot_delete_with_subresources"], "created": "2025-01-15T08:00:00", - "updated": "2025-02-05T12:00:00" + "updated": "2025-02-05T12:00:00", + "type": "premium_40gb" } - \ No newline at end of file diff --git a/test/unit/fixtures/nodebalancer_vpc_config_backend_list.json b/test/unit/fixtures/nodebalancer_vpc_config_backend_list.json new file mode 100644 index 000000000..aff351b7d --- /dev/null +++ b/test/unit/fixtures/nodebalancer_vpc_config_backend_list.json @@ -0,0 +1,25 @@ +{ + "data": [ + { + "id": 9, + "ipv4_range": "10.0.0.12/30", + "ipv6_range": null, + "nodebalancer_id": 123, + "subnet_id": 3, + "vpc_id": 1, + "purpose": "backend" + }, + { + "id": 10, + "ipv4_range": "10.0.1.16/30", + "ipv6_range": null, + "nodebalancer_id": 123, + "subnet_id": 6, + "vpc_id": 1, + "purpose": "backend" + } + ], + "page": 1, + "pages": 1, + "results": 2 +} diff --git a/test/unit/fixtures/nodebalancer_vpc_config_frontend_list.json b/test/unit/fixtures/nodebalancer_vpc_config_frontend_list.json new file mode 100644 index 000000000..e58ecd5d0 --- /dev/null +++ b/test/unit/fixtures/nodebalancer_vpc_config_frontend_list.json @@ -0,0 +1,16 @@ +{ + "data": [ + { + "id": 14, + "ipv4_range": "10.0.0.36/30", + "ipv6_range": null, + "nodebalancer_id": 123, + "subnet_id": 3, + "vpc_id": 1, + "purpose": "frontend" + } + ], + "page": 1, + "pages": 1, + "results": 1 +} diff --git a/test/unit/fixtures/nodebalancer_vpc_config_get.json b/test/unit/fixtures/nodebalancer_vpc_config_get.json new file mode 100644 index 000000000..d10f25eeb --- /dev/null +++ b/test/unit/fixtures/nodebalancer_vpc_config_get.json @@ -0,0 +1,9 @@ +{ + "id": 6, + "ipv4_range": "10.0.0.12/30", + "ipv6_range": null, + "nodebalancer_id": 123, + "subnet_id": 1, + "vpc_id": 1, + "purpose": "backend" +} \ No newline at end of file diff --git a/test/unit/fixtures/nodebalancer_vpc_config_list.json b/test/unit/fixtures/nodebalancer_vpc_config_list.json new file mode 100644 index 000000000..9a818e7f0 --- /dev/null +++ b/test/unit/fixtures/nodebalancer_vpc_config_list.json @@ -0,0 +1,25 @@ +{ + "data": [ + { + "id": 6, + "ipv4_range": "10.0.0.12/30", + "ipv6_range": null, + "nodebalancer_id": 123, + "subnet_id": 1, + "vpc_id": 1, + "purpose": "backend" + }, + { + "id": 7, + "ipv4_range": "10.0.1.8/30", + "ipv6_range": null, + "nodebalancer_id": 123, + "subnet_id": 7, + "vpc_id": 1, + "purpose": "frontend" + } + ], + "page": 1, + "pages": 1, + "results": 2 +} diff --git a/test/unit/fixtures/nodebalancers_list.json b/test/unit/fixtures/nodebalancers_list.json index 994a4d425..e37b0c76c 100644 --- a/test/unit/fixtures/nodebalancers_list.json +++ b/test/unit/fixtures/nodebalancers_list.json @@ -6,7 +6,10 @@ "region": "us-east", "tags": ["tag1", "tag2"], "locks": ["cannot_delete"], - "lke_cluster": null + "lke_cluster": null, + "frontend_address_type": "vpc", + "frontend_vpc_subnet_id": 123, + "type": "premium_40gb" }, { "id": 456, @@ -19,7 +22,10 @@ "type": "lkecluster", "label": "test-cluster", "url": "/v4/lke/clusters/1234" - } + }, + "frontend_address_type": "vpc", + "frontend_vpc_subnet_id": 456, + "type": "premium_40gb" } ], "page": 1, diff --git a/test/unit/nodebalancer_config_vpc_test.go b/test/unit/nodebalancer_config_vpc_test.go new file mode 100644 index 000000000..f3ae067c2 --- /dev/null +++ b/test/unit/nodebalancer_config_vpc_test.go @@ -0,0 +1,119 @@ +package unit + +import ( + "context" + "testing" + + "github.com/linode/linodego/v2" + "github.com/stretchr/testify/assert" +) + +func TestNodebalancerVPCConfig_List(t *testing.T) { + fixtureData, err := fixtures.GetFixture("nodebalancer_vpc_config_list") + assert.NoError(t, err) + + var base ClientBaseCase + base.SetUp(t) + defer base.TearDown(t) + + base.MockGet("nodebalancers/123/vpcs", fixtureData) + + configs, err := base.Client.ListNodeBalancerVPCConfigs(context.Background(), 123, &linodego.ListOptions{}) + assert.NoError(t, err) + + assert.Len(t, configs, 2) + + assert.Equal(t, 6, configs[0].ID) + assert.Equal(t, "10.0.0.12/30", configs[0].IPv4Range) + assert.Equal(t, "", configs[0].IPv6Range) + assert.Equal(t, 123, configs[0].NodeBalancerID) + assert.Equal(t, 1, configs[0].SubnetID) + assert.Equal(t, 1, configs[0].VPCID) + assert.Equal(t, linodego.NodeBalancerVPCConfigPurposeBackend, configs[0].Purpose) + + assert.Equal(t, 7, configs[1].ID) + assert.Equal(t, "10.0.1.8/30", configs[1].IPv4Range) + assert.Equal(t, "", configs[1].IPv6Range) + assert.Equal(t, 123, configs[1].NodeBalancerID) + assert.Equal(t, 7, configs[1].SubnetID) + assert.Equal(t, 1, configs[1].VPCID) + assert.Equal(t, linodego.NodeBalancerVPCConfigPurposeFrontend, configs[1].Purpose) +} + +func TestNodebalancerVPCConfig_BackendList(t *testing.T) { + fixtureData, err := fixtures.GetFixture("nodebalancer_vpc_config_backend_list") + assert.NoError(t, err) + + var base ClientBaseCase + base.SetUp(t) + defer base.TearDown(t) + + base.MockGet("nodebalancers/123/backend_vpcs", fixtureData) + + configs, err := base.Client.ListNodeBalancerVPCBackendConfigs(context.Background(), 123, &linodego.ListOptions{}) + assert.NoError(t, err) + + assert.Len(t, configs, 2) + + assert.Equal(t, 9, configs[0].ID) + assert.Equal(t, "10.0.0.12/30", configs[0].IPv4Range) + assert.Equal(t, "", configs[0].IPv6Range) + assert.Equal(t, 123, configs[0].NodeBalancerID) + assert.Equal(t, 3, configs[0].SubnetID) + assert.Equal(t, 1, configs[0].VPCID) + assert.Equal(t, linodego.NodeBalancerVPCConfigPurposeBackend, configs[0].Purpose) + + assert.Equal(t, 10, configs[1].ID) + assert.Equal(t, "10.0.1.16/30", configs[1].IPv4Range) + assert.Equal(t, "", configs[1].IPv6Range) + assert.Equal(t, 123, configs[1].NodeBalancerID) + assert.Equal(t, 6, configs[1].SubnetID) + assert.Equal(t, 1, configs[1].VPCID) + assert.Equal(t, linodego.NodeBalancerVPCConfigPurposeBackend, configs[1].Purpose) +} + +func TestNodebalancerVPCConfig_FrontendList(t *testing.T) { + fixtureData, err := fixtures.GetFixture("nodebalancer_vpc_config_frontend_list") + assert.NoError(t, err) + + var base ClientBaseCase + base.SetUp(t) + defer base.TearDown(t) + + base.MockGet("nodebalancers/123/frontend_vpcs", fixtureData) + + configs, err := base.Client.ListNodeBalancerVPCFrontendConfigs(context.Background(), 123, &linodego.ListOptions{}) + assert.NoError(t, err) + + assert.Len(t, configs, 1) + + assert.Equal(t, 14, configs[0].ID) + assert.Equal(t, "10.0.0.36/30", configs[0].IPv4Range) + assert.Equal(t, "", configs[0].IPv6Range) + assert.Equal(t, 123, configs[0].NodeBalancerID) + assert.Equal(t, 3, configs[0].SubnetID) + assert.Equal(t, 1, configs[0].VPCID) + assert.Equal(t, linodego.NodeBalancerVPCConfigPurposeFrontend, configs[0].Purpose) +} + +func TestNodebalancerVPCConfig_Get(t *testing.T) { + fixtureData, err := fixtures.GetFixture("nodebalancer_vpc_config_get") + assert.NoError(t, err) + + var base ClientBaseCase + base.SetUp(t) + defer base.TearDown(t) + + base.MockGet("nodebalancers/123/vpcs/12345", fixtureData) + + config, err := base.Client.GetNodeBalancerVPCConfig(context.Background(), 123, 12345) + assert.NoError(t, err) + + assert.Equal(t, 6, config.ID) + assert.Equal(t, "10.0.0.12/30", config.IPv4Range) + assert.Equal(t, "", config.IPv6Range) + assert.Equal(t, 123, config.NodeBalancerID) + assert.Equal(t, 1, config.SubnetID) + assert.Equal(t, 1, config.VPCID) + assert.Equal(t, linodego.NodeBalancerVPCConfigPurposeBackend, config.Purpose) +} diff --git a/test/unit/nodebalancer_test.go b/test/unit/nodebalancer_test.go index 6c8365945..f14468688 100644 --- a/test/unit/nodebalancer_test.go +++ b/test/unit/nodebalancer_test.go @@ -93,7 +93,7 @@ func TestNodeBalancer_Get(t *testing.T) { }, } - for _, tt := range tests { + for idx, tt := range tests { t.Run(tt.name, func(t *testing.T) { fixtureData, err := fixtures.GetFixture(tt.fixture) assert.NoError(t, err) @@ -113,6 +113,13 @@ func TestNodeBalancer_Get(t *testing.T) { assert.Equal(t, "us-west", nodebalancer.Region, "Expected NodeBalancer region to match") assert.Equal(t, []linodego.LockType{linodego.LockTypeCannotDeleteWithSubresources}, nodebalancer.Locks, "Expected NodeBalancer locks to match") assert.Equal(t, tt.expectedLKECluster, nodebalancer.LKECluster, "Expected NodeBalancer LKECluster to match") + if idx == 0 { + assert.Equal(t, linodego.NBTypePremium40GB, nodebalancer.Type) + assert.Equal(t, linodego.NodeBalancerVPCFrontendAddressTypeVPC, nodebalancer.FrontendAddressType) + assert.Equal(t, 456, *nodebalancer.FrontendVPCSubnetID) + } else { + assert.Equal(t, linodego.NBTypeCommon, nodebalancer.Type) + } }) } } @@ -140,6 +147,9 @@ func TestNodeBalancer_List(t *testing.T) { assert.Equal(t, []string{"tag1", "tag2"}, nodebalancers[0].Tags, "Expected first NodeBalancer tags to match") assert.Equal(t, []linodego.LockType{linodego.LockTypeCannotDelete}, nodebalancers[0].Locks, "Expected first NodeBalancer locks to match") assert.Nil(t, nodebalancers[0].LKECluster, "Expected first NodeBalancer LKECluster to match") + assert.Equal(t, linodego.NBTypePremium40GB, nodebalancers[0].Type) + assert.Equal(t, linodego.NodeBalancerVPCFrontendAddressTypeVPC, nodebalancers[0].FrontendAddressType) + assert.Equal(t, 123, *nodebalancers[0].FrontendVPCSubnetID) // Verify details of the second NodeBalancer assert.Equal(t, 456, nodebalancers[1].ID, "Expected second NodeBalancer ID to match") @@ -153,6 +163,9 @@ func TestNodeBalancer_List(t *testing.T) { Label: "test-cluster", URL: "/v4/lke/clusters/1234", }, nodebalancers[1].LKECluster, "Expected second NodeBalancer LKECluster to match") + assert.Equal(t, linodego.NBTypePremium40GB, nodebalancers[1].Type) + assert.Equal(t, linodego.NodeBalancerVPCFrontendAddressTypeVPC, nodebalancers[1].FrontendAddressType) + assert.Equal(t, 456, *nodebalancers[1].FrontendVPCSubnetID) } func TestNodeBalancer_Update(t *testing.T) { @@ -208,3 +221,93 @@ func TestNodeBalancer_Create_IPv4RequestBody(t *testing.T) { t.Fatal(err) } } + +func TestNodeBalancer_Create_with_VPCs(t *testing.T) { + fixtureData, err := fixtures.GetFixture("nodebalancer_create_with_vpcs") + assert.NoError(t, err) + + var base ClientBaseCase + base.SetUp(t) + defer base.TearDown(t) + + requestData := linodego.NodeBalancerCreateOptions{ + Label: String("Test NodeBalancer VPC"), + Region: "us-east", + Type: linodego.NBTypePremium40GB, + VPCs: []linodego.NodeBalancerVPCOptions{ + { + SubnetID: 123, + IPv4Range: "10.200.4.16/28", + IPv6Range: "2600:3c01:e000:1::/64", + IPv4RangeAutoAssign: false, + }, + }, + FrontendVPCs: []linodego.NodeBalancerFrontendVPCOptions{ + { + SubnetID: 456, + IPv4Range: "10.200.5.16/28", + IPv6Range: "2600:3c01:e000:101::/64", + }, + }, + } + + base.MockPost("nodebalancers", fixtureData) + + nb, err := base.Client.CreateNodeBalancer(context.Background(), requestData) + + assert.NoError(t, err) + + assert.Equal(t, 12345, nb.ID) + assert.Equal(t, "Test NodeBalancer VPC", *nb.Label) + assert.Equal(t, "us-east", nb.Region) + assert.Equal(t, linodego.NBTypePremium40GB, nb.Type) + + assert.Equal(t, linodego.NodeBalancerVPCFrontendAddressTypeVPC, nb.FrontendAddressType) + assert.Equal(t, 456, *nb.FrontendVPCSubnetID) +} + +func TestNodeBalancer_Create_with_BackendVPCs(t *testing.T) { + // The response fixture is the same as the VPCs test since BackendVPCs and + // VPCs are currently both accepted by the API. + fixtureData, err := fixtures.GetFixture("nodebalancer_create_with_vpcs") + assert.NoError(t, err) + + var base ClientBaseCase + base.SetUp(t) + defer base.TearDown(t) + + requestData := linodego.NodeBalancerCreateOptions{ + Label: String("Test NodeBalancer VPC"), + Region: "us-east", + Type: linodego.NBTypePremium40GB, + BackendVPCs: []linodego.NodeBalancerBackendVPCOptions{ + { + SubnetID: 123, + IPv4Range: "10.200.4.16/28", + IPv6Range: "2600:3c01:e000:1::/64", + IPv4RangeAutoAssign: false, + }, + }, + FrontendVPCs: []linodego.NodeBalancerFrontendVPCOptions{ + { + SubnetID: 456, + IPv4Range: "10.200.5.16/28", + IPv6Range: "2600:3c01:e000:101::/64", + }, + }, + } + + base.MockPost("nodebalancers", fixtureData) + + nb, err := base.Client.CreateNodeBalancer(context.Background(), requestData) + + assert.NoError(t, err) + + assert.Equal(t, 12345, nb.ID) + assert.Equal(t, "Test NodeBalancer VPC", *nb.Label) + assert.Equal(t, "us-east", nb.Region) + assert.Equal(t, linodego.NBTypePremium40GB, nb.Type) + + assert.Equal(t, linodego.NodeBalancerVPCFrontendAddressTypeVPC, nb.FrontendAddressType) + assert.Equal(t, 456, *nb.FrontendVPCSubnetID) +}