From fa612a501eba80e69c6adf59ece3db524fd44410 Mon Sep 17 00:00:00 2001 From: Maciej Wilk Date: Mon, 13 Apr 2026 17:20:49 +0200 Subject: [PATCH 01/15] Add IO ready int tests for attached and detached volume --- ...M_GetIOReadyForAttachedDetachedVolume.yaml | 1216 +++++++++++++++++ ...estIAM_GetIOReadyForNotAttachedVolume.yaml | 663 +++++++++ test/integration/iam_io_ready_test.go | 96 ++ waitfor.go | 26 + 4 files changed, 2001 insertions(+) create mode 100644 test/integration/fixtures/TestIAM_GetIOReadyForAttachedDetachedVolume.yaml create mode 100644 test/integration/fixtures/TestIAM_GetIOReadyForNotAttachedVolume.yaml create mode 100644 test/integration/iam_io_ready_test.go diff --git a/test/integration/fixtures/TestIAM_GetIOReadyForAttachedDetachedVolume.yaml b/test/integration/fixtures/TestIAM_GetIOReadyForAttachedDetachedVolume.yaml new file mode 100644 index 000000000..1ef3b7f2a --- /dev/null +++ b/test/integration/fixtures/TestIAM_GetIOReadyForAttachedDetachedVolume.yaml @@ -0,0 +1,1216 @@ +--- +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/linode/instances/95949807 + method: GET + response: + body: '{"id": 95949807, "label": "go-test-ins-7a80eb6i7p3y", "group": "", "status": + "provisioning", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", + "type": "g6-nanode-1", "ipv4": ["172.239.239.174"], "ipv6": "1234::5678/128", + "image": "linode/debian12", "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}, "backups": {"enabled": false, "available": false, "schedule": + {"day": null, "window": null}, "last_successful": null}, "hypervisor": "kvm", + "watchdog_enabled": true, "tags": [], "host_uuid": "faa31587894a98bb0f66051164b3ffd2d941264a", + "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" + 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: + - Mon, 13 Apr 2026 14:36:55 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - linodes: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/linode/instances/95949807 + method: GET + response: + body: '{"id": 95949807, "label": "go-test-ins-7a80eb6i7p3y", "group": "", "status": + "provisioning", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", + "type": "g6-nanode-1", "ipv4": ["172.239.239.174"], "ipv6": "1234::5678/128", + "image": "linode/debian12", "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}, "backups": {"enabled": false, "available": false, "schedule": + {"day": null, "window": null}, "last_successful": null}, "hypervisor": "kvm", + "watchdog_enabled": true, "tags": [], "host_uuid": "faa31587894a98bb0f66051164b3ffd2d941264a", + "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" + 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: + - Mon, 13 Apr 2026 14:37:10 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - linodes: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/linode/instances/95949807 + method: GET + response: + body: '{"id": 95949807, "label": "go-test-ins-7a80eb6i7p3y", "group": "", "status": + "booting", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", + "type": "g6-nanode-1", "ipv4": ["172.239.239.174"], "ipv6": "1234::5678/128", + "image": "linode/debian12", "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}, "backups": {"enabled": false, "available": false, "schedule": + {"day": null, "window": null}, "last_successful": null}, "hypervisor": "kvm", + "watchdog_enabled": true, "tags": [], "host_uuid": "faa31587894a98bb0f66051164b3ffd2d941264a", + "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" + 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: + - Mon, 13 Apr 2026 14:37:25 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - linodes: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/linode/instances/95949807 + method: GET + response: + body: '{"id": 95949807, "label": "go-test-ins-7a80eb6i7p3y", "group": "", "status": + "running", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", + "type": "g6-nanode-1", "ipv4": ["172.239.239.174"], "ipv6": "1234::5678/128", + "image": "linode/debian12", "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}, "backups": {"enabled": false, "available": false, "schedule": + {"day": null, "window": null}, "last_successful": null}, "hypervisor": "kvm", + "watchdog_enabled": true, "tags": [], "host_uuid": "faa31587894a98bb0f66051164b3ffd2d941264a", + "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" + 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: + - Mon, 13 Apr 2026 14:37:40 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - linodes: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/regions?page=1 + method: GET + response: + 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", "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": + ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.233.33.36,172.233.33.38,172.233.33.35,172.233.33.39,172.233.33.34,172.233.33.33,172.233.33.31,172.233.33.30,172.233.33.37,172.233.33.32", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.239.11.24,172.239.11.22,172.239.11.17,172.239.11.20,172.239.11.23,172.239.11.19,172.239.11.21,172.239.11.15,172.239.11.16,172.239.11.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": "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", "NodeBalancers"], "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": 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"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.236.129.8,172.236.129.42,172.236.129.41,172.236.129.19,172.236.129.46,172.236.129.23,172.236.129.48,172.236.129.20,172.236.129.21,172.236.129.47", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "de-fra-2", + "label": "Frankfurt 2, DE", "country": "de", "capabilities": ["Linodes", "Block + Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", + "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"], "metrics": ["Managed + Databases", "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.236.203.9,172.236.203.16,172.236.203.19,172.236.203.15,172.236.203.17,172.236.203.11,172.236.203.18,172.236.203.14,172.236.203.13,172.236.203.12", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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", + "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"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.236.171.41,172.236.171.42,172.236.171.25,172.236.171.44,172.236.171.26,172.236.171.45,172.236.171.24,172.236.171.43,172.236.171.27,172.236.171.28", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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", + "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": "172.236.32.23,172.236.32.35,172.236.32.30,172.236.32.28,172.236.32.32,172.236.32.33,172.236.32.27,172.236.32.37,172.236.32.29,172.236.32.34", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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", "NodeBalancers"], "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": 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", "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"], "metrics": ["Managed + Databases", "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.233.128.45,172.233.128.38,172.233.128.53,172.233.128.37,172.233.128.34,172.233.128.36,172.233.128.33,172.233.128.39,172.233.128.43,172.233.128.44", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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", + "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.232.224.23,172.232.224.32,172.232.224.26,172.232.224.27,172.232.224.21,172.232.224.24,172.232.224.22,172.232.224.20,172.232.224.31,172.232.224.28", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.233.160.34,172.233.160.27,172.233.160.30,172.233.160.29,172.233.160.32,172.233.160.28,172.233.160.33,172.233.160.26,172.233.160.25,172.233.160.31", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "172.232.192.19,172.232.192.18,172.232.192.16,172.232.192.20,172.232.192.24,172.232.192.21,172.232.192.22,172.232.192.17,172.232.192.15,172.232.192.23", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "172.233.64.44,172.233.64.43,172.233.64.37,172.233.64.40,172.233.64.46,172.233.64.41,172.233.64.39,172.233.64.42,172.233.64.45,172.233.64.38", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.232.96.17,172.232.96.26,172.232.96.19,172.232.96.20,172.232.96.25,172.232.96.21,172.232.96.18,172.232.96.22,172.232.96.23,172.232.96.24", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "172.233.111.6,172.233.111.17,172.233.111.21,172.233.111.25,172.233.111.19,172.233.111.12,172.233.111.26,172.233.111.16,172.233.111.18,172.233.111.9", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "172.232.128.24,172.232.128.26,172.232.128.20,172.232.128.22,172.232.128.25,172.232.128.19,172.232.128.23,172.232.128.18,172.232.128.21,172.232.128.27", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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", "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-sea", + "label": "Seattle, WA", "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", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.232.160.19,172.232.160.21,172.232.160.17,172.232.160.15,172.232.160.18,172.232.160.8,172.232.160.12,172.232.160.11,172.232.160.14,172.232.160.16", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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.232.32.21,172.232.32.23,172.232.32.17,172.232.32.18,172.232.32.16,172.232.32.22,172.232.32.20,172.232.32.14,172.232.32.11,172.232.32.12", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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", "NodeBalancers"], "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": 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": "139.144.192.62,139.144.192.60,139.144.192.61,139.144.192.53,139.144.192.54,139.144.192.67,139.144.192.69,139.144.192.66,139.144.192.52,139.144.192.68", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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": 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", + "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-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", + "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": "us-central", + "label": "Dallas, TX", "country": "us", "capabilities": ["Linodes", "Block Storage + Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", + "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", "Managed + Databases", "Metadata", "Placement Group", "StackScripts", "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", "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", "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", "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", "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, 109.74.192.20, 109.74.193.20, 109.74.194.20", + "ipv6": "1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, + 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678"}, "placement_group_limits": + {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5, "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", "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", "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", "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": 32}' + 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: + - Mon, 13 Apr 2026 14:37:40 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-vol-testde90ku231u8i","region":"nl-ams","tags":null}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/volumes + method: POST + response: + body: '{"id": 15106232, "status": "creating", "label": "go-vol-testde90ku231u8i", + "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "filesystem_path": + "/dev/disk/by-id/scsi-0Linode_Volume_go-vol-testde90ku231u8i", "size": 20, "linode_id": + null, "linode_label": null, "io_ready": false, "region": "nl-ams", "tags": [], + "hardware_type": "nvme", "encryption": "enabled", "locks": []}' + 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: + - "391" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Mon, 13 Apr 2026 14:37:41 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - volumes:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "100" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" +- request: + body: '{"linode_id":95949807}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/volumes/15106232/attach + method: POST + response: + body: '{"id": 15106232, "status": "creating", "label": "go-vol-testde90ku231u8i", + "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "filesystem_path": + "/dev/disk/by-id/scsi-0Linode_Volume_go-vol-testde90ku231u8i", "size": 20, "linode_id": + 95949807, "linode_label": "go-test-ins-7a80eb6i7p3y", "io_ready": false, "region": + "nl-ams", "tags": [], "hardware_type": "nvme", "encryption": "enabled", "locks": + []}' + 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: + - "417" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Mon, 13 Apr 2026 14:37:41 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - volumes:read_write,linodes: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/volumes/15106232 + method: GET + response: + body: '{"id": 15106232, "status": "active", "label": "go-vol-testde90ku231u8i", + "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "filesystem_path": + "/dev/disk/by-id/scsi-0Linode_Volume_go-vol-testde90ku231u8i", "size": 20, "linode_id": + 95949807, "linode_label": "go-test-ins-7a80eb6i7p3y", "io_ready": true, "region": + "nl-ams", "tags": [], "hardware_type": "nvme", "encryption": "enabled", "locks": + []}' + 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: + - "414" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Mon, 13 Apr 2026 14:37:57 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - volumes: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/volumes/15106232 + method: GET + response: + body: '{"id": 15106232, "status": "active", "label": "go-vol-testde90ku231u8i", + "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "filesystem_path": + "/dev/disk/by-id/scsi-0Linode_Volume_go-vol-testde90ku231u8i", "size": 20, "linode_id": + 95949807, "linode_label": "go-test-ins-7a80eb6i7p3y", "io_ready": true, "region": + "nl-ams", "tags": [], "hardware_type": "nvme", "encryption": "enabled", "locks": + []}' + 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: + - "414" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Mon, 13 Apr 2026 14:37:57 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - volumes: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/volumes/15106232/detach + method: POST + 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: + - Mon, 13 Apr 2026 14:37:57 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - volumes:read_write,linodes: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/volumes/15106232 + method: GET + response: + body: '{"id": 15106232, "status": "active", "label": "go-vol-testde90ku231u8i", + "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "filesystem_path": + "/dev/disk/by-id/scsi-0Linode_Volume_go-vol-testde90ku231u8i", "size": 20, "linode_id": + null, "linode_label": null, "io_ready": false, "region": "nl-ams", "tags": [], + "hardware_type": "nvme", "encryption": "enabled", "locks": []}' + 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: + - "389" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Mon, 13 Apr 2026 14:38:12 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - volumes: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/volumes/15106232 + method: GET + response: + body: '{"id": 15106232, "status": "active", "label": "go-vol-testde90ku231u8i", + "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "filesystem_path": + "/dev/disk/by-id/scsi-0Linode_Volume_go-vol-testde90ku231u8i", "size": 20, "linode_id": + null, "linode_label": null, "io_ready": false, "region": "nl-ams", "tags": [], + "hardware_type": "nvme", "encryption": "enabled", "locks": []}' + 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: + - "389" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Mon, 13 Apr 2026 14:38:13 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - volumes: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/volumes/15106232 + 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: + - Mon, 13 Apr 2026 14:38:13 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - volumes: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/TestIAM_GetIOReadyForNotAttachedVolume.yaml b/test/integration/fixtures/TestIAM_GetIOReadyForNotAttachedVolume.yaml new file mode 100644 index 000000000..0260c58ad --- /dev/null +++ b/test/integration/fixtures/TestIAM_GetIOReadyForNotAttachedVolume.yaml @@ -0,0 +1,663 @@ +--- +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": "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", "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": + ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.233.33.36,172.233.33.38,172.233.33.35,172.233.33.39,172.233.33.34,172.233.33.33,172.233.33.31,172.233.33.30,172.233.33.37,172.233.33.32", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.239.11.24,172.239.11.22,172.239.11.17,172.239.11.20,172.239.11.23,172.239.11.19,172.239.11.21,172.239.11.15,172.239.11.16,172.239.11.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": "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", "NodeBalancers"], "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": 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"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.236.129.8,172.236.129.42,172.236.129.41,172.236.129.19,172.236.129.46,172.236.129.23,172.236.129.48,172.236.129.20,172.236.129.21,172.236.129.47", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "de-fra-2", + "label": "Frankfurt 2, DE", "country": "de", "capabilities": ["Linodes", "Block + Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", + "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"], "metrics": ["Managed + Databases", "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.236.203.9,172.236.203.16,172.236.203.19,172.236.203.15,172.236.203.17,172.236.203.11,172.236.203.18,172.236.203.14,172.236.203.13,172.236.203.12", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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", + "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"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.236.171.41,172.236.171.42,172.236.171.25,172.236.171.44,172.236.171.26,172.236.171.45,172.236.171.24,172.236.171.43,172.236.171.27,172.236.171.28", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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", + "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": "172.236.32.23,172.236.32.35,172.236.32.30,172.236.32.28,172.236.32.32,172.236.32.33,172.236.32.27,172.236.32.37,172.236.32.29,172.236.32.34", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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", "NodeBalancers"], "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": 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", "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"], "metrics": ["Managed + Databases", "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.233.128.45,172.233.128.38,172.233.128.53,172.233.128.37,172.233.128.34,172.233.128.36,172.233.128.33,172.233.128.39,172.233.128.43,172.233.128.44", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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", + "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.232.224.23,172.232.224.32,172.232.224.26,172.232.224.27,172.232.224.21,172.232.224.24,172.232.224.22,172.232.224.20,172.232.224.31,172.232.224.28", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.233.160.34,172.233.160.27,172.233.160.30,172.233.160.29,172.233.160.32,172.233.160.28,172.233.160.33,172.233.160.26,172.233.160.25,172.233.160.31", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "172.232.192.19,172.232.192.18,172.232.192.16,172.232.192.20,172.232.192.24,172.232.192.21,172.232.192.22,172.232.192.17,172.232.192.15,172.232.192.23", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "172.233.64.44,172.233.64.43,172.233.64.37,172.233.64.40,172.233.64.46,172.233.64.41,172.233.64.39,172.233.64.42,172.233.64.45,172.233.64.38", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.232.96.17,172.232.96.26,172.232.96.19,172.232.96.20,172.232.96.25,172.232.96.21,172.232.96.18,172.232.96.22,172.232.96.23,172.232.96.24", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "172.233.111.6,172.233.111.17,172.233.111.21,172.233.111.25,172.233.111.19,172.233.111.12,172.233.111.26,172.233.111.16,172.233.111.18,172.233.111.9", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "172.232.128.24,172.232.128.26,172.232.128.20,172.232.128.22,172.232.128.25,172.232.128.19,172.232.128.23,172.232.128.18,172.232.128.21,172.232.128.27", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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", "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-sea", + "label": "Seattle, WA", "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", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.232.160.19,172.232.160.21,172.232.160.17,172.232.160.15,172.232.160.18,172.232.160.8,172.232.160.12,172.232.160.11,172.232.160.14,172.232.160.16", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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.232.32.21,172.232.32.23,172.232.32.17,172.232.32.18,172.232.32.16,172.232.32.22,172.232.32.20,172.232.32.14,172.232.32.11,172.232.32.12", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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", "NodeBalancers"], "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": 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": "139.144.192.62,139.144.192.60,139.144.192.61,139.144.192.53,139.144.192.54,139.144.192.67,139.144.192.69,139.144.192.66,139.144.192.52,139.144.192.68", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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": 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", + "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-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", + "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": "us-central", + "label": "Dallas, TX", "country": "us", "capabilities": ["Linodes", "Block Storage + Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", + "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", "Managed + Databases", "Metadata", "Placement Group", "StackScripts", "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", "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", "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", "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", "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, 109.74.192.20, 109.74.193.20, 109.74.194.20", + "ipv6": "1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, + 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678"}, "placement_group_limits": + {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5, "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", "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", "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", "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": 32}' + 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: + - Mon, 13 Apr 2026 14:36:21 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-def","region":"nl-ams","tags":null}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/volumes + method: POST + response: + body: '{"id": 15106213, "status": "creating", "label": "go-test-def", "created": + "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "filesystem_path": + "/dev/disk/by-id/scsi-0Linode_Volume_go-test-def", "size": 20, "linode_id": + null, "linode_label": null, "io_ready": false, "region": "nl-ams", "tags": [], + "hardware_type": "nvme", "encryption": "enabled", "locks": []}' + 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: + - "367" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Mon, 13 Apr 2026 14:36:22 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - volumes:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "100" + 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/volumes/15106213 + method: GET + response: + body: '{"id": 15106213, "status": "active", "label": "go-test-def", "created": + "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "filesystem_path": + "/dev/disk/by-id/scsi-0Linode_Volume_go-test-def", "size": 20, "linode_id": + null, "linode_label": null, "io_ready": false, "region": "nl-ams", "tags": [], + "hardware_type": "nvme", "encryption": "enabled", "locks": []}' + 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: + - "365" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Mon, 13 Apr 2026 14:36:37 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - volumes: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/volumes/15106213 + method: GET + response: + body: '{"id": 15106213, "status": "active", "label": "go-test-def", "created": + "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "filesystem_path": + "/dev/disk/by-id/scsi-0Linode_Volume_go-test-def", "size": 20, "linode_id": + null, "linode_label": null, "io_ready": false, "region": "nl-ams", "tags": [], + "hardware_type": "nvme", "encryption": "enabled", "locks": []}' + 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: + - "365" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Mon, 13 Apr 2026 14:36:37 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - volumes: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/volumes/15106213 + 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: + - Mon, 13 Apr 2026 14:36:38 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - volumes: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/iam_io_ready_test.go b/test/integration/iam_io_ready_test.go new file mode 100644 index 000000000..fb77ccd44 --- /dev/null +++ b/test/integration/iam_io_ready_test.go @@ -0,0 +1,96 @@ +package integration + +import ( + "context" + "testing" + + "github.com/linode/linodego" + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" +) + +func setupVolumeAttachedToLinode( + t *testing.T, + fixturesYaml string, +) (*linodego.Client, *linodego.Volume, *linodego.Instance, func(), error) { + t.Helper() + var fixtureTeardown func() + client, fixtureTeardown := createTestClient(t, fixturesYaml) + + _, instance, teardownInstance, err := setupInstance( + t, "fixtures/TestIAM_GetIOReadyForAttachedVolume", true, func(l *linodego.Client, options *linodego.InstanceCreateOptions) { + options.Booted = linodego.Pointer(true) + }) + require.NoErrorf(t, err, "Error setting up Linode instance: %v", err) + + instance, err = client.WaitForInstanceStatus(context.Background(), instance.ID, linodego.InstanceRunning, 180) + require.NoErrorf(t, err, "Error waiting for instance to be running: %v", err) + + volume, teardownVolume, err := createVolume(t, client, func(l *linodego.Client, options *linodego.VolumeCreateOptions) { + options.Region = instance.Region + }) + require.NoErrorf(t, err, "Error creating volume: %v", err) + + volume, err = client.AttachVolume(context.Background(), volume.ID, &linodego.VolumeAttachOptions{LinodeID: instance.ID}) + require.NoErrorf(t, err, "Error attaching volume to instance: %v", err) + + volume, err = client.WaitForVolumeIOReadyStatus(context.Background(), volume.ID, true, 30) + require.NoErrorf(t, err, "Error waiting for IO Ready status of attached volume: %v", err) + + teardown := func() { + teardownVolume() + teardownInstance() + fixtureTeardown() + } + + return client, volume, instance, teardown, err +} + +func TestIAM_GetIOReadyForNotAttachedVolume(t *testing.T) { + client, recordStopper := createTestClient(t, "fixtures/TestIAM_GetIOReadyForNotAttachedVolume") + defer recordStopper() + + volume, teardown, err := createVolume(t, client, func(l *linodego.Client, options *linodego.VolumeCreateOptions) { + options.Label = label + }) + defer teardown() + require.NoErrorf(t, err, "Error creating not attached volume: %v", err) + + volume, err = client.WaitForVolumeStatus(context.Background(), volume.ID, linodego.VolumeActive, 30) + require.NoErrorf(t, err, "Error waiting for volume to be active: %v", err) + + volume, err = client.GetVolume(context.Background(), volume.ID) + require.NoErrorf(t, err, "Error getting not attached volume: %v", err) + + assert.Equal(t, label, volume.Label) + assert.Equal(t, linodego.VolumeActive, volume.Status) + assert.Empty(t, volume.LinodeID) + assert.Empty(t, volume.LinodeLabel) + assert.False(t, volume.IOReady) +} + +func TestIAM_GetIOReadyForAttachedDetachedVolume(t *testing.T) { + client, volume, instance, teardown, err := setupVolumeAttachedToLinode(t, "fixtures/TestIAM_GetIOReadyForAttachedDetachedVolume") + defer teardown() + require.NoErrorf(t, err, "Error setting up volume attached to Linode: %v", err) + + volume, err = client.GetVolume(context.Background(), volume.ID) + require.NoErrorf(t, err, "Error getting volume after detaching from instance: %v", err) + + assert.Equal(t, instance.ID, *volume.LinodeID) + assert.Equal(t, instance.Label, volume.LinodeLabel) + assert.True(t, volume.IOReady) + + err = client.DetachVolume(context.Background(), volume.ID) + require.NoErrorf(t, err, "Error detaching volume: %v", err) + + volume, err = client.WaitForVolumeIOReadyStatus(context.Background(), volume.ID, false, 30) + require.NoErrorf(t, err, "Error waiting for IO Ready status of attached volume: %v", err) + + volume, err = client.GetVolume(context.Background(), volume.ID) + require.NoErrorf(t, err, "Error getting volume after detaching from instance: %v", err) + + assert.Empty(t, volume.LinodeID) + assert.Empty(t, volume.LinodeLabel) + assert.False(t, volume.IOReady) +} diff --git a/waitfor.go b/waitfor.go index bfe588cc4..b6af2956e 100644 --- a/waitfor.go +++ b/waitfor.go @@ -820,3 +820,29 @@ func (client Client) WaitForAlertDefinitionStatus( } } } + +func (client Client) WaitForVolumeIOReadyStatus(ctx context.Context, volumeID int, status bool, timeoutSeconds int) (*Volume, error) { + ctx, cancel := context.WithTimeout(ctx, time.Duration(timeoutSeconds)*time.Second) + defer cancel() + + ticker := time.NewTicker(client.pollInterval) + defer ticker.Stop() + + for { + select { + case <-ticker.C: + volume, err := client.GetVolume(ctx, volumeID) + if err != nil { + return volume, err + } + + complete := (volume.IOReady == status) + + if complete { + return volume, nil + } + case <-ctx.Done(): + return nil, fmt.Errorf("Error waiting for Volume %d IO Ready status %s: %w", volumeID, status, ctx.Err()) + } + } +} From 6bc1545b64b0f328d71fee0890453edf21a15386 Mon Sep 17 00:00:00 2001 From: Maciej Wilk Date: Tue, 14 Apr 2026 11:53:42 +0200 Subject: [PATCH 02/15] Update assertions; add detachVolume param to setupVolumeAttachedToLinode --- test/integration/iam_io_ready_test.go | 41 +++++++++++++++++++++------ 1 file changed, 32 insertions(+), 9 deletions(-) diff --git a/test/integration/iam_io_ready_test.go b/test/integration/iam_io_ready_test.go index fb77ccd44..893e996b7 100644 --- a/test/integration/iam_io_ready_test.go +++ b/test/integration/iam_io_ready_test.go @@ -12,7 +12,8 @@ import ( func setupVolumeAttachedToLinode( t *testing.T, fixturesYaml string, -) (*linodego.Client, *linodego.Volume, *linodego.Instance, func(), error) { + detachVolume bool, +) (*linodego.Client, *linodego.Volume, *linodego.Instance, func()) { t.Helper() var fixtureTeardown func() client, fixtureTeardown := createTestClient(t, fixturesYaml) @@ -34,16 +35,23 @@ func setupVolumeAttachedToLinode( volume, err = client.AttachVolume(context.Background(), volume.ID, &linodego.VolumeAttachOptions{LinodeID: instance.ID}) require.NoErrorf(t, err, "Error attaching volume to instance: %v", err) - volume, err = client.WaitForVolumeIOReadyStatus(context.Background(), volume.ID, true, 30) + volume, err = client.WaitForVolumeIOReadyStatus(context.Background(), volume.ID, true, 45) require.NoErrorf(t, err, "Error waiting for IO Ready status of attached volume: %v", err) teardown := func() { + if detachVolume { + err = client.DetachVolume(context.Background(), volume.ID) + require.NoErrorf(t, err, "Error detaching volume: %v", err) + + _, err = client.WaitForVolumeIOReadyStatus(context.Background(), volume.ID, false, 45) + require.NoErrorf(t, err, "Error waiting for IO Ready status of attached volume: %v", err) + } teardownVolume() teardownInstance() fixtureTeardown() } - return client, volume, instance, teardown, err + return client, volume, instance, teardown } func TestIAM_GetIOReadyForNotAttachedVolume(t *testing.T) { @@ -59,9 +67,16 @@ func TestIAM_GetIOReadyForNotAttachedVolume(t *testing.T) { volume, err = client.WaitForVolumeStatus(context.Background(), volume.ID, linodego.VolumeActive, 30) require.NoErrorf(t, err, "Error waiting for volume to be active: %v", err) + volumeList, err := client.ListVolumes(context.Background(), nil) + require.NoErrorf(t, err, "Error listing volumes: %v", err) + assert.Equal(t, label, volumeList[0].Label) + assert.Equal(t, linodego.VolumeActive, volumeList[0].Status) + assert.Empty(t, volumeList[0].LinodeID) + assert.Empty(t, volumeList[0].LinodeLabel) + assert.False(t, volumeList[0].IOReady) + volume, err = client.GetVolume(context.Background(), volume.ID) require.NoErrorf(t, err, "Error getting not attached volume: %v", err) - assert.Equal(t, label, volume.Label) assert.Equal(t, linodego.VolumeActive, volume.Status) assert.Empty(t, volume.LinodeID) @@ -70,13 +85,18 @@ func TestIAM_GetIOReadyForNotAttachedVolume(t *testing.T) { } func TestIAM_GetIOReadyForAttachedDetachedVolume(t *testing.T) { - client, volume, instance, teardown, err := setupVolumeAttachedToLinode(t, "fixtures/TestIAM_GetIOReadyForAttachedDetachedVolume") + client, volume, instance, teardown := setupVolumeAttachedToLinode(t, "fixtures/TestIAM_GetIOReadyForAttachedDetachedVolume", false) defer teardown() - require.NoErrorf(t, err, "Error setting up volume attached to Linode: %v", err) + + instanceVolumes, err := client.ListInstanceVolumes(context.Background(), instance.ID, nil) + require.NoErrorf(t, err, "Error listing instance volumes: %v", err) + require.Len(t, instanceVolumes, 1, "Expected 1 volume attached to instance, got %d", len(instanceVolumes)) + assert.Equal(t, *instanceVolumes[0].LinodeID, *volume.LinodeID) + assert.Equal(t, instanceVolumes[0].LinodeLabel, volume.LinodeLabel) + assert.True(t, instanceVolumes[0].IOReady) volume, err = client.GetVolume(context.Background(), volume.ID) require.NoErrorf(t, err, "Error getting volume after detaching from instance: %v", err) - assert.Equal(t, instance.ID, *volume.LinodeID) assert.Equal(t, instance.Label, volume.LinodeLabel) assert.True(t, volume.IOReady) @@ -84,12 +104,15 @@ func TestIAM_GetIOReadyForAttachedDetachedVolume(t *testing.T) { err = client.DetachVolume(context.Background(), volume.ID) require.NoErrorf(t, err, "Error detaching volume: %v", err) - volume, err = client.WaitForVolumeIOReadyStatus(context.Background(), volume.ID, false, 30) + volume, err = client.WaitForVolumeIOReadyStatus(context.Background(), volume.ID, false, 45) require.NoErrorf(t, err, "Error waiting for IO Ready status of attached volume: %v", err) + instanceVolumes, err = client.ListInstanceVolumes(context.Background(), instance.ID, nil) + require.NoErrorf(t, err, "Error listing instance volumes: %v", err) + require.Len(t, instanceVolumes, 0, "Expected no volumes attached to instance, got %d", len(instanceVolumes)) + volume, err = client.GetVolume(context.Background(), volume.ID) require.NoErrorf(t, err, "Error getting volume after detaching from instance: %v", err) - assert.Empty(t, volume.LinodeID) assert.Empty(t, volume.LinodeLabel) assert.False(t, volume.IOReady) From 439f80400c0bc2a91057d5c9e9310b2b3602fa75 Mon Sep 17 00:00:00 2001 From: Maciej Wilk Date: Tue, 14 Apr 2026 13:56:40 +0200 Subject: [PATCH 03/15] Add IO ready int tests for updated volume --- test/integration/iam_io_ready_test.go | 51 +++++++++++++++++++++++---- test/integration/volumes_test.go | 3 ++ 2 files changed, 47 insertions(+), 7 deletions(-) diff --git a/test/integration/iam_io_ready_test.go b/test/integration/iam_io_ready_test.go index 893e996b7..d406aee57 100644 --- a/test/integration/iam_io_ready_test.go +++ b/test/integration/iam_io_ready_test.go @@ -44,7 +44,7 @@ func setupVolumeAttachedToLinode( require.NoErrorf(t, err, "Error detaching volume: %v", err) _, err = client.WaitForVolumeIOReadyStatus(context.Background(), volume.ID, false, 45) - require.NoErrorf(t, err, "Error waiting for IO Ready status of attached volume: %v", err) + require.NoErrorf(t, err, "Error waiting for IO Ready status of detached volume: %v", err) } teardownVolume() teardownInstance() @@ -91,12 +91,12 @@ func TestIAM_GetIOReadyForAttachedDetachedVolume(t *testing.T) { instanceVolumes, err := client.ListInstanceVolumes(context.Background(), instance.ID, nil) require.NoErrorf(t, err, "Error listing instance volumes: %v", err) require.Len(t, instanceVolumes, 1, "Expected 1 volume attached to instance, got %d", len(instanceVolumes)) - assert.Equal(t, *instanceVolumes[0].LinodeID, *volume.LinodeID) - assert.Equal(t, instanceVolumes[0].LinodeLabel, volume.LinodeLabel) + assert.Equal(t, instance.ID, *instanceVolumes[0].LinodeID) + assert.Equal(t, instance.Label, instanceVolumes[0].LinodeLabel) assert.True(t, instanceVolumes[0].IOReady) volume, err = client.GetVolume(context.Background(), volume.ID) - require.NoErrorf(t, err, "Error getting volume after detaching from instance: %v", err) + require.NoErrorf(t, err, "Error getting attached volume: %v", err) assert.Equal(t, instance.ID, *volume.LinodeID) assert.Equal(t, instance.Label, volume.LinodeLabel) assert.True(t, volume.IOReady) @@ -105,15 +105,52 @@ func TestIAM_GetIOReadyForAttachedDetachedVolume(t *testing.T) { require.NoErrorf(t, err, "Error detaching volume: %v", err) volume, err = client.WaitForVolumeIOReadyStatus(context.Background(), volume.ID, false, 45) - require.NoErrorf(t, err, "Error waiting for IO Ready status of attached volume: %v", err) + require.NoErrorf(t, err, "Error waiting for IO Ready status of detached volume: %v", err) instanceVolumes, err = client.ListInstanceVolumes(context.Background(), instance.ID, nil) - require.NoErrorf(t, err, "Error listing instance volumes: %v", err) + require.NoErrorf(t, err, "Error listing instance volumes after detach: %v", err) require.Len(t, instanceVolumes, 0, "Expected no volumes attached to instance, got %d", len(instanceVolumes)) volume, err = client.GetVolume(context.Background(), volume.ID) - require.NoErrorf(t, err, "Error getting volume after detaching from instance: %v", err) + require.NoErrorf(t, err, "Error getting volume after detach: %v", err) assert.Empty(t, volume.LinodeID) assert.Empty(t, volume.LinodeLabel) assert.False(t, volume.IOReady) } + +func TestIAM_GetIOReadyForUpdatedVolume(t *testing.T) { + client, volume, instance, teardown := setupVolumeAttachedToLinode(t, "fixtures/TestIAM_GetIOReadyForUpdatedVolume", true) + defer teardown() + assert.Equal(t, instance.ID, *volume.LinodeID) + assert.Equal(t, instance.Label, volume.LinodeLabel) + assert.NotContains(t, "-updated", volume.Label) + assert.Empty(t, volume.Tags) + assert.True(t, volume.IOReady) + + labelUpdated := volume.Label + "-updated" + tagsUpdated := []string{"updated"} + + updateOpts := linodego.VolumeUpdateOptions{ + Label: labelUpdated, + Tags: &tagsUpdated, + } + volume, err := client.UpdateVolume(context.Background(), volume.ID, updateOpts) + require.NoErrorf(t, err, "Error updating volume: %v", err) + + instanceVolumes, err := client.ListInstanceVolumes(context.Background(), instance.ID, nil) + require.NoErrorf(t, err, "Error listing instance volumes: %v", err) + require.Len(t, instanceVolumes, 1, "Expected 1 volume attached to instance, got %d", len(instanceVolumes)) + assert.Equal(t, instance.ID, *instanceVolumes[0].LinodeID) + assert.Equal(t, instance.Label, instanceVolumes[0].LinodeLabel) + assert.Equal(t, labelUpdated, instanceVolumes[0].Label) + assert.Equal(t, tagsUpdated, instanceVolumes[0].Tags) + assert.True(t, instanceVolumes[0].IOReady) + + volume, err = client.GetVolume(context.Background(), volume.ID) + require.NoErrorf(t, err, "Error getting updated volume: %v", err) + assert.Equal(t, instance.ID, *volume.LinodeID) + assert.Equal(t, instance.Label, volume.LinodeLabel) + assert.Equal(t, labelUpdated, volume.Label) + assert.Equal(t, tagsUpdated, volume.Tags) + assert.True(t, volume.IOReady) +} diff --git a/test/integration/volumes_test.go b/test/integration/volumes_test.go index 0060dfe7c..f076e0906 100644 --- a/test/integration/volumes_test.go +++ b/test/integration/volumes_test.go @@ -244,6 +244,9 @@ func TestVolume_Update(t *testing.T) { if volume.Label != updatedLabel { t.Errorf("Expected volume label to be equal to updated volume label") } + if volume.IOReady { + t.Errorf("Expected volume IOReady to be False, got True") + } assertDateSet(t, volume.Created) assertDateSet(t, volume.Updated) } From 2109e75e821f21ae3b158eea1bdd935cf8021e4e Mon Sep 17 00:00:00 2001 From: Maciej Wilk Date: Tue, 14 Apr 2026 15:02:16 +0200 Subject: [PATCH 04/15] Add IO ready int tests for cloned and resized volume --- test/integration/iam_io_ready_test.go | 74 +++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) diff --git a/test/integration/iam_io_ready_test.go b/test/integration/iam_io_ready_test.go index d406aee57..47691f982 100644 --- a/test/integration/iam_io_ready_test.go +++ b/test/integration/iam_io_ready_test.go @@ -154,3 +154,77 @@ func TestIAM_GetIOReadyForUpdatedVolume(t *testing.T) { assert.Equal(t, tagsUpdated, volume.Tags) assert.True(t, volume.IOReady) } + +func TestIAM_GetIOReadyForClonedVolume(t *testing.T) { + client, volume, instance, teardown := setupVolumeAttachedToLinode(t, "fixtures/TestIAM_GetIOReadyForClonedVolume", true) + defer teardown() + assert.Equal(t, instance.ID, *volume.LinodeID) + assert.Equal(t, instance.Label, volume.LinodeLabel) + assert.True(t, volume.IOReady) + + labelCloned := volume.Label + "-cloned" + + instanceVolumes, err := client.ListInstanceVolumes(context.Background(), instance.ID, nil) + require.NoErrorf(t, err, "Error listing instance volumes: %v", err) + require.Len(t, instanceVolumes, 1, "Expected 1 volume attached to instance, got %d", len(instanceVolumes)) + + volumeCloned, err := client.CloneVolume(context.Background(), volume.ID, labelCloned) + require.NoErrorf(t, err, "Error cloning volume: %v", err) + + instanceVolumes, err = client.ListInstanceVolumes(context.Background(), instance.ID, nil) + require.NoErrorf(t, err, "Error listing instance volumes: %v", err) + require.Len(t, instanceVolumes, 2, "Expected 2 volumes attached to instance, got %d", len(instanceVolumes)) + for _, vol := range instanceVolumes { + assert.Equal(t, instance.ID, *vol.LinodeID) + assert.Equal(t, instance.Label, vol.LinodeLabel) + assert.True(t, vol.IOReady) + } + + volumeCloned, err = client.GetVolume(context.Background(), volumeCloned.ID) + require.NoErrorf(t, err, "Error getting cloned volume: %v", err) + assert.Equal(t, labelCloned, volumeCloned.Label) + assert.Equal(t, instance.ID, *volumeCloned.LinodeID) + assert.Equal(t, instance.Label, volumeCloned.LinodeLabel) + assert.True(t, volume.IOReady) + + // Cleaning the cloned volume + err = client.DetachVolume(context.Background(), volumeCloned.ID) + require.NoErrorf(t, err, "Error detaching cloned volume: %v", err) + + _, err = client.WaitForVolumeIOReadyStatus(context.Background(), volume.ID, false, 15) + require.NoErrorf(t, err, "Error waiting for IO Ready status of detached volume: %v", err) + + err = client.DeleteVolume(context.Background(), volumeCloned.ID) + require.NoErrorf(t, err, "Error deleting cloned volume: %v", err) +} + +func TestIAM_GetIOReadyForResizedVolume(t *testing.T) { + client, volume, instance, teardown := setupVolumeAttachedToLinode(t, "fixtures/TestIAM_GetIOReadyForResizedVolume", true) + defer teardown() + assert.Equal(t, instance.ID, *volume.LinodeID) + assert.Equal(t, instance.Label, volume.LinodeLabel) + assert.True(t, volume.IOReady) + + newSize := volume.Size + 10 + + err := client.ResizeVolume(context.Background(), volume.ID, newSize) + require.NoErrorf(t, err, "Error resizing volume: %v", err) + + _, err = client.WaitForVolumeStatus(context.Background(), volume.ID, linodego.VolumeActive, 30) + require.NoErrorf(t, err, "Error waiting for volume to be active: %v", err) + + instanceVolumes, err := client.ListInstanceVolumes(context.Background(), instance.ID, nil) + require.NoErrorf(t, err, "Error listing instance volumes: %v", err) + require.Len(t, instanceVolumes, 1, "Expected 1 volume attached to instance, got %d", len(instanceVolumes)) + assert.Equal(t, instance.ID, *instanceVolumes[0].LinodeID) + assert.Equal(t, instance.Label, instanceVolumes[0].LinodeLabel) + assert.Equal(t, newSize, instanceVolumes[0].Size) + assert.True(t, instanceVolumes[0].IOReady) + + volume, err = client.GetVolume(context.Background(), volume.ID) + require.NoErrorf(t, err, "Error getting updated volume: %v", err) + assert.Equal(t, instance.ID, *volume.LinodeID) + assert.Equal(t, instance.Label, volume.LinodeLabel) + assert.Equal(t, newSize, volume.Size) + assert.True(t, volume.IOReady) +} From e8b276bc619e72b0d2a2d8f7784290dc31897870 Mon Sep 17 00:00:00 2001 From: Maciej Wilk Date: Tue, 14 Apr 2026 15:27:55 +0200 Subject: [PATCH 05/15] Add FOR to iterate over volumeList in TestIAM_GetIOReadyForNotAttachedVolume --- test/integration/iam_io_ready_test.go | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/test/integration/iam_io_ready_test.go b/test/integration/iam_io_ready_test.go index 47691f982..4d0feca8c 100644 --- a/test/integration/iam_io_ready_test.go +++ b/test/integration/iam_io_ready_test.go @@ -19,7 +19,7 @@ func setupVolumeAttachedToLinode( client, fixtureTeardown := createTestClient(t, fixturesYaml) _, instance, teardownInstance, err := setupInstance( - t, "fixtures/TestIAM_GetIOReadyForAttachedVolume", true, func(l *linodego.Client, options *linodego.InstanceCreateOptions) { + t, fixturesYaml, true, func(l *linodego.Client, options *linodego.InstanceCreateOptions) { options.Booted = linodego.Pointer(true) }) require.NoErrorf(t, err, "Error setting up Linode instance: %v", err) @@ -69,11 +69,14 @@ func TestIAM_GetIOReadyForNotAttachedVolume(t *testing.T) { volumeList, err := client.ListVolumes(context.Background(), nil) require.NoErrorf(t, err, "Error listing volumes: %v", err) - assert.Equal(t, label, volumeList[0].Label) - assert.Equal(t, linodego.VolumeActive, volumeList[0].Status) - assert.Empty(t, volumeList[0].LinodeID) - assert.Empty(t, volumeList[0].LinodeLabel) - assert.False(t, volumeList[0].IOReady) + for _, vol := range volumeList { + if vol.Label == label { + assert.Equal(t, linodego.VolumeActive, volumeList[0].Status) + assert.Empty(t, volumeList[0].LinodeID) + assert.Empty(t, volumeList[0].LinodeLabel) + assert.False(t, volumeList[0].IOReady) + } + } volume, err = client.GetVolume(context.Background(), volume.ID) require.NoErrorf(t, err, "Error getting not attached volume: %v", err) From b0c7e4de44c9df56339fc0a42fb8c05ec51a6cdb Mon Sep 17 00:00:00 2001 From: Maciej Wilk Date: Wed, 15 Apr 2026 15:06:35 +0200 Subject: [PATCH 06/15] Remove setupInstance from setupVolumeAttachedToLinode as it uses different client --- test/integration/iam_io_ready_test.go | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/test/integration/iam_io_ready_test.go b/test/integration/iam_io_ready_test.go index 4d0feca8c..9f917508a 100644 --- a/test/integration/iam_io_ready_test.go +++ b/test/integration/iam_io_ready_test.go @@ -16,14 +16,19 @@ func setupVolumeAttachedToLinode( ) (*linodego.Client, *linodego.Volume, *linodego.Instance, func()) { t.Helper() var fixtureTeardown func() + client, fixtureTeardown := createTestClient(t, fixturesYaml) - _, instance, teardownInstance, err := setupInstance( - t, fixturesYaml, true, func(l *linodego.Client, options *linodego.InstanceCreateOptions) { - options.Booted = linodego.Pointer(true) - }) + instance, err := createInstance(t, client, true, func(l *linodego.Client, options *linodego.InstanceCreateOptions) { + options.Booted = linodego.Pointer(true) + }) require.NoErrorf(t, err, "Error setting up Linode instance: %v", err) + teardownInstance := func() { + err = client.DeleteInstance(context.Background(), instance.ID) + require.NoErrorf(t, err, "Error deleting instance: %v", err) + } + instance, err = client.WaitForInstanceStatus(context.Background(), instance.ID, linodego.InstanceRunning, 180) require.NoErrorf(t, err, "Error waiting for instance to be running: %v", err) @@ -159,6 +164,8 @@ func TestIAM_GetIOReadyForUpdatedVolume(t *testing.T) { } func TestIAM_GetIOReadyForClonedVolume(t *testing.T) { + t.Skip("Skipping test due to possible API defect - JIRA ticket: STORENGSUP-855") + client, volume, instance, teardown := setupVolumeAttachedToLinode(t, "fixtures/TestIAM_GetIOReadyForClonedVolume", true) defer teardown() assert.Equal(t, instance.ID, *volume.LinodeID) From 8c66c469565f311d633fef1932b5f8f9805c3562 Mon Sep 17 00:00:00 2001 From: Maciej Wilk Date: Wed, 15 Apr 2026 15:07:54 +0200 Subject: [PATCH 07/15] Add fixtures for TestIAM_GetIOReadyFor tests --- ...M_GetIOReadyForAttachedDetachedVolume.yaml | 843 ++++++- ...estIAM_GetIOReadyForNotAttachedVolume.yaml | 89 +- .../TestIAM_GetIOReadyForResizedVolume.yaml | 1958 +++++++++++++++++ .../TestIAM_GetIOReadyForUpdatedVolume.yaml | 1892 ++++++++++++++++ 4 files changed, 4718 insertions(+), 64 deletions(-) create mode 100644 test/integration/fixtures/TestIAM_GetIOReadyForResizedVolume.yaml create mode 100644 test/integration/fixtures/TestIAM_GetIOReadyForUpdatedVolume.yaml diff --git a/test/integration/fixtures/TestIAM_GetIOReadyForAttachedDetachedVolume.yaml b/test/integration/fixtures/TestIAM_GetIOReadyForAttachedDetachedVolume.yaml index 1ef3b7f2a..7f76311f4 100644 --- a/test/integration/fixtures/TestIAM_GetIOReadyForAttachedDetachedVolume.yaml +++ b/test/integration/fixtures/TestIAM_GetIOReadyForAttachedDetachedVolume.yaml @@ -11,18 +11,565 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/linode/instances/95949807 + url: https://api.linode.com/v4beta/regions?page=1 + method: GET + response: + 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", "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": + ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.233.33.36,172.233.33.38,172.233.33.35,172.233.33.39,172.233.33.34,172.233.33.33,172.233.33.31,172.233.33.30,172.233.33.37,172.233.33.32", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.239.11.24,172.239.11.22,172.239.11.17,172.239.11.20,172.239.11.23,172.239.11.19,172.239.11.21,172.239.11.15,172.239.11.16,172.239.11.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": "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", "NodeBalancers"], "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": 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"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.236.129.8,172.236.129.42,172.236.129.41,172.236.129.19,172.236.129.46,172.236.129.23,172.236.129.48,172.236.129.20,172.236.129.21,172.236.129.47", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "de-fra-2", + "label": "Frankfurt 2, DE", "country": "de", "capabilities": ["Linodes", "Block + Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", + "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"], "metrics": ["Managed + Databases", "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.236.203.9,172.236.203.16,172.236.203.19,172.236.203.15,172.236.203.17,172.236.203.11,172.236.203.18,172.236.203.14,172.236.203.13,172.236.203.12", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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", + "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"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.236.171.41,172.236.171.42,172.236.171.25,172.236.171.44,172.236.171.26,172.236.171.45,172.236.171.24,172.236.171.43,172.236.171.27,172.236.171.28", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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", + "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": "172.236.32.23,172.236.32.35,172.236.32.30,172.236.32.28,172.236.32.32,172.236.32.33,172.236.32.27,172.236.32.37,172.236.32.29,172.236.32.34", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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", "NodeBalancers"], "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": 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", "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"], "metrics": ["Managed + Databases", "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.233.128.45,172.233.128.38,172.233.128.53,172.233.128.37,172.233.128.34,172.233.128.36,172.233.128.33,172.233.128.39,172.233.128.43,172.233.128.44", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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", + "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.232.224.23,172.232.224.32,172.232.224.26,172.232.224.27,172.232.224.21,172.232.224.24,172.232.224.22,172.232.224.20,172.232.224.31,172.232.224.28", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.233.160.34,172.233.160.27,172.233.160.30,172.233.160.29,172.233.160.32,172.233.160.28,172.233.160.33,172.233.160.26,172.233.160.25,172.233.160.31", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "172.232.192.19,172.232.192.18,172.232.192.16,172.232.192.20,172.232.192.24,172.232.192.21,172.232.192.22,172.232.192.17,172.232.192.15,172.232.192.23", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "172.233.64.44,172.233.64.43,172.233.64.37,172.233.64.40,172.233.64.46,172.233.64.41,172.233.64.39,172.233.64.42,172.233.64.45,172.233.64.38", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.232.96.17,172.232.96.26,172.232.96.19,172.232.96.20,172.232.96.25,172.232.96.21,172.232.96.18,172.232.96.22,172.232.96.23,172.232.96.24", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "172.233.111.6,172.233.111.17,172.233.111.21,172.233.111.25,172.233.111.19,172.233.111.12,172.233.111.26,172.233.111.16,172.233.111.18,172.233.111.9", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "172.232.128.24,172.232.128.26,172.232.128.20,172.232.128.22,172.232.128.25,172.232.128.19,172.232.128.23,172.232.128.18,172.232.128.21,172.232.128.27", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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", "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-sea", + "label": "Seattle, WA", "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", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.232.160.19,172.232.160.21,172.232.160.17,172.232.160.15,172.232.160.18,172.232.160.8,172.232.160.12,172.232.160.11,172.232.160.14,172.232.160.16", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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.232.32.21,172.232.32.23,172.232.32.17,172.232.32.18,172.232.32.16,172.232.32.22,172.232.32.20,172.232.32.14,172.232.32.11,172.232.32.12", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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", "NodeBalancers"], "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": 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": "139.144.192.62,139.144.192.60,139.144.192.61,139.144.192.53,139.144.192.54,139.144.192.67,139.144.192.69,139.144.192.66,139.144.192.52,139.144.192.68", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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": 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", + "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-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", + "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": "us-central", + "label": "Dallas, TX", "country": "us", "capabilities": ["Linodes", "Block Storage + Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", + "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", "Managed + Databases", "Metadata", "Placement Group", "StackScripts", "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", "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", "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", "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", "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, 109.74.192.20, 109.74.193.20, 109.74.194.20", + "ipv6": "1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, + 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678"}, "placement_group_limits": + {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5, "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", "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", "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", "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": 32}' + 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: + - Wed, 15 Apr 2026 12:22:38 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: '{"region":"nl-ams","type":"g6-nanode-1","label":"go-test-ins-0oa9cih3p138","root_pass":"a227BDo21]\u003e4+4TY[Y8BJ+$9LdGgt/?vueRZ[3q:X3ht5\u003ca*:0D!w52(zWc0''KQu","image":"linode/debian12","firewall_id":4131481,"booted":true}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/linode/instances + method: POST + response: + body: '{"id": 96059228, "label": "go-test-ins-0oa9cih3p138", "group": "", "status": + "provisioning", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", + "type": "g6-nanode-1", "ipv4": ["172.235.191.77"], "ipv6": "1234::5678/128", + "image": "linode/debian12", "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}, "backups": {"enabled": false, "available": false, "schedule": + {"day": null, "window": null}, "last_successful": null}, "hypervisor": "kvm", + "watchdog_enabled": true, "tags": [], "host_uuid": "88aed86ce856447ead69852e22829c15b084bde4", + "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" + 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: + - Wed, 15 Apr 2026 12:22:40 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - linodes:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "20" + 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/linode/instances/96059228 + method: GET + response: + body: '{"id": 96059228, "label": "go-test-ins-0oa9cih3p138", "group": "", "status": + "provisioning", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", + "type": "g6-nanode-1", "ipv4": ["172.235.191.77"], "ipv6": "1234::5678/128", + "image": "linode/debian12", "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}, "backups": {"enabled": false, "available": false, "schedule": + {"day": null, "window": null}, "last_successful": null}, "hypervisor": "kvm", + "watchdog_enabled": true, "tags": [], "host_uuid": "88aed86ce856447ead69852e22829c15b084bde4", + "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" + 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: + - Wed, 15 Apr 2026 12:22:56 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - linodes: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/linode/instances/96059228 method: GET response: - body: '{"id": 95949807, "label": "go-test-ins-7a80eb6i7p3y", "group": "", "status": + body: '{"id": 96059228, "label": "go-test-ins-0oa9cih3p138", "group": "", "status": "provisioning", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", - "type": "g6-nanode-1", "ipv4": ["172.239.239.174"], "ipv6": "1234::5678/128", + "type": "g6-nanode-1", "ipv4": ["172.235.191.77"], "ipv6": "1234::5678/128", "image": "linode/debian12", "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}, "backups": {"enabled": false, "available": false, "schedule": {"day": null, "window": null}, "last_successful": null}, "hypervisor": "kvm", - "watchdog_enabled": true, "tags": [], "host_uuid": "faa31587894a98bb0f66051164b3ffd2d941264a", + "watchdog_enabled": true, "tags": [], "host_uuid": "88aed86ce856447ead69852e22829c15b084bde4", "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", @@ -49,7 +596,7 @@ interactions: Content-Type: - application/json Expires: - - Mon, 13 Apr 2026 14:36:55 GMT + - Wed, 15 Apr 2026 12:23:11 GMT Pragma: - no-cache Strict-Transport-Security: @@ -84,18 +631,18 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/linode/instances/95949807 + url: https://api.linode.com/v4beta/linode/instances/96059228 method: GET response: - body: '{"id": 95949807, "label": "go-test-ins-7a80eb6i7p3y", "group": "", "status": + body: '{"id": 96059228, "label": "go-test-ins-0oa9cih3p138", "group": "", "status": "provisioning", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", - "type": "g6-nanode-1", "ipv4": ["172.239.239.174"], "ipv6": "1234::5678/128", + "type": "g6-nanode-1", "ipv4": ["172.235.191.77"], "ipv6": "1234::5678/128", "image": "linode/debian12", "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}, "backups": {"enabled": false, "available": false, "schedule": {"day": null, "window": null}, "last_successful": null}, "hypervisor": "kvm", - "watchdog_enabled": true, "tags": [], "host_uuid": "faa31587894a98bb0f66051164b3ffd2d941264a", + "watchdog_enabled": true, "tags": [], "host_uuid": "88aed86ce856447ead69852e22829c15b084bde4", "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", @@ -122,7 +669,7 @@ interactions: Content-Type: - application/json Expires: - - Mon, 13 Apr 2026 14:37:10 GMT + - Wed, 15 Apr 2026 12:23:26 GMT Pragma: - no-cache Strict-Transport-Security: @@ -157,18 +704,18 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/linode/instances/95949807 + url: https://api.linode.com/v4beta/linode/instances/96059228 method: GET response: - body: '{"id": 95949807, "label": "go-test-ins-7a80eb6i7p3y", "group": "", "status": + body: '{"id": 96059228, "label": "go-test-ins-0oa9cih3p138", "group": "", "status": "booting", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", - "type": "g6-nanode-1", "ipv4": ["172.239.239.174"], "ipv6": "1234::5678/128", + "type": "g6-nanode-1", "ipv4": ["172.235.191.77"], "ipv6": "1234::5678/128", "image": "linode/debian12", "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}, "backups": {"enabled": false, "available": false, "schedule": {"day": null, "window": null}, "last_successful": null}, "hypervisor": "kvm", - "watchdog_enabled": true, "tags": [], "host_uuid": "faa31587894a98bb0f66051164b3ffd2d941264a", + "watchdog_enabled": true, "tags": [], "host_uuid": "88aed86ce856447ead69852e22829c15b084bde4", "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", @@ -195,7 +742,7 @@ interactions: Content-Type: - application/json Expires: - - Mon, 13 Apr 2026 14:37:25 GMT + - Wed, 15 Apr 2026 12:23:41 GMT Pragma: - no-cache Strict-Transport-Security: @@ -230,18 +777,18 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/linode/instances/95949807 + url: https://api.linode.com/v4beta/linode/instances/96059228 method: GET response: - body: '{"id": 95949807, "label": "go-test-ins-7a80eb6i7p3y", "group": "", "status": + body: '{"id": 96059228, "label": "go-test-ins-0oa9cih3p138", "group": "", "status": "running", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", - "type": "g6-nanode-1", "ipv4": ["172.239.239.174"], "ipv6": "1234::5678/128", + "type": "g6-nanode-1", "ipv4": ["172.235.191.77"], "ipv6": "1234::5678/128", "image": "linode/debian12", "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}, "backups": {"enabled": false, "available": false, "schedule": {"day": null, "window": null}, "last_successful": null}, "hypervisor": "kvm", - "watchdog_enabled": true, "tags": [], "host_uuid": "faa31587894a98bb0f66051164b3ffd2d941264a", + "watchdog_enabled": true, "tags": [], "host_uuid": "88aed86ce856447ead69852e22829c15b084bde4", "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", @@ -268,7 +815,7 @@ interactions: Content-Type: - application/json Expires: - - Mon, 13 Apr 2026 14:37:40 GMT + - Wed, 15 Apr 2026 12:23:56 GMT Pragma: - no-cache Strict-Transport-Security: @@ -670,7 +1217,7 @@ interactions: Content-Type: - application/json Expires: - - Mon, 13 Apr 2026 14:37:40 GMT + - Wed, 15 Apr 2026 12:23:56 GMT Pragma: - no-cache Strict-Transport-Security: @@ -696,7 +1243,7 @@ interactions: code: 200 duration: "" - request: - body: '{"label":"go-vol-testde90ku231u8i","region":"nl-ams","tags":null}' + body: '{"label":"go-vol-testo6536kr5rtr9","region":"nl-ams","tags":null}' form: {} headers: Accept: @@ -708,9 +1255,9 @@ interactions: url: https://api.linode.com/v4beta/volumes method: POST response: - body: '{"id": 15106232, "status": "creating", "label": "go-vol-testde90ku231u8i", + body: '{"id": 15146203, "status": "creating", "label": "go-vol-testo6536kr5rtr9", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "filesystem_path": - "/dev/disk/by-id/scsi-0Linode_Volume_go-vol-testde90ku231u8i", "size": 20, "linode_id": + "/dev/disk/by-id/scsi-0Linode_Volume_go-vol-testo6536kr5rtr9", "size": 20, "linode_id": null, "linode_label": null, "io_ready": false, "region": "nl-ams", "tags": [], "hardware_type": "nvme", "encryption": "enabled", "locks": []}' headers: @@ -737,7 +1284,7 @@ interactions: Content-Type: - application/json Expires: - - Mon, 13 Apr 2026 14:37:41 GMT + - Wed, 15 Apr 2026 12:23:56 GMT Pragma: - no-cache Strict-Transport-Security: @@ -761,7 +1308,7 @@ interactions: code: 200 duration: "" - request: - body: '{"linode_id":95949807}' + body: '{"linode_id":96059228}' form: {} headers: Accept: @@ -770,13 +1317,13 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/volumes/15106232/attach + url: https://api.linode.com/v4beta/volumes/15146203/attach method: POST response: - body: '{"id": 15106232, "status": "creating", "label": "go-vol-testde90ku231u8i", + body: '{"id": 15146203, "status": "creating", "label": "go-vol-testo6536kr5rtr9", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "filesystem_path": - "/dev/disk/by-id/scsi-0Linode_Volume_go-vol-testde90ku231u8i", "size": 20, "linode_id": - 95949807, "linode_label": "go-test-ins-7a80eb6i7p3y", "io_ready": false, "region": + "/dev/disk/by-id/scsi-0Linode_Volume_go-vol-testo6536kr5rtr9", "size": 20, "linode_id": + 96059228, "linode_label": "go-test-ins-0oa9cih3p138", "io_ready": false, "region": "nl-ams", "tags": [], "hardware_type": "nvme", "encryption": "enabled", "locks": []}' headers: @@ -803,7 +1350,7 @@ interactions: Content-Type: - application/json Expires: - - Mon, 13 Apr 2026 14:37:41 GMT + - Wed, 15 Apr 2026 12:23:57 GMT Pragma: - no-cache Strict-Transport-Security: @@ -836,13 +1383,13 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/volumes/15106232 + url: https://api.linode.com/v4beta/volumes/15146203 method: GET response: - body: '{"id": 15106232, "status": "active", "label": "go-vol-testde90ku231u8i", + body: '{"id": 15146203, "status": "active", "label": "go-vol-testo6536kr5rtr9", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "filesystem_path": - "/dev/disk/by-id/scsi-0Linode_Volume_go-vol-testde90ku231u8i", "size": 20, "linode_id": - 95949807, "linode_label": "go-test-ins-7a80eb6i7p3y", "io_ready": true, "region": + "/dev/disk/by-id/scsi-0Linode_Volume_go-vol-testo6536kr5rtr9", "size": 20, "linode_id": + 96059228, "linode_label": "go-test-ins-0oa9cih3p138", "io_ready": true, "region": "nl-ams", "tags": [], "hardware_type": "nvme", "encryption": "enabled", "locks": []}' headers: @@ -869,7 +1416,7 @@ interactions: Content-Type: - application/json Expires: - - Mon, 13 Apr 2026 14:37:57 GMT + - Wed, 15 Apr 2026 12:24:12 GMT Pragma: - no-cache Strict-Transport-Security: @@ -903,13 +1450,80 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/volumes/15106232 + url: https://api.linode.com/v4beta/linode/instances/96059228/volumes?page=1 + method: GET + response: + body: '{"data": [{"id": 15146203, "status": "active", "label": "go-vol-testo6536kr5rtr9", + "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "filesystem_path": + "/dev/disk/by-id/scsi-0Linode_Volume_go-vol-testo6536kr5rtr9", "size": 20, "linode_id": + 96059228, "linode_label": "go-test-ins-0oa9cih3p138", "io_ready": true, "region": + "nl-ams", "tags": [], "hardware_type": "nvme", "encryption": "enabled", "locks": + []}], "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: + - "463" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 15 Apr 2026 12:24:12 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - linodes: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/volumes/15146203 method: GET response: - body: '{"id": 15106232, "status": "active", "label": "go-vol-testde90ku231u8i", + body: '{"id": 15146203, "status": "active", "label": "go-vol-testo6536kr5rtr9", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "filesystem_path": - "/dev/disk/by-id/scsi-0Linode_Volume_go-vol-testde90ku231u8i", "size": 20, "linode_id": - 95949807, "linode_label": "go-test-ins-7a80eb6i7p3y", "io_ready": true, "region": + "/dev/disk/by-id/scsi-0Linode_Volume_go-vol-testo6536kr5rtr9", "size": 20, "linode_id": + 96059228, "linode_label": "go-test-ins-0oa9cih3p138", "io_ready": true, "region": "nl-ams", "tags": [], "hardware_type": "nvme", "encryption": "enabled", "locks": []}' headers: @@ -936,7 +1550,7 @@ interactions: Content-Type: - application/json Expires: - - Mon, 13 Apr 2026 14:37:57 GMT + - Wed, 15 Apr 2026 12:24:13 GMT Pragma: - no-cache Strict-Transport-Security: @@ -970,7 +1584,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/volumes/15106232/detach + url: https://api.linode.com/v4beta/volumes/15146203/detach method: POST response: body: '{}' @@ -998,7 +1612,7 @@ interactions: Content-Type: - application/json Expires: - - Mon, 13 Apr 2026 14:37:57 GMT + - Wed, 15 Apr 2026 12:24:13 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1031,12 +1645,12 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/volumes/15106232 + url: https://api.linode.com/v4beta/volumes/15146203 method: GET response: - body: '{"id": 15106232, "status": "active", "label": "go-vol-testde90ku231u8i", + body: '{"id": 15146203, "status": "active", "label": "go-vol-testo6536kr5rtr9", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "filesystem_path": - "/dev/disk/by-id/scsi-0Linode_Volume_go-vol-testde90ku231u8i", "size": 20, "linode_id": + "/dev/disk/by-id/scsi-0Linode_Volume_go-vol-testo6536kr5rtr9", "size": 20, "linode_id": null, "linode_label": null, "io_ready": false, "region": "nl-ams", "tags": [], "hardware_type": "nvme", "encryption": "enabled", "locks": []}' headers: @@ -1063,7 +1677,7 @@ interactions: Content-Type: - application/json Expires: - - Mon, 13 Apr 2026 14:38:12 GMT + - Wed, 15 Apr 2026 12:24:28 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1097,12 +1711,74 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/volumes/15106232 + url: https://api.linode.com/v4beta/linode/instances/96059228/volumes?page=1 + method: GET + response: + body: '{"data": [], "page": 1, "pages": 1, "results": 0}' + 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: + - "49" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 15 Apr 2026 12:24:29 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - linodes: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/volumes/15146203 method: GET response: - body: '{"id": 15106232, "status": "active", "label": "go-vol-testde90ku231u8i", + body: '{"id": 15146203, "status": "active", "label": "go-vol-testo6536kr5rtr9", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "filesystem_path": - "/dev/disk/by-id/scsi-0Linode_Volume_go-vol-testde90ku231u8i", "size": 20, "linode_id": + "/dev/disk/by-id/scsi-0Linode_Volume_go-vol-testo6536kr5rtr9", "size": 20, "linode_id": null, "linode_label": null, "io_ready": false, "region": "nl-ams", "tags": [], "hardware_type": "nvme", "encryption": "enabled", "locks": []}' headers: @@ -1129,7 +1805,7 @@ interactions: Content-Type: - application/json Expires: - - Mon, 13 Apr 2026 14:38:13 GMT + - Wed, 15 Apr 2026 12:24:45 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1163,7 +1839,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/volumes/15106232 + url: https://api.linode.com/v4beta/volumes/15146203 method: DELETE response: body: '{}' @@ -1191,7 +1867,7 @@ interactions: Content-Type: - application/json Expires: - - Mon, 13 Apr 2026 14:38:13 GMT + - Wed, 15 Apr 2026 12:24:46 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1214,3 +1890,64 @@ interactions: status: 200 OK code: 200 duration: "" +- request: + body: "" + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/linode/instances/96059228 + 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: + - Wed, 15 Apr 2026 12:24:46 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - linodes: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/TestIAM_GetIOReadyForNotAttachedVolume.yaml b/test/integration/fixtures/TestIAM_GetIOReadyForNotAttachedVolume.yaml index 0260c58ad..d42a3365e 100644 --- a/test/integration/fixtures/TestIAM_GetIOReadyForNotAttachedVolume.yaml +++ b/test/integration/fixtures/TestIAM_GetIOReadyForNotAttachedVolume.yaml @@ -378,7 +378,7 @@ interactions: Content-Type: - application/json Expires: - - Mon, 13 Apr 2026 14:36:21 GMT + - Wed, 15 Apr 2026 12:22:21 GMT Pragma: - no-cache Strict-Transport-Security: @@ -416,7 +416,7 @@ interactions: url: https://api.linode.com/v4beta/volumes method: POST response: - body: '{"id": 15106213, "status": "creating", "label": "go-test-def", "created": + body: '{"id": 15146184, "status": "creating", "label": "go-test-def", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "filesystem_path": "/dev/disk/by-id/scsi-0Linode_Volume_go-test-def", "size": 20, "linode_id": null, "linode_label": null, "io_ready": false, "region": "nl-ams", "tags": [], @@ -445,7 +445,7 @@ interactions: Content-Type: - application/json Expires: - - Mon, 13 Apr 2026 14:36:22 GMT + - Wed, 15 Apr 2026 12:22:22 GMT Pragma: - no-cache Strict-Transport-Security: @@ -478,10 +478,10 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/volumes/15106213 + url: https://api.linode.com/v4beta/volumes/15146184 method: GET response: - body: '{"id": 15106213, "status": "active", "label": "go-test-def", "created": + body: '{"id": 15146184, "status": "active", "label": "go-test-def", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "filesystem_path": "/dev/disk/by-id/scsi-0Linode_Volume_go-test-def", "size": 20, "linode_id": null, "linode_label": null, "io_ready": false, "region": "nl-ams", "tags": [], @@ -510,7 +510,7 @@ interactions: Content-Type: - application/json Expires: - - Mon, 13 Apr 2026 14:36:37 GMT + - Wed, 15 Apr 2026 12:22:37 GMT Pragma: - no-cache Strict-Transport-Security: @@ -544,10 +544,77 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/volumes/15106213 + url: https://api.linode.com/v4beta/volumes?page=1 method: GET response: - body: '{"id": 15106213, "status": "active", "label": "go-test-def", "created": + body: '{"data": [{"id": 15146184, "status": "active", "label": "go-test-def", + "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "filesystem_path": + "/dev/disk/by-id/scsi-0Linode_Volume_go-test-def", "size": 20, "linode_id": + null, "linode_label": null, "io_ready": false, "region": "nl-ams", "tags": [], + "hardware_type": "nvme", "encryption": "enabled", "locks": []}], "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: + - "414" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 15 Apr 2026 12:22:37 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - volumes: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/volumes/15146184 + method: GET + response: + body: '{"id": 15146184, "status": "active", "label": "go-test-def", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "filesystem_path": "/dev/disk/by-id/scsi-0Linode_Volume_go-test-def", "size": 20, "linode_id": null, "linode_label": null, "io_ready": false, "region": "nl-ams", "tags": [], @@ -576,7 +643,7 @@ interactions: Content-Type: - application/json Expires: - - Mon, 13 Apr 2026 14:36:37 GMT + - Wed, 15 Apr 2026 12:22:37 GMT Pragma: - no-cache Strict-Transport-Security: @@ -610,7 +677,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/volumes/15106213 + url: https://api.linode.com/v4beta/volumes/15146184 method: DELETE response: body: '{}' @@ -638,7 +705,7 @@ interactions: Content-Type: - application/json Expires: - - Mon, 13 Apr 2026 14:36:38 GMT + - Wed, 15 Apr 2026 12:22:38 GMT Pragma: - no-cache Strict-Transport-Security: diff --git a/test/integration/fixtures/TestIAM_GetIOReadyForResizedVolume.yaml b/test/integration/fixtures/TestIAM_GetIOReadyForResizedVolume.yaml new file mode 100644 index 000000000..5342fe715 --- /dev/null +++ b/test/integration/fixtures/TestIAM_GetIOReadyForResizedVolume.yaml @@ -0,0 +1,1958 @@ +--- +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": "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", "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": + ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.233.33.36,172.233.33.38,172.233.33.35,172.233.33.39,172.233.33.34,172.233.33.33,172.233.33.31,172.233.33.30,172.233.33.37,172.233.33.32", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.239.11.24,172.239.11.22,172.239.11.17,172.239.11.20,172.239.11.23,172.239.11.19,172.239.11.21,172.239.11.15,172.239.11.16,172.239.11.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": "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", "NodeBalancers"], "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": 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"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.236.129.8,172.236.129.42,172.236.129.41,172.236.129.19,172.236.129.46,172.236.129.23,172.236.129.48,172.236.129.20,172.236.129.21,172.236.129.47", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "de-fra-2", + "label": "Frankfurt 2, DE", "country": "de", "capabilities": ["Linodes", "Block + Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", + "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"], "metrics": ["Managed + Databases", "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.236.203.9,172.236.203.16,172.236.203.19,172.236.203.15,172.236.203.17,172.236.203.11,172.236.203.18,172.236.203.14,172.236.203.13,172.236.203.12", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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", + "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"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.236.171.41,172.236.171.42,172.236.171.25,172.236.171.44,172.236.171.26,172.236.171.45,172.236.171.24,172.236.171.43,172.236.171.27,172.236.171.28", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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", + "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": "172.236.32.23,172.236.32.35,172.236.32.30,172.236.32.28,172.236.32.32,172.236.32.33,172.236.32.27,172.236.32.37,172.236.32.29,172.236.32.34", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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", "NodeBalancers"], "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": 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", "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"], "metrics": ["Managed + Databases", "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.233.128.45,172.233.128.38,172.233.128.53,172.233.128.37,172.233.128.34,172.233.128.36,172.233.128.33,172.233.128.39,172.233.128.43,172.233.128.44", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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", + "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.232.224.23,172.232.224.32,172.232.224.26,172.232.224.27,172.232.224.21,172.232.224.24,172.232.224.22,172.232.224.20,172.232.224.31,172.232.224.28", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.233.160.34,172.233.160.27,172.233.160.30,172.233.160.29,172.233.160.32,172.233.160.28,172.233.160.33,172.233.160.26,172.233.160.25,172.233.160.31", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "172.232.192.19,172.232.192.18,172.232.192.16,172.232.192.20,172.232.192.24,172.232.192.21,172.232.192.22,172.232.192.17,172.232.192.15,172.232.192.23", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "172.233.64.44,172.233.64.43,172.233.64.37,172.233.64.40,172.233.64.46,172.233.64.41,172.233.64.39,172.233.64.42,172.233.64.45,172.233.64.38", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.232.96.17,172.232.96.26,172.232.96.19,172.232.96.20,172.232.96.25,172.232.96.21,172.232.96.18,172.232.96.22,172.232.96.23,172.232.96.24", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "172.233.111.6,172.233.111.17,172.233.111.21,172.233.111.25,172.233.111.19,172.233.111.12,172.233.111.26,172.233.111.16,172.233.111.18,172.233.111.9", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "172.232.128.24,172.232.128.26,172.232.128.20,172.232.128.22,172.232.128.25,172.232.128.19,172.232.128.23,172.232.128.18,172.232.128.21,172.232.128.27", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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", "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-sea", + "label": "Seattle, WA", "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", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.232.160.19,172.232.160.21,172.232.160.17,172.232.160.15,172.232.160.18,172.232.160.8,172.232.160.12,172.232.160.11,172.232.160.14,172.232.160.16", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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.232.32.21,172.232.32.23,172.232.32.17,172.232.32.18,172.232.32.16,172.232.32.22,172.232.32.20,172.232.32.14,172.232.32.11,172.232.32.12", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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", "NodeBalancers"], "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": 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": "139.144.192.62,139.144.192.60,139.144.192.61,139.144.192.53,139.144.192.54,139.144.192.67,139.144.192.69,139.144.192.66,139.144.192.52,139.144.192.68", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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": 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", + "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-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", + "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": "us-central", + "label": "Dallas, TX", "country": "us", "capabilities": ["Linodes", "Block Storage + Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", + "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", "Managed + Databases", "Metadata", "Placement Group", "StackScripts", "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", "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", "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", "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", "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, 109.74.192.20, 109.74.193.20, 109.74.194.20", + "ipv6": "1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, + 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678"}, "placement_group_limits": + {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5, "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", "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", "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", "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": 32}' + 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: + - Wed, 15 Apr 2026 12:26:38 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: '{"region":"nl-ams","type":"g6-nanode-1","label":"go-test-ins-vr3691bf2fi0","root_pass":"\u003c4v2#3YMgV5R}|VQl71Hl1,A00Y*@e0mDDpsj@8,\\OVz6D\\$=nEh5]eoQ8?4/pz6","image":"linode/debian12","firewall_id":4131481,"booted":true}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/linode/instances + method: POST + response: + body: '{"id": 96059303, "label": "go-test-ins-vr3691bf2fi0", "group": "", "status": + "provisioning", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", + "type": "g6-nanode-1", "ipv4": ["172.235.191.77"], "ipv6": "1234::5678/128", + "image": "linode/debian12", "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}, "backups": {"enabled": false, "available": false, "schedule": + {"day": null, "window": null}, "last_successful": null}, "hypervisor": "kvm", + "watchdog_enabled": true, "tags": [], "host_uuid": "88aed86ce856447ead69852e22829c15b084bde4", + "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" + 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: + - Wed, 15 Apr 2026 12:26:39 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - linodes:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "20" + 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/linode/instances/96059303 + method: GET + response: + body: '{"id": 96059303, "label": "go-test-ins-vr3691bf2fi0", "group": "", "status": + "provisioning", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", + "type": "g6-nanode-1", "ipv4": ["172.235.191.77"], "ipv6": "1234::5678/128", + "image": "linode/debian12", "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}, "backups": {"enabled": false, "available": false, "schedule": + {"day": null, "window": null}, "last_successful": null}, "hypervisor": "kvm", + "watchdog_enabled": true, "tags": [], "host_uuid": "88aed86ce856447ead69852e22829c15b084bde4", + "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" + 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: + - Wed, 15 Apr 2026 12:26:55 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - linodes: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/linode/instances/96059303 + method: GET + response: + body: '{"id": 96059303, "label": "go-test-ins-vr3691bf2fi0", "group": "", "status": + "provisioning", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", + "type": "g6-nanode-1", "ipv4": ["172.235.191.77"], "ipv6": "1234::5678/128", + "image": "linode/debian12", "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}, "backups": {"enabled": false, "available": false, "schedule": + {"day": null, "window": null}, "last_successful": null}, "hypervisor": "kvm", + "watchdog_enabled": true, "tags": [], "host_uuid": "88aed86ce856447ead69852e22829c15b084bde4", + "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" + 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: + - Wed, 15 Apr 2026 12:27:10 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - linodes: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/linode/instances/96059303 + method: GET + response: + body: '{"id": 96059303, "label": "go-test-ins-vr3691bf2fi0", "group": "", "status": + "provisioning", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", + "type": "g6-nanode-1", "ipv4": ["172.235.191.77"], "ipv6": "1234::5678/128", + "image": "linode/debian12", "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}, "backups": {"enabled": false, "available": false, "schedule": + {"day": null, "window": null}, "last_successful": null}, "hypervisor": "kvm", + "watchdog_enabled": true, "tags": [], "host_uuid": "88aed86ce856447ead69852e22829c15b084bde4", + "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" + 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: + - Wed, 15 Apr 2026 12:27:25 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - linodes: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/linode/instances/96059303 + method: GET + response: + body: '{"id": 96059303, "label": "go-test-ins-vr3691bf2fi0", "group": "", "status": + "booting", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", + "type": "g6-nanode-1", "ipv4": ["172.235.191.77"], "ipv6": "1234::5678/128", + "image": "linode/debian12", "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}, "backups": {"enabled": false, "available": false, "schedule": + {"day": null, "window": null}, "last_successful": null}, "hypervisor": "kvm", + "watchdog_enabled": true, "tags": [], "host_uuid": "88aed86ce856447ead69852e22829c15b084bde4", + "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" + 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: + - Wed, 15 Apr 2026 12:27:40 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - linodes: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/linode/instances/96059303 + method: GET + response: + body: '{"id": 96059303, "label": "go-test-ins-vr3691bf2fi0", "group": "", "status": + "running", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", + "type": "g6-nanode-1", "ipv4": ["172.235.191.77"], "ipv6": "1234::5678/128", + "image": "linode/debian12", "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}, "backups": {"enabled": false, "available": false, "schedule": + {"day": null, "window": null}, "last_successful": null}, "hypervisor": "kvm", + "watchdog_enabled": true, "tags": [], "host_uuid": "88aed86ce856447ead69852e22829c15b084bde4", + "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" + 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: + - Wed, 15 Apr 2026 12:27:55 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - linodes: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/regions?page=1 + method: GET + response: + 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", "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": + ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.233.33.36,172.233.33.38,172.233.33.35,172.233.33.39,172.233.33.34,172.233.33.33,172.233.33.31,172.233.33.30,172.233.33.37,172.233.33.32", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.239.11.24,172.239.11.22,172.239.11.17,172.239.11.20,172.239.11.23,172.239.11.19,172.239.11.21,172.239.11.15,172.239.11.16,172.239.11.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": "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", "NodeBalancers"], "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": 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"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.236.129.8,172.236.129.42,172.236.129.41,172.236.129.19,172.236.129.46,172.236.129.23,172.236.129.48,172.236.129.20,172.236.129.21,172.236.129.47", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "de-fra-2", + "label": "Frankfurt 2, DE", "country": "de", "capabilities": ["Linodes", "Block + Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", + "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"], "metrics": ["Managed + Databases", "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.236.203.9,172.236.203.16,172.236.203.19,172.236.203.15,172.236.203.17,172.236.203.11,172.236.203.18,172.236.203.14,172.236.203.13,172.236.203.12", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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", + "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"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.236.171.41,172.236.171.42,172.236.171.25,172.236.171.44,172.236.171.26,172.236.171.45,172.236.171.24,172.236.171.43,172.236.171.27,172.236.171.28", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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", + "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": "172.236.32.23,172.236.32.35,172.236.32.30,172.236.32.28,172.236.32.32,172.236.32.33,172.236.32.27,172.236.32.37,172.236.32.29,172.236.32.34", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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", "NodeBalancers"], "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": 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", "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"], "metrics": ["Managed + Databases", "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.233.128.45,172.233.128.38,172.233.128.53,172.233.128.37,172.233.128.34,172.233.128.36,172.233.128.33,172.233.128.39,172.233.128.43,172.233.128.44", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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", + "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.232.224.23,172.232.224.32,172.232.224.26,172.232.224.27,172.232.224.21,172.232.224.24,172.232.224.22,172.232.224.20,172.232.224.31,172.232.224.28", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.233.160.34,172.233.160.27,172.233.160.30,172.233.160.29,172.233.160.32,172.233.160.28,172.233.160.33,172.233.160.26,172.233.160.25,172.233.160.31", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "172.232.192.19,172.232.192.18,172.232.192.16,172.232.192.20,172.232.192.24,172.232.192.21,172.232.192.22,172.232.192.17,172.232.192.15,172.232.192.23", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "172.233.64.44,172.233.64.43,172.233.64.37,172.233.64.40,172.233.64.46,172.233.64.41,172.233.64.39,172.233.64.42,172.233.64.45,172.233.64.38", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.232.96.17,172.232.96.26,172.232.96.19,172.232.96.20,172.232.96.25,172.232.96.21,172.232.96.18,172.232.96.22,172.232.96.23,172.232.96.24", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "172.233.111.6,172.233.111.17,172.233.111.21,172.233.111.25,172.233.111.19,172.233.111.12,172.233.111.26,172.233.111.16,172.233.111.18,172.233.111.9", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "172.232.128.24,172.232.128.26,172.232.128.20,172.232.128.22,172.232.128.25,172.232.128.19,172.232.128.23,172.232.128.18,172.232.128.21,172.232.128.27", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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", "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-sea", + "label": "Seattle, WA", "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", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.232.160.19,172.232.160.21,172.232.160.17,172.232.160.15,172.232.160.18,172.232.160.8,172.232.160.12,172.232.160.11,172.232.160.14,172.232.160.16", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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.232.32.21,172.232.32.23,172.232.32.17,172.232.32.18,172.232.32.16,172.232.32.22,172.232.32.20,172.232.32.14,172.232.32.11,172.232.32.12", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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", "NodeBalancers"], "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": 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": "139.144.192.62,139.144.192.60,139.144.192.61,139.144.192.53,139.144.192.54,139.144.192.67,139.144.192.69,139.144.192.66,139.144.192.52,139.144.192.68", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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": 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", + "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-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", + "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": "us-central", + "label": "Dallas, TX", "country": "us", "capabilities": ["Linodes", "Block Storage + Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", + "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", "Managed + Databases", "Metadata", "Placement Group", "StackScripts", "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", "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", "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", "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", "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, 109.74.192.20, 109.74.193.20, 109.74.194.20", + "ipv6": "1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, + 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678"}, "placement_group_limits": + {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5, "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", "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", "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", "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": 32}' + 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: + - Wed, 15 Apr 2026 12:27:55 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-vol-testjq80g5m3ce24","region":"nl-ams","tags":null}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/volumes + method: POST + response: + body: '{"id": 15146262, "status": "creating", "label": "go-vol-testjq80g5m3ce24", + "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "filesystem_path": + "/dev/disk/by-id/scsi-0Linode_Volume_go-vol-testjq80g5m3ce24", "size": 20, "linode_id": + null, "linode_label": null, "io_ready": false, "region": "nl-ams", "tags": [], + "hardware_type": "nvme", "encryption": "enabled", "locks": []}' + 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: + - "391" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 15 Apr 2026 12:27:55 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - volumes:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "100" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" +- request: + body: '{"linode_id":96059303}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/volumes/15146262/attach + method: POST + response: + body: '{"id": 15146262, "status": "creating", "label": "go-vol-testjq80g5m3ce24", + "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "filesystem_path": + "/dev/disk/by-id/scsi-0Linode_Volume_go-vol-testjq80g5m3ce24", "size": 20, "linode_id": + 96059303, "linode_label": "go-test-ins-vr3691bf2fi0", "io_ready": false, "region": + "nl-ams", "tags": [], "hardware_type": "nvme", "encryption": "enabled", "locks": + []}' + 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: + - "417" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 15 Apr 2026 12:27:56 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - volumes:read_write,linodes: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/volumes/15146262 + method: GET + response: + body: '{"id": 15146262, "status": "active", "label": "go-vol-testjq80g5m3ce24", + "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "filesystem_path": + "/dev/disk/by-id/scsi-0Linode_Volume_go-vol-testjq80g5m3ce24", "size": 20, "linode_id": + 96059303, "linode_label": "go-test-ins-vr3691bf2fi0", "io_ready": true, "region": + "nl-ams", "tags": [], "hardware_type": "nvme", "encryption": "enabled", "locks": + []}' + 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: + - "414" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 15 Apr 2026 12:28:11 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - volumes: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: '{"size":30}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/volumes/15146262/resize + method: POST + response: + body: '{"id": 15146262, "status": "resizing", "label": "go-vol-testjq80g5m3ce24", + "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "filesystem_path": + "/dev/disk/by-id/scsi-0Linode_Volume_go-vol-testjq80g5m3ce24", "size": 30, "linode_id": + 96059303, "linode_label": "go-test-ins-vr3691bf2fi0", "io_ready": true, "region": + "nl-ams", "tags": [], "hardware_type": "nvme", "encryption": "enabled", "locks": + []}' + 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: + - "416" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 15 Apr 2026 12:28:11 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - volumes: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/volumes/15146262 + method: GET + response: + body: '{"id": 15146262, "status": "active", "label": "go-vol-testjq80g5m3ce24", + "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "filesystem_path": + "/dev/disk/by-id/scsi-0Linode_Volume_go-vol-testjq80g5m3ce24", "size": 30, "linode_id": + 96059303, "linode_label": "go-test-ins-vr3691bf2fi0", "io_ready": true, "region": + "nl-ams", "tags": [], "hardware_type": "nvme", "encryption": "enabled", "locks": + []}' + 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: + - "414" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 15 Apr 2026 12:28:27 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - volumes: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/linode/instances/96059303/volumes?page=1 + method: GET + response: + body: '{"data": [{"id": 15146262, "status": "active", "label": "go-vol-testjq80g5m3ce24", + "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "filesystem_path": + "/dev/disk/by-id/scsi-0Linode_Volume_go-vol-testjq80g5m3ce24", "size": 30, "linode_id": + 96059303, "linode_label": "go-test-ins-vr3691bf2fi0", "io_ready": true, "region": + "nl-ams", "tags": [], "hardware_type": "nvme", "encryption": "enabled", "locks": + []}], "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: + - "463" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 15 Apr 2026 12:28:27 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - linodes: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/volumes/15146262 + method: GET + response: + body: '{"id": 15146262, "status": "active", "label": "go-vol-testjq80g5m3ce24", + "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "filesystem_path": + "/dev/disk/by-id/scsi-0Linode_Volume_go-vol-testjq80g5m3ce24", "size": 30, "linode_id": + 96059303, "linode_label": "go-test-ins-vr3691bf2fi0", "io_ready": true, "region": + "nl-ams", "tags": [], "hardware_type": "nvme", "encryption": "enabled", "locks": + []}' + 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: + - "414" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 15 Apr 2026 12:28:27 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - volumes: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/volumes/15146262/detach + method: POST + 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: + - Wed, 15 Apr 2026 12:28:28 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - volumes:read_write,linodes: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/volumes/15146262 + method: GET + response: + body: '{"id": 15146262, "status": "active", "label": "go-vol-testjq80g5m3ce24", + "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "filesystem_path": + "/dev/disk/by-id/scsi-0Linode_Volume_go-vol-testjq80g5m3ce24", "size": 30, "linode_id": + null, "linode_label": null, "io_ready": false, "region": "nl-ams", "tags": [], + "hardware_type": "nvme", "encryption": "enabled", "locks": []}' + 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: + - "389" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 15 Apr 2026 12:28:43 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - volumes: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/volumes/15146262 + 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: + - Wed, 15 Apr 2026 12:28:43 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - volumes: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/linode/instances/96059303 + 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: + - Wed, 15 Apr 2026 12:28:44 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - linodes: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/TestIAM_GetIOReadyForUpdatedVolume.yaml b/test/integration/fixtures/TestIAM_GetIOReadyForUpdatedVolume.yaml new file mode 100644 index 000000000..162b12ef9 --- /dev/null +++ b/test/integration/fixtures/TestIAM_GetIOReadyForUpdatedVolume.yaml @@ -0,0 +1,1892 @@ +--- +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": "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", "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": + ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.233.33.36,172.233.33.38,172.233.33.35,172.233.33.39,172.233.33.34,172.233.33.33,172.233.33.31,172.233.33.30,172.233.33.37,172.233.33.32", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.239.11.24,172.239.11.22,172.239.11.17,172.239.11.20,172.239.11.23,172.239.11.19,172.239.11.21,172.239.11.15,172.239.11.16,172.239.11.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": "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", "NodeBalancers"], "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": 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"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.236.129.8,172.236.129.42,172.236.129.41,172.236.129.19,172.236.129.46,172.236.129.23,172.236.129.48,172.236.129.20,172.236.129.21,172.236.129.47", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "de-fra-2", + "label": "Frankfurt 2, DE", "country": "de", "capabilities": ["Linodes", "Block + Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", + "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"], "metrics": ["Managed + Databases", "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.236.203.9,172.236.203.16,172.236.203.19,172.236.203.15,172.236.203.17,172.236.203.11,172.236.203.18,172.236.203.14,172.236.203.13,172.236.203.12", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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", + "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"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.236.171.41,172.236.171.42,172.236.171.25,172.236.171.44,172.236.171.26,172.236.171.45,172.236.171.24,172.236.171.43,172.236.171.27,172.236.171.28", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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", + "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": "172.236.32.23,172.236.32.35,172.236.32.30,172.236.32.28,172.236.32.32,172.236.32.33,172.236.32.27,172.236.32.37,172.236.32.29,172.236.32.34", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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", "NodeBalancers"], "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": 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", "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"], "metrics": ["Managed + Databases", "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.233.128.45,172.233.128.38,172.233.128.53,172.233.128.37,172.233.128.34,172.233.128.36,172.233.128.33,172.233.128.39,172.233.128.43,172.233.128.44", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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", + "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.232.224.23,172.232.224.32,172.232.224.26,172.232.224.27,172.232.224.21,172.232.224.24,172.232.224.22,172.232.224.20,172.232.224.31,172.232.224.28", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.233.160.34,172.233.160.27,172.233.160.30,172.233.160.29,172.233.160.32,172.233.160.28,172.233.160.33,172.233.160.26,172.233.160.25,172.233.160.31", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "172.232.192.19,172.232.192.18,172.232.192.16,172.232.192.20,172.232.192.24,172.232.192.21,172.232.192.22,172.232.192.17,172.232.192.15,172.232.192.23", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "172.233.64.44,172.233.64.43,172.233.64.37,172.233.64.40,172.233.64.46,172.233.64.41,172.233.64.39,172.233.64.42,172.233.64.45,172.233.64.38", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.232.96.17,172.232.96.26,172.232.96.19,172.232.96.20,172.232.96.25,172.232.96.21,172.232.96.18,172.232.96.22,172.232.96.23,172.232.96.24", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "172.233.111.6,172.233.111.17,172.233.111.21,172.233.111.25,172.233.111.19,172.233.111.12,172.233.111.26,172.233.111.16,172.233.111.18,172.233.111.9", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "172.232.128.24,172.232.128.26,172.232.128.20,172.232.128.22,172.232.128.25,172.232.128.19,172.232.128.23,172.232.128.18,172.232.128.21,172.232.128.27", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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", "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-sea", + "label": "Seattle, WA", "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", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.232.160.19,172.232.160.21,172.232.160.17,172.232.160.15,172.232.160.18,172.232.160.8,172.232.160.12,172.232.160.11,172.232.160.14,172.232.160.16", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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.232.32.21,172.232.32.23,172.232.32.17,172.232.32.18,172.232.32.16,172.232.32.22,172.232.32.20,172.232.32.14,172.232.32.11,172.232.32.12", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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", "NodeBalancers"], "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": 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": "139.144.192.62,139.144.192.60,139.144.192.61,139.144.192.53,139.144.192.54,139.144.192.67,139.144.192.69,139.144.192.66,139.144.192.52,139.144.192.68", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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": 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", + "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-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", + "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": "us-central", + "label": "Dallas, TX", "country": "us", "capabilities": ["Linodes", "Block Storage + Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", + "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", "Managed + Databases", "Metadata", "Placement Group", "StackScripts", "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", "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", "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", "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", "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, 109.74.192.20, 109.74.193.20, 109.74.194.20", + "ipv6": "1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, + 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678"}, "placement_group_limits": + {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5, "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", "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", "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", "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": 32}' + 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: + - Wed, 15 Apr 2026 12:24:47 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: '{"region":"nl-ams","type":"g6-nanode-1","label":"go-test-ins-i5e5qjdm1008","root_pass":"6G3\u003e9wn!kMu2@4VLxgq,;''''BSH;\\Z#?qD1~9Ao0R[*90Lf0C4o0`Z(jQmj9d71eD","image":"linode/debian12","firewall_id":4131481,"booted":true}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/linode/instances + method: POST + response: + body: '{"id": 96059268, "label": "go-test-ins-i5e5qjdm1008", "group": "", "status": + "provisioning", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", + "type": "g6-nanode-1", "ipv4": ["172.235.191.77"], "ipv6": "1234::5678/128", + "image": "linode/debian12", "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}, "backups": {"enabled": false, "available": false, "schedule": + {"day": null, "window": null}, "last_successful": null}, "hypervisor": "kvm", + "watchdog_enabled": true, "tags": [], "host_uuid": "ada9e04b87e588f48d5acf5b894200d93e9468d7", + "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" + 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: + - Wed, 15 Apr 2026 12:24:48 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - linodes:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "20" + 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/linode/instances/96059268 + method: GET + response: + body: '{"id": 96059268, "label": "go-test-ins-i5e5qjdm1008", "group": "", "status": + "provisioning", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", + "type": "g6-nanode-1", "ipv4": ["172.235.191.77"], "ipv6": "1234::5678/128", + "image": "linode/debian12", "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}, "backups": {"enabled": false, "available": false, "schedule": + {"day": null, "window": null}, "last_successful": null}, "hypervisor": "kvm", + "watchdog_enabled": true, "tags": [], "host_uuid": "ada9e04b87e588f48d5acf5b894200d93e9468d7", + "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" + 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: + - Wed, 15 Apr 2026 12:25:04 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - linodes: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/linode/instances/96059268 + method: GET + response: + body: '{"id": 96059268, "label": "go-test-ins-i5e5qjdm1008", "group": "", "status": + "provisioning", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", + "type": "g6-nanode-1", "ipv4": ["172.235.191.77"], "ipv6": "1234::5678/128", + "image": "linode/debian12", "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}, "backups": {"enabled": false, "available": false, "schedule": + {"day": null, "window": null}, "last_successful": null}, "hypervisor": "kvm", + "watchdog_enabled": true, "tags": [], "host_uuid": "ada9e04b87e588f48d5acf5b894200d93e9468d7", + "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" + 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: + - Wed, 15 Apr 2026 12:25:19 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - linodes: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/linode/instances/96059268 + method: GET + response: + body: '{"id": 96059268, "label": "go-test-ins-i5e5qjdm1008", "group": "", "status": + "provisioning", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", + "type": "g6-nanode-1", "ipv4": ["172.235.191.77"], "ipv6": "1234::5678/128", + "image": "linode/debian12", "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}, "backups": {"enabled": false, "available": false, "schedule": + {"day": null, "window": null}, "last_successful": null}, "hypervisor": "kvm", + "watchdog_enabled": true, "tags": [], "host_uuid": "ada9e04b87e588f48d5acf5b894200d93e9468d7", + "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" + 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: + - Wed, 15 Apr 2026 12:25:34 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - linodes: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/linode/instances/96059268 + method: GET + response: + body: '{"id": 96059268, "label": "go-test-ins-i5e5qjdm1008", "group": "", "status": + "booting", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", + "type": "g6-nanode-1", "ipv4": ["172.235.191.77"], "ipv6": "1234::5678/128", + "image": "linode/debian12", "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}, "backups": {"enabled": false, "available": false, "schedule": + {"day": null, "window": null}, "last_successful": null}, "hypervisor": "kvm", + "watchdog_enabled": true, "tags": [], "host_uuid": "ada9e04b87e588f48d5acf5b894200d93e9468d7", + "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" + 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: + - Wed, 15 Apr 2026 12:25:49 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - linodes: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/linode/instances/96059268 + method: GET + response: + body: '{"id": 96059268, "label": "go-test-ins-i5e5qjdm1008", "group": "", "status": + "running", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", + "type": "g6-nanode-1", "ipv4": ["172.235.191.77"], "ipv6": "1234::5678/128", + "image": "linode/debian12", "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}, "backups": {"enabled": false, "available": false, "schedule": + {"day": null, "window": null}, "last_successful": null}, "hypervisor": "kvm", + "watchdog_enabled": true, "tags": [], "host_uuid": "ada9e04b87e588f48d5acf5b894200d93e9468d7", + "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" + 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: + - Wed, 15 Apr 2026 12:26:04 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - linodes: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/regions?page=1 + method: GET + response: + 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", "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": + ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.233.33.36,172.233.33.38,172.233.33.35,172.233.33.39,172.233.33.34,172.233.33.33,172.233.33.31,172.233.33.30,172.233.33.37,172.233.33.32", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.239.11.24,172.239.11.22,172.239.11.17,172.239.11.20,172.239.11.23,172.239.11.19,172.239.11.21,172.239.11.15,172.239.11.16,172.239.11.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": "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", "NodeBalancers"], "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": 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"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.236.129.8,172.236.129.42,172.236.129.41,172.236.129.19,172.236.129.46,172.236.129.23,172.236.129.48,172.236.129.20,172.236.129.21,172.236.129.47", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "de-fra-2", + "label": "Frankfurt 2, DE", "country": "de", "capabilities": ["Linodes", "Block + Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", + "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"], "metrics": ["Managed + Databases", "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.236.203.9,172.236.203.16,172.236.203.19,172.236.203.15,172.236.203.17,172.236.203.11,172.236.203.18,172.236.203.14,172.236.203.13,172.236.203.12", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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", + "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"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.236.171.41,172.236.171.42,172.236.171.25,172.236.171.44,172.236.171.26,172.236.171.45,172.236.171.24,172.236.171.43,172.236.171.27,172.236.171.28", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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", + "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": "172.236.32.23,172.236.32.35,172.236.32.30,172.236.32.28,172.236.32.32,172.236.32.33,172.236.32.27,172.236.32.37,172.236.32.29,172.236.32.34", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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", "NodeBalancers"], "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": 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", "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"], "metrics": ["Managed + Databases", "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.233.128.45,172.233.128.38,172.233.128.53,172.233.128.37,172.233.128.34,172.233.128.36,172.233.128.33,172.233.128.39,172.233.128.43,172.233.128.44", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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", + "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.232.224.23,172.232.224.32,172.232.224.26,172.232.224.27,172.232.224.21,172.232.224.24,172.232.224.22,172.232.224.20,172.232.224.31,172.232.224.28", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.233.160.34,172.233.160.27,172.233.160.30,172.233.160.29,172.233.160.32,172.233.160.28,172.233.160.33,172.233.160.26,172.233.160.25,172.233.160.31", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "172.232.192.19,172.232.192.18,172.232.192.16,172.232.192.20,172.232.192.24,172.232.192.21,172.232.192.22,172.232.192.17,172.232.192.15,172.232.192.23", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "172.233.64.44,172.233.64.43,172.233.64.37,172.233.64.40,172.233.64.46,172.233.64.41,172.233.64.39,172.233.64.42,172.233.64.45,172.233.64.38", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.232.96.17,172.232.96.26,172.232.96.19,172.232.96.20,172.232.96.25,172.232.96.21,172.232.96.18,172.232.96.22,172.232.96.23,172.232.96.24", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "172.233.111.6,172.233.111.17,172.233.111.21,172.233.111.25,172.233.111.19,172.233.111.12,172.233.111.26,172.233.111.16,172.233.111.18,172.233.111.9", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "172.232.128.24,172.232.128.26,172.232.128.20,172.232.128.22,172.232.128.25,172.232.128.19,172.232.128.23,172.232.128.18,172.232.128.21,172.232.128.27", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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", "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-sea", + "label": "Seattle, WA", "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", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.232.160.19,172.232.160.21,172.232.160.17,172.232.160.15,172.232.160.18,172.232.160.8,172.232.160.12,172.232.160.11,172.232.160.14,172.232.160.16", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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.232.32.21,172.232.32.23,172.232.32.17,172.232.32.18,172.232.32.16,172.232.32.22,172.232.32.20,172.232.32.14,172.232.32.11,172.232.32.12", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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", "NodeBalancers"], "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": 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": "139.144.192.62,139.144.192.60,139.144.192.61,139.144.192.53,139.144.192.54,139.144.192.67,139.144.192.69,139.144.192.66,139.144.192.52,139.144.192.68", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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": 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", + "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-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", + "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": "us-central", + "label": "Dallas, TX", "country": "us", "capabilities": ["Linodes", "Block Storage + Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", + "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", "Managed + Databases", "Metadata", "Placement Group", "StackScripts", "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", "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", "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", "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", "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, 109.74.192.20, 109.74.193.20, 109.74.194.20", + "ipv6": "1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, + 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678"}, "placement_group_limits": + {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5, "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", "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", "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", "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": 32}' + 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: + - Wed, 15 Apr 2026 12:26:04 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-vol-test1ic9vy87a2t7","region":"nl-ams","tags":null}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/volumes + method: POST + response: + body: '{"id": 15146239, "status": "creating", "label": "go-vol-test1ic9vy87a2t7", + "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "filesystem_path": + "/dev/disk/by-id/scsi-0Linode_Volume_go-vol-test1ic9vy87a2t7", "size": 20, "linode_id": + null, "linode_label": null, "io_ready": false, "region": "nl-ams", "tags": [], + "hardware_type": "nvme", "encryption": "enabled", "locks": []}' + 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: + - "391" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 15 Apr 2026 12:26:05 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - volumes:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "100" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" +- request: + body: '{"linode_id":96059268}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/volumes/15146239/attach + method: POST + response: + body: '{"id": 15146239, "status": "creating", "label": "go-vol-test1ic9vy87a2t7", + "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "filesystem_path": + "/dev/disk/by-id/scsi-0Linode_Volume_go-vol-test1ic9vy87a2t7", "size": 20, "linode_id": + 96059268, "linode_label": "go-test-ins-i5e5qjdm1008", "io_ready": false, "region": + "nl-ams", "tags": [], "hardware_type": "nvme", "encryption": "enabled", "locks": + []}' + 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: + - "417" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 15 Apr 2026 12:26:05 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - volumes:read_write,linodes: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/volumes/15146239 + method: GET + response: + body: '{"id": 15146239, "status": "active", "label": "go-vol-test1ic9vy87a2t7", + "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "filesystem_path": + "/dev/disk/by-id/scsi-0Linode_Volume_go-vol-test1ic9vy87a2t7", "size": 20, "linode_id": + 96059268, "linode_label": "go-test-ins-i5e5qjdm1008", "io_ready": true, "region": + "nl-ams", "tags": [], "hardware_type": "nvme", "encryption": "enabled", "locks": + []}' + 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: + - "414" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 15 Apr 2026 12:26:20 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - volumes: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: '{"label":"go-vol-test1ic9vy87a2t7-updated","tags":["updated"]}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/volumes/15146239 + method: PUT + response: + body: '{"id": 15146239, "status": "active", "label": "go-vol-test1ic9vy87a2t7-updated", + "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "filesystem_path": + "/dev/disk/by-id/scsi-0Linode_Volume_go-vol-test1ic9vy87a2t7-updated", "size": + 20, "linode_id": 96059268, "linode_label": "go-test-ins-i5e5qjdm1008", "io_ready": + true, "region": "nl-ams", "tags": ["updated"], "hardware_type": "nvme", "encryption": + "enabled", "locks": []}' + 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: + - "439" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 15 Apr 2026 12:26:20 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - volumes: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/linode/instances/96059268/volumes?page=1 + method: GET + response: + body: '{"data": [{"id": 15146239, "status": "active", "label": "go-vol-test1ic9vy87a2t7-updated", + "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "filesystem_path": + "/dev/disk/by-id/scsi-0Linode_Volume_go-vol-test1ic9vy87a2t7-updated", "size": + 20, "linode_id": 96059268, "linode_label": "go-test-ins-i5e5qjdm1008", "io_ready": + true, "region": "nl-ams", "tags": ["updated"], "hardware_type": "nvme", "encryption": + "enabled", "locks": []}], "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: + - "488" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 15 Apr 2026 12:26:21 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - linodes: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/volumes/15146239 + method: GET + response: + body: '{"id": 15146239, "status": "active", "label": "go-vol-test1ic9vy87a2t7-updated", + "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "filesystem_path": + "/dev/disk/by-id/scsi-0Linode_Volume_go-vol-test1ic9vy87a2t7-updated", "size": + 20, "linode_id": 96059268, "linode_label": "go-test-ins-i5e5qjdm1008", "io_ready": + true, "region": "nl-ams", "tags": ["updated"], "hardware_type": "nvme", "encryption": + "enabled", "locks": []}' + 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: + - "439" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 15 Apr 2026 12:26:21 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - volumes: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/volumes/15146239/detach + method: POST + 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: + - Wed, 15 Apr 2026 12:26:21 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - volumes:read_write,linodes: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/volumes/15146239 + method: GET + response: + body: '{"id": 15146239, "status": "active", "label": "go-vol-test1ic9vy87a2t7-updated", + "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "filesystem_path": + "/dev/disk/by-id/scsi-0Linode_Volume_go-vol-test1ic9vy87a2t7-updated", "size": + 20, "linode_id": null, "linode_label": null, "io_ready": false, "region": "nl-ams", + "tags": ["updated"], "hardware_type": "nvme", "encryption": "enabled", "locks": + []}' + 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: + - "414" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 15 Apr 2026 12:26:37 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - volumes: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/volumes/15146239 + 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: + - Wed, 15 Apr 2026 12:26:37 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - volumes: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/linode/instances/96059268 + 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: + - Wed, 15 Apr 2026 12:26:37 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - linodes: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: "" From 2ae068c082e63f914a36aa52a9d572a01fa193f7 Mon Sep 17 00:00:00 2001 From: Maciej Wilk Date: Wed, 15 Apr 2026 15:21:16 +0200 Subject: [PATCH 08/15] Refactor error msg in WaitForVolumeIOReadyStatus --- waitfor.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/waitfor.go b/waitfor.go index b6af2956e..77f2ac361 100644 --- a/waitfor.go +++ b/waitfor.go @@ -842,7 +842,7 @@ func (client Client) WaitForVolumeIOReadyStatus(ctx context.Context, volumeID in return volume, nil } case <-ctx.Done(): - return nil, fmt.Errorf("Error waiting for Volume %d IO Ready status %s: %w", volumeID, status, ctx.Err()) + return nil, fmt.Errorf("failed to wait for Volume %d IO Ready status %t: %w", volumeID, status, ctx.Err()) } } } From c71f063a1e35de92a565315c270e495533c8fd37 Mon Sep 17 00:00:00 2001 From: Maciej Wilk Date: Wed, 15 Apr 2026 15:56:35 +0200 Subject: [PATCH 09/15] Copilot remarks --- test/integration/iam_io_ready_test.go | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/test/integration/iam_io_ready_test.go b/test/integration/iam_io_ready_test.go index 9f917508a..275f66c10 100644 --- a/test/integration/iam_io_ready_test.go +++ b/test/integration/iam_io_ready_test.go @@ -75,11 +75,12 @@ func TestIAM_GetIOReadyForNotAttachedVolume(t *testing.T) { volumeList, err := client.ListVolumes(context.Background(), nil) require.NoErrorf(t, err, "Error listing volumes: %v", err) for _, vol := range volumeList { - if vol.Label == label { - assert.Equal(t, linodego.VolumeActive, volumeList[0].Status) - assert.Empty(t, volumeList[0].LinodeID) - assert.Empty(t, volumeList[0].LinodeLabel) - assert.False(t, volumeList[0].IOReady) + if vol.ID == volume.ID { + assert.Equal(t, linodego.VolumeActive, vol.Status) + assert.Empty(t, vol.LinodeID) + assert.Empty(t, vol.LinodeLabel) + assert.False(t, vol.IOReady) + break } } From cf665064e3ee17bfbc2253c24d9f767bca834710 Mon Sep 17 00:00:00 2001 From: Maciej Wilk Date: Wed, 15 Apr 2026 16:07:39 +0200 Subject: [PATCH 10/15] Copilot remarks --- test/integration/iam_io_ready_test.go | 4 ++-- waitfor.go | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/test/integration/iam_io_ready_test.go b/test/integration/iam_io_ready_test.go index 275f66c10..6d9b2f1cb 100644 --- a/test/integration/iam_io_ready_test.go +++ b/test/integration/iam_io_ready_test.go @@ -196,13 +196,13 @@ func TestIAM_GetIOReadyForClonedVolume(t *testing.T) { assert.Equal(t, labelCloned, volumeCloned.Label) assert.Equal(t, instance.ID, *volumeCloned.LinodeID) assert.Equal(t, instance.Label, volumeCloned.LinodeLabel) - assert.True(t, volume.IOReady) + assert.True(t, volumeCloned.IOReady) // Cleaning the cloned volume err = client.DetachVolume(context.Background(), volumeCloned.ID) require.NoErrorf(t, err, "Error detaching cloned volume: %v", err) - _, err = client.WaitForVolumeIOReadyStatus(context.Background(), volume.ID, false, 15) + _, err = client.WaitForVolumeIOReadyStatus(context.Background(), volumeCloned.ID, false, 15) require.NoErrorf(t, err, "Error waiting for IO Ready status of detached volume: %v", err) err = client.DeleteVolume(context.Background(), volumeCloned.ID) diff --git a/waitfor.go b/waitfor.go index 77f2ac361..0d4c4988b 100644 --- a/waitfor.go +++ b/waitfor.go @@ -821,6 +821,8 @@ func (client Client) WaitForAlertDefinitionStatus( } } +// WaitForVolumeIOReadyStatus waits for the io_ready status to verify whether the volume is successfully attached to +// a Linode instance and ready for read and write operations func (client Client) WaitForVolumeIOReadyStatus(ctx context.Context, volumeID int, status bool, timeoutSeconds int) (*Volume, error) { ctx, cancel := context.WithTimeout(ctx, time.Duration(timeoutSeconds)*time.Second) defer cancel() From 0213e4ca52a49767a934f2a93ce4db1026881484 Mon Sep 17 00:00:00 2001 From: Maciej Wilk Date: Wed, 15 Apr 2026 16:27:03 +0200 Subject: [PATCH 11/15] Refactor --- test/integration/iam_io_ready_test.go | 94 ++++++++++++--------------- 1 file changed, 43 insertions(+), 51 deletions(-) diff --git a/test/integration/iam_io_ready_test.go b/test/integration/iam_io_ready_test.go index 6d9b2f1cb..634de99ab 100644 --- a/test/integration/iam_io_ready_test.go +++ b/test/integration/iam_io_ready_test.go @@ -59,6 +59,31 @@ func setupVolumeAttachedToLinode( return client, volume, instance, teardown } +func assertVolumeAttachedToInstance(t *testing.T, volume *linodego.Volume, instance *linodego.Instance) { + t.Helper() + + require.NotNil(t, volume.LinodeID) + assert.Equal(t, instance.ID, *volume.LinodeID) + assert.Equal(t, instance.Label, volume.LinodeLabel) + assert.True(t, volume.IOReady) +} + +func requireSingleAttachedInstanceVolume(t *testing.T, client *linodego.Client, instance *linodego.Instance) linodego.Volume { + t.Helper() + + instanceVolumes, err := client.ListInstanceVolumes(context.Background(), instance.ID, nil) + require.NoErrorf(t, err, "Error listing instance volumes: %v", err) + require.Len(t, instanceVolumes, 1, "Expected 1 volume attached to instance, got %d", len(instanceVolumes)) + + volume := instanceVolumes[0] + require.NotNil(t, volume.LinodeID) + assert.Equal(t, instance.ID, *volume.LinodeID) + assert.Equal(t, instance.Label, volume.LinodeLabel) + assert.True(t, volume.IOReady) + + return volume +} + func TestIAM_GetIOReadyForNotAttachedVolume(t *testing.T) { client, recordStopper := createTestClient(t, "fixtures/TestIAM_GetIOReadyForNotAttachedVolume") defer recordStopper() @@ -97,18 +122,11 @@ func TestIAM_GetIOReadyForAttachedDetachedVolume(t *testing.T) { client, volume, instance, teardown := setupVolumeAttachedToLinode(t, "fixtures/TestIAM_GetIOReadyForAttachedDetachedVolume", false) defer teardown() - instanceVolumes, err := client.ListInstanceVolumes(context.Background(), instance.ID, nil) - require.NoErrorf(t, err, "Error listing instance volumes: %v", err) - require.Len(t, instanceVolumes, 1, "Expected 1 volume attached to instance, got %d", len(instanceVolumes)) - assert.Equal(t, instance.ID, *instanceVolumes[0].LinodeID) - assert.Equal(t, instance.Label, instanceVolumes[0].LinodeLabel) - assert.True(t, instanceVolumes[0].IOReady) + requireSingleAttachedInstanceVolume(t, client, instance) - volume, err = client.GetVolume(context.Background(), volume.ID) + volume, err := client.GetVolume(context.Background(), volume.ID) require.NoErrorf(t, err, "Error getting attached volume: %v", err) - assert.Equal(t, instance.ID, *volume.LinodeID) - assert.Equal(t, instance.Label, volume.LinodeLabel) - assert.True(t, volume.IOReady) + assertVolumeAttachedToInstance(t, volume, instance) err = client.DetachVolume(context.Background(), volume.ID) require.NoErrorf(t, err, "Error detaching volume: %v", err) @@ -116,7 +134,7 @@ func TestIAM_GetIOReadyForAttachedDetachedVolume(t *testing.T) { volume, err = client.WaitForVolumeIOReadyStatus(context.Background(), volume.ID, false, 45) require.NoErrorf(t, err, "Error waiting for IO Ready status of detached volume: %v", err) - instanceVolumes, err = client.ListInstanceVolumes(context.Background(), instance.ID, nil) + instanceVolumes, err := client.ListInstanceVolumes(context.Background(), instance.ID, nil) require.NoErrorf(t, err, "Error listing instance volumes after detach: %v", err) require.Len(t, instanceVolumes, 0, "Expected no volumes attached to instance, got %d", len(instanceVolumes)) @@ -130,11 +148,9 @@ func TestIAM_GetIOReadyForAttachedDetachedVolume(t *testing.T) { func TestIAM_GetIOReadyForUpdatedVolume(t *testing.T) { client, volume, instance, teardown := setupVolumeAttachedToLinode(t, "fixtures/TestIAM_GetIOReadyForUpdatedVolume", true) defer teardown() - assert.Equal(t, instance.ID, *volume.LinodeID) - assert.Equal(t, instance.Label, volume.LinodeLabel) + assertVolumeAttachedToInstance(t, volume, instance) assert.NotContains(t, "-updated", volume.Label) assert.Empty(t, volume.Tags) - assert.True(t, volume.IOReady) labelUpdated := volume.Label + "-updated" tagsUpdated := []string{"updated"} @@ -146,22 +162,15 @@ func TestIAM_GetIOReadyForUpdatedVolume(t *testing.T) { volume, err := client.UpdateVolume(context.Background(), volume.ID, updateOpts) require.NoErrorf(t, err, "Error updating volume: %v", err) - instanceVolumes, err := client.ListInstanceVolumes(context.Background(), instance.ID, nil) - require.NoErrorf(t, err, "Error listing instance volumes: %v", err) - require.Len(t, instanceVolumes, 1, "Expected 1 volume attached to instance, got %d", len(instanceVolumes)) - assert.Equal(t, instance.ID, *instanceVolumes[0].LinodeID) - assert.Equal(t, instance.Label, instanceVolumes[0].LinodeLabel) - assert.Equal(t, labelUpdated, instanceVolumes[0].Label) - assert.Equal(t, tagsUpdated, instanceVolumes[0].Tags) - assert.True(t, instanceVolumes[0].IOReady) + instanceVolume := requireSingleAttachedInstanceVolume(t, client, instance) + assert.Equal(t, labelUpdated, instanceVolume.Label) + assert.Equal(t, tagsUpdated, instanceVolume.Tags) volume, err = client.GetVolume(context.Background(), volume.ID) require.NoErrorf(t, err, "Error getting updated volume: %v", err) - assert.Equal(t, instance.ID, *volume.LinodeID) - assert.Equal(t, instance.Label, volume.LinodeLabel) + assertVolumeAttachedToInstance(t, volume, instance) assert.Equal(t, labelUpdated, volume.Label) assert.Equal(t, tagsUpdated, volume.Tags) - assert.True(t, volume.IOReady) } func TestIAM_GetIOReadyForClonedVolume(t *testing.T) { @@ -169,34 +178,26 @@ func TestIAM_GetIOReadyForClonedVolume(t *testing.T) { client, volume, instance, teardown := setupVolumeAttachedToLinode(t, "fixtures/TestIAM_GetIOReadyForClonedVolume", true) defer teardown() - assert.Equal(t, instance.ID, *volume.LinodeID) - assert.Equal(t, instance.Label, volume.LinodeLabel) - assert.True(t, volume.IOReady) + assertVolumeAttachedToInstance(t, volume, instance) labelCloned := volume.Label + "-cloned" - instanceVolumes, err := client.ListInstanceVolumes(context.Background(), instance.ID, nil) - require.NoErrorf(t, err, "Error listing instance volumes: %v", err) - require.Len(t, instanceVolumes, 1, "Expected 1 volume attached to instance, got %d", len(instanceVolumes)) + requireSingleAttachedInstanceVolume(t, client, instance) volumeCloned, err := client.CloneVolume(context.Background(), volume.ID, labelCloned) require.NoErrorf(t, err, "Error cloning volume: %v", err) - instanceVolumes, err = client.ListInstanceVolumes(context.Background(), instance.ID, nil) + instanceVolumes, err := client.ListInstanceVolumes(context.Background(), instance.ID, nil) require.NoErrorf(t, err, "Error listing instance volumes: %v", err) require.Len(t, instanceVolumes, 2, "Expected 2 volumes attached to instance, got %d", len(instanceVolumes)) for _, vol := range instanceVolumes { - assert.Equal(t, instance.ID, *vol.LinodeID) - assert.Equal(t, instance.Label, vol.LinodeLabel) - assert.True(t, vol.IOReady) + assertVolumeAttachedToInstance(t, &vol, instance) } volumeCloned, err = client.GetVolume(context.Background(), volumeCloned.ID) require.NoErrorf(t, err, "Error getting cloned volume: %v", err) assert.Equal(t, labelCloned, volumeCloned.Label) - assert.Equal(t, instance.ID, *volumeCloned.LinodeID) - assert.Equal(t, instance.Label, volumeCloned.LinodeLabel) - assert.True(t, volumeCloned.IOReady) + assertVolumeAttachedToInstance(t, volumeCloned, instance) // Cleaning the cloned volume err = client.DetachVolume(context.Background(), volumeCloned.ID) @@ -212,9 +213,7 @@ func TestIAM_GetIOReadyForClonedVolume(t *testing.T) { func TestIAM_GetIOReadyForResizedVolume(t *testing.T) { client, volume, instance, teardown := setupVolumeAttachedToLinode(t, "fixtures/TestIAM_GetIOReadyForResizedVolume", true) defer teardown() - assert.Equal(t, instance.ID, *volume.LinodeID) - assert.Equal(t, instance.Label, volume.LinodeLabel) - assert.True(t, volume.IOReady) + assertVolumeAttachedToInstance(t, volume, instance) newSize := volume.Size + 10 @@ -224,18 +223,11 @@ func TestIAM_GetIOReadyForResizedVolume(t *testing.T) { _, err = client.WaitForVolumeStatus(context.Background(), volume.ID, linodego.VolumeActive, 30) require.NoErrorf(t, err, "Error waiting for volume to be active: %v", err) - instanceVolumes, err := client.ListInstanceVolumes(context.Background(), instance.ID, nil) - require.NoErrorf(t, err, "Error listing instance volumes: %v", err) - require.Len(t, instanceVolumes, 1, "Expected 1 volume attached to instance, got %d", len(instanceVolumes)) - assert.Equal(t, instance.ID, *instanceVolumes[0].LinodeID) - assert.Equal(t, instance.Label, instanceVolumes[0].LinodeLabel) - assert.Equal(t, newSize, instanceVolumes[0].Size) - assert.True(t, instanceVolumes[0].IOReady) + instanceVolume := requireSingleAttachedInstanceVolume(t, client, instance) + assert.Equal(t, newSize, instanceVolume.Size) volume, err = client.GetVolume(context.Background(), volume.ID) require.NoErrorf(t, err, "Error getting updated volume: %v", err) - assert.Equal(t, instance.ID, *volume.LinodeID) - assert.Equal(t, instance.Label, volume.LinodeLabel) + assertVolumeAttachedToInstance(t, volume, instance) assert.Equal(t, newSize, volume.Size) - assert.True(t, volume.IOReady) } From c0b880181e183e6c1a2d6525e18e69ee6b6f62f1 Mon Sep 17 00:00:00 2001 From: Maciej Wilk Date: Mon, 20 Apr 2026 13:59:53 +0200 Subject: [PATCH 12/15] Update TestIAM_GetIOReadyForClonedVolume and cleanups --- ...M_GetIOReadyForAttachedDetachedVolume.yaml | 222 +- .../TestIAM_GetIOReadyForClonedVolume.yaml | 2083 +++++++++++++++++ ...estIAM_GetIOReadyForNotAttachedVolume.yaml | 40 +- .../TestIAM_GetIOReadyForResizedVolume.yaml | 283 +-- .../TestIAM_GetIOReadyForUpdatedVolume.yaml | 364 ++- test/integration/iam_io_ready_test.go | 56 +- 6 files changed, 2601 insertions(+), 447 deletions(-) create mode 100644 test/integration/fixtures/TestIAM_GetIOReadyForClonedVolume.yaml diff --git a/test/integration/fixtures/TestIAM_GetIOReadyForAttachedDetachedVolume.yaml b/test/integration/fixtures/TestIAM_GetIOReadyForAttachedDetachedVolume.yaml index 7f76311f4..a91f786af 100644 --- a/test/integration/fixtures/TestIAM_GetIOReadyForAttachedDetachedVolume.yaml +++ b/test/integration/fixtures/TestIAM_GetIOReadyForAttachedDetachedVolume.yaml @@ -239,7 +239,7 @@ interactions: "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"]}, + Databases", "NodeBalancers"], "metrics": ["Linodes", "Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "139.144.192.62,139.144.192.60,139.144.192.61,139.144.192.53,139.144.192.54,139.144.192.67,139.144.192.69,139.144.192.66,139.144.192.52,139.144.192.68", "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": @@ -378,7 +378,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 15 Apr 2026 12:22:38 GMT + - Mon, 20 Apr 2026 11:41:39 GMT Pragma: - no-cache Strict-Transport-Security: @@ -404,7 +404,7 @@ interactions: code: 200 duration: "" - request: - body: '{"region":"nl-ams","type":"g6-nanode-1","label":"go-test-ins-0oa9cih3p138","root_pass":"a227BDo21]\u003e4+4TY[Y8BJ+$9LdGgt/?vueRZ[3q:X3ht5\u003ca*:0D!w52(zWc0''KQu","image":"linode/debian12","firewall_id":4131481,"booted":true}' + body: '{"region":"nl-ams","type":"g6-nanode-1","label":"go-test-ins-562w4i0jxr9g","root_pass":"T*/}C^1C\u003eul3~V\\R32\u003cU4TDz2L4),!Kfz3ZR8RMt\u0026Ca6x4=*pm48gl4k\\d2p9bK$","image":"linode/debian12","firewall_id":4150731,"booted":true}' form: {} headers: Accept: @@ -416,19 +416,19 @@ interactions: url: https://api.linode.com/v4beta/linode/instances method: POST response: - body: '{"id": 96059228, "label": "go-test-ins-0oa9cih3p138", "group": "", "status": + body: '{"id": 96323225, "label": "go-test-ins-562w4i0jxr9g", "group": "", "status": "provisioning", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", - "type": "g6-nanode-1", "ipv4": ["172.235.191.77"], "ipv6": "1234::5678/128", + "type": "g6-nanode-1", "ipv4": ["172.239.237.52"], "ipv6": "1234::5678/128", "image": "linode/debian12", "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}, "backups": {"enabled": false, "available": false, "schedule": - {"day": null, "window": null}, "last_successful": null}, "hypervisor": "kvm", - "watchdog_enabled": true, "tags": [], "host_uuid": "88aed86ce856447ead69852e22829c15b084bde4", - "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": []}' + 80, "io": 10000, "system_alerts": [], "user_alerts": []}, "backups": {"enabled": + false, "available": false, "schedule": {"day": null, "window": null}, "last_successful": + null}, "hypervisor": "kvm", "watchdog_enabled": true, "tags": [], "host_uuid": + "88aed86ce856447ead69852e22829c15b084bde4", "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" @@ -451,7 +451,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 15 Apr 2026 12:22:40 GMT + - Mon, 20 Apr 2026 11:41:42 GMT Pragma: - no-cache Strict-Transport-Security: @@ -485,22 +485,22 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/linode/instances/96059228 + url: https://api.linode.com/v4beta/linode/instances/96323225 method: GET response: - body: '{"id": 96059228, "label": "go-test-ins-0oa9cih3p138", "group": "", "status": + body: '{"id": 96323225, "label": "go-test-ins-562w4i0jxr9g", "group": "", "status": "provisioning", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", - "type": "g6-nanode-1", "ipv4": ["172.235.191.77"], "ipv6": "1234::5678/128", + "type": "g6-nanode-1", "ipv4": ["172.239.237.52"], "ipv6": "1234::5678/128", "image": "linode/debian12", "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}, "backups": {"enabled": false, "available": false, "schedule": - {"day": null, "window": null}, "last_successful": null}, "hypervisor": "kvm", - "watchdog_enabled": true, "tags": [], "host_uuid": "88aed86ce856447ead69852e22829c15b084bde4", - "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": []}' + 80, "io": 10000, "system_alerts": [], "user_alerts": []}, "backups": {"enabled": + false, "available": false, "schedule": {"day": null, "window": null}, "last_successful": + null}, "hypervisor": "kvm", "watchdog_enabled": true, "tags": [], "host_uuid": + "88aed86ce856447ead69852e22829c15b084bde4", "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" @@ -523,7 +523,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 15 Apr 2026 12:22:56 GMT + - Mon, 20 Apr 2026 11:41:57 GMT Pragma: - no-cache Strict-Transport-Security: @@ -558,22 +558,22 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/linode/instances/96059228 + url: https://api.linode.com/v4beta/linode/instances/96323225 method: GET response: - body: '{"id": 96059228, "label": "go-test-ins-0oa9cih3p138", "group": "", "status": + body: '{"id": 96323225, "label": "go-test-ins-562w4i0jxr9g", "group": "", "status": "provisioning", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", - "type": "g6-nanode-1", "ipv4": ["172.235.191.77"], "ipv6": "1234::5678/128", + "type": "g6-nanode-1", "ipv4": ["172.239.237.52"], "ipv6": "1234::5678/128", "image": "linode/debian12", "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}, "backups": {"enabled": false, "available": false, "schedule": - {"day": null, "window": null}, "last_successful": null}, "hypervisor": "kvm", - "watchdog_enabled": true, "tags": [], "host_uuid": "88aed86ce856447ead69852e22829c15b084bde4", - "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": []}' + 80, "io": 10000, "system_alerts": [], "user_alerts": []}, "backups": {"enabled": + false, "available": false, "schedule": {"day": null, "window": null}, "last_successful": + null}, "hypervisor": "kvm", "watchdog_enabled": true, "tags": [], "host_uuid": + "88aed86ce856447ead69852e22829c15b084bde4", "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" @@ -596,7 +596,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 15 Apr 2026 12:23:11 GMT + - Mon, 20 Apr 2026 11:42:12 GMT Pragma: - no-cache Strict-Transport-Security: @@ -631,22 +631,22 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/linode/instances/96059228 + url: https://api.linode.com/v4beta/linode/instances/96323225 method: GET response: - body: '{"id": 96059228, "label": "go-test-ins-0oa9cih3p138", "group": "", "status": + body: '{"id": 96323225, "label": "go-test-ins-562w4i0jxr9g", "group": "", "status": "provisioning", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", - "type": "g6-nanode-1", "ipv4": ["172.235.191.77"], "ipv6": "1234::5678/128", + "type": "g6-nanode-1", "ipv4": ["172.239.237.52"], "ipv6": "1234::5678/128", "image": "linode/debian12", "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}, "backups": {"enabled": false, "available": false, "schedule": - {"day": null, "window": null}, "last_successful": null}, "hypervisor": "kvm", - "watchdog_enabled": true, "tags": [], "host_uuid": "88aed86ce856447ead69852e22829c15b084bde4", - "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": []}' + 80, "io": 10000, "system_alerts": [], "user_alerts": []}, "backups": {"enabled": + false, "available": false, "schedule": {"day": null, "window": null}, "last_successful": + null}, "hypervisor": "kvm", "watchdog_enabled": true, "tags": [], "host_uuid": + "88aed86ce856447ead69852e22829c15b084bde4", "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" @@ -669,7 +669,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 15 Apr 2026 12:23:26 GMT + - Mon, 20 Apr 2026 11:42:27 GMT Pragma: - no-cache Strict-Transport-Security: @@ -704,22 +704,22 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/linode/instances/96059228 + url: https://api.linode.com/v4beta/linode/instances/96323225 method: GET response: - body: '{"id": 96059228, "label": "go-test-ins-0oa9cih3p138", "group": "", "status": + body: '{"id": 96323225, "label": "go-test-ins-562w4i0jxr9g", "group": "", "status": "booting", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", - "type": "g6-nanode-1", "ipv4": ["172.235.191.77"], "ipv6": "1234::5678/128", + "type": "g6-nanode-1", "ipv4": ["172.239.237.52"], "ipv6": "1234::5678/128", "image": "linode/debian12", "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}, "backups": {"enabled": false, "available": false, "schedule": - {"day": null, "window": null}, "last_successful": null}, "hypervisor": "kvm", - "watchdog_enabled": true, "tags": [], "host_uuid": "88aed86ce856447ead69852e22829c15b084bde4", - "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": []}' + 80, "io": 10000, "system_alerts": [], "user_alerts": []}, "backups": {"enabled": + false, "available": false, "schedule": {"day": null, "window": null}, "last_successful": + null}, "hypervisor": "kvm", "watchdog_enabled": true, "tags": [], "host_uuid": + "88aed86ce856447ead69852e22829c15b084bde4", "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" @@ -742,7 +742,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 15 Apr 2026 12:23:41 GMT + - Mon, 20 Apr 2026 11:42:42 GMT Pragma: - no-cache Strict-Transport-Security: @@ -777,22 +777,22 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/linode/instances/96059228 + url: https://api.linode.com/v4beta/linode/instances/96323225 method: GET response: - body: '{"id": 96059228, "label": "go-test-ins-0oa9cih3p138", "group": "", "status": + body: '{"id": 96323225, "label": "go-test-ins-562w4i0jxr9g", "group": "", "status": "running", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", - "type": "g6-nanode-1", "ipv4": ["172.235.191.77"], "ipv6": "1234::5678/128", + "type": "g6-nanode-1", "ipv4": ["172.239.237.52"], "ipv6": "1234::5678/128", "image": "linode/debian12", "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}, "backups": {"enabled": false, "available": false, "schedule": - {"day": null, "window": null}, "last_successful": null}, "hypervisor": "kvm", - "watchdog_enabled": true, "tags": [], "host_uuid": "88aed86ce856447ead69852e22829c15b084bde4", - "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": []}' + 80, "io": 10000, "system_alerts": [], "user_alerts": []}, "backups": {"enabled": + false, "available": false, "schedule": {"day": null, "window": null}, "last_successful": + null}, "hypervisor": "kvm", "watchdog_enabled": true, "tags": [], "host_uuid": + "88aed86ce856447ead69852e22829c15b084bde4", "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" @@ -815,7 +815,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 15 Apr 2026 12:23:56 GMT + - Mon, 20 Apr 2026 11:42:57 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1078,7 +1078,7 @@ interactions: "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"]}, + Databases", "NodeBalancers"], "metrics": ["Linodes", "Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "139.144.192.62,139.144.192.60,139.144.192.61,139.144.192.53,139.144.192.54,139.144.192.67,139.144.192.69,139.144.192.66,139.144.192.52,139.144.192.68", "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": @@ -1217,7 +1217,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 15 Apr 2026 12:23:56 GMT + - Mon, 20 Apr 2026 11:42:57 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1243,7 +1243,7 @@ interactions: code: 200 duration: "" - request: - body: '{"label":"go-vol-testo6536kr5rtr9","region":"nl-ams","tags":null}' + body: '{"label":"go-vol-test64gjv64ri6j5","region":"nl-ams","size":15,"tags":null}' form: {} headers: Accept: @@ -1255,9 +1255,9 @@ interactions: url: https://api.linode.com/v4beta/volumes method: POST response: - body: '{"id": 15146203, "status": "creating", "label": "go-vol-testo6536kr5rtr9", + body: '{"id": 15238373, "status": "creating", "label": "go-vol-test64gjv64ri6j5", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "filesystem_path": - "/dev/disk/by-id/scsi-0Linode_Volume_go-vol-testo6536kr5rtr9", "size": 20, "linode_id": + "/dev/disk/by-id/scsi-0Linode_Volume_go-vol-test64gjv64ri6j5", "size": 15, "linode_id": null, "linode_label": null, "io_ready": false, "region": "nl-ams", "tags": [], "hardware_type": "nvme", "encryption": "enabled", "locks": []}' headers: @@ -1284,7 +1284,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 15 Apr 2026 12:23:56 GMT + - Mon, 20 Apr 2026 11:42:58 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1308,7 +1308,7 @@ interactions: code: 200 duration: "" - request: - body: '{"linode_id":96059228}' + body: '{"linode_id":96323225}' form: {} headers: Accept: @@ -1317,13 +1317,13 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/volumes/15146203/attach + url: https://api.linode.com/v4beta/volumes/15238373/attach method: POST response: - body: '{"id": 15146203, "status": "creating", "label": "go-vol-testo6536kr5rtr9", + body: '{"id": 15238373, "status": "creating", "label": "go-vol-test64gjv64ri6j5", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "filesystem_path": - "/dev/disk/by-id/scsi-0Linode_Volume_go-vol-testo6536kr5rtr9", "size": 20, "linode_id": - 96059228, "linode_label": "go-test-ins-0oa9cih3p138", "io_ready": false, "region": + "/dev/disk/by-id/scsi-0Linode_Volume_go-vol-test64gjv64ri6j5", "size": 15, "linode_id": + 96323225, "linode_label": "go-test-ins-562w4i0jxr9g", "io_ready": false, "region": "nl-ams", "tags": [], "hardware_type": "nvme", "encryption": "enabled", "locks": []}' headers: @@ -1350,7 +1350,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 15 Apr 2026 12:23:57 GMT + - Mon, 20 Apr 2026 11:42:58 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1383,13 +1383,13 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/volumes/15146203 + url: https://api.linode.com/v4beta/volumes/15238373 method: GET response: - body: '{"id": 15146203, "status": "active", "label": "go-vol-testo6536kr5rtr9", + body: '{"id": 15238373, "status": "active", "label": "go-vol-test64gjv64ri6j5", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "filesystem_path": - "/dev/disk/by-id/scsi-0Linode_Volume_go-vol-testo6536kr5rtr9", "size": 20, "linode_id": - 96059228, "linode_label": "go-test-ins-0oa9cih3p138", "io_ready": true, "region": + "/dev/disk/by-id/scsi-0Linode_Volume_go-vol-test64gjv64ri6j5", "size": 15, "linode_id": + 96323225, "linode_label": "go-test-ins-562w4i0jxr9g", "io_ready": true, "region": "nl-ams", "tags": [], "hardware_type": "nvme", "encryption": "enabled", "locks": []}' headers: @@ -1416,7 +1416,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 15 Apr 2026 12:24:12 GMT + - Mon, 20 Apr 2026 11:43:13 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1450,13 +1450,13 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/linode/instances/96059228/volumes?page=1 + url: https://api.linode.com/v4beta/linode/instances/96323225/volumes?page=1 method: GET response: - body: '{"data": [{"id": 15146203, "status": "active", "label": "go-vol-testo6536kr5rtr9", + body: '{"data": [{"id": 15238373, "status": "active", "label": "go-vol-test64gjv64ri6j5", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "filesystem_path": - "/dev/disk/by-id/scsi-0Linode_Volume_go-vol-testo6536kr5rtr9", "size": 20, "linode_id": - 96059228, "linode_label": "go-test-ins-0oa9cih3p138", "io_ready": true, "region": + "/dev/disk/by-id/scsi-0Linode_Volume_go-vol-test64gjv64ri6j5", "size": 15, "linode_id": + 96323225, "linode_label": "go-test-ins-562w4i0jxr9g", "io_ready": true, "region": "nl-ams", "tags": [], "hardware_type": "nvme", "encryption": "enabled", "locks": []}], "page": 1, "pages": 1, "results": 1}' headers: @@ -1483,7 +1483,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 15 Apr 2026 12:24:12 GMT + - Mon, 20 Apr 2026 11:43:14 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1517,13 +1517,13 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/volumes/15146203 + url: https://api.linode.com/v4beta/volumes/15238373 method: GET response: - body: '{"id": 15146203, "status": "active", "label": "go-vol-testo6536kr5rtr9", + body: '{"id": 15238373, "status": "active", "label": "go-vol-test64gjv64ri6j5", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "filesystem_path": - "/dev/disk/by-id/scsi-0Linode_Volume_go-vol-testo6536kr5rtr9", "size": 20, "linode_id": - 96059228, "linode_label": "go-test-ins-0oa9cih3p138", "io_ready": true, "region": + "/dev/disk/by-id/scsi-0Linode_Volume_go-vol-test64gjv64ri6j5", "size": 15, "linode_id": + 96323225, "linode_label": "go-test-ins-562w4i0jxr9g", "io_ready": true, "region": "nl-ams", "tags": [], "hardware_type": "nvme", "encryption": "enabled", "locks": []}' headers: @@ -1550,7 +1550,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 15 Apr 2026 12:24:13 GMT + - Mon, 20 Apr 2026 11:43:14 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1584,7 +1584,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/volumes/15146203/detach + url: https://api.linode.com/v4beta/volumes/15238373/detach method: POST response: body: '{}' @@ -1612,7 +1612,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 15 Apr 2026 12:24:13 GMT + - Mon, 20 Apr 2026 11:43:14 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1645,12 +1645,12 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/volumes/15146203 + url: https://api.linode.com/v4beta/volumes/15238373 method: GET response: - body: '{"id": 15146203, "status": "active", "label": "go-vol-testo6536kr5rtr9", + body: '{"id": 15238373, "status": "active", "label": "go-vol-test64gjv64ri6j5", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "filesystem_path": - "/dev/disk/by-id/scsi-0Linode_Volume_go-vol-testo6536kr5rtr9", "size": 20, "linode_id": + "/dev/disk/by-id/scsi-0Linode_Volume_go-vol-test64gjv64ri6j5", "size": 15, "linode_id": null, "linode_label": null, "io_ready": false, "region": "nl-ams", "tags": [], "hardware_type": "nvme", "encryption": "enabled", "locks": []}' headers: @@ -1677,7 +1677,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 15 Apr 2026 12:24:28 GMT + - Mon, 20 Apr 2026 11:43:30 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1711,7 +1711,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/linode/instances/96059228/volumes?page=1 + url: https://api.linode.com/v4beta/linode/instances/96323225/volumes?page=1 method: GET response: body: '{"data": [], "page": 1, "pages": 1, "results": 0}' @@ -1739,7 +1739,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 15 Apr 2026 12:24:29 GMT + - Mon, 20 Apr 2026 11:43:30 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1773,12 +1773,12 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/volumes/15146203 + url: https://api.linode.com/v4beta/volumes/15238373 method: GET response: - body: '{"id": 15146203, "status": "active", "label": "go-vol-testo6536kr5rtr9", + body: '{"id": 15238373, "status": "active", "label": "go-vol-test64gjv64ri6j5", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "filesystem_path": - "/dev/disk/by-id/scsi-0Linode_Volume_go-vol-testo6536kr5rtr9", "size": 20, "linode_id": + "/dev/disk/by-id/scsi-0Linode_Volume_go-vol-test64gjv64ri6j5", "size": 15, "linode_id": null, "linode_label": null, "io_ready": false, "region": "nl-ams", "tags": [], "hardware_type": "nvme", "encryption": "enabled", "locks": []}' headers: @@ -1805,7 +1805,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 15 Apr 2026 12:24:45 GMT + - Mon, 20 Apr 2026 11:43:30 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1839,7 +1839,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/volumes/15146203 + url: https://api.linode.com/v4beta/volumes/15238373 method: DELETE response: body: '{}' @@ -1867,7 +1867,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 15 Apr 2026 12:24:46 GMT + - Mon, 20 Apr 2026 11:43:31 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1900,7 +1900,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/linode/instances/96059228 + url: https://api.linode.com/v4beta/linode/instances/96323225 method: DELETE response: body: '{}' @@ -1928,7 +1928,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 15 Apr 2026 12:24:46 GMT + - Mon, 20 Apr 2026 11:43:31 GMT Pragma: - no-cache Strict-Transport-Security: diff --git a/test/integration/fixtures/TestIAM_GetIOReadyForClonedVolume.yaml b/test/integration/fixtures/TestIAM_GetIOReadyForClonedVolume.yaml new file mode 100644 index 000000000..20cb1567d --- /dev/null +++ b/test/integration/fixtures/TestIAM_GetIOReadyForClonedVolume.yaml @@ -0,0 +1,2083 @@ +--- +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": "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", "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": + ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.233.33.36,172.233.33.38,172.233.33.35,172.233.33.39,172.233.33.34,172.233.33.33,172.233.33.31,172.233.33.30,172.233.33.37,172.233.33.32", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.239.11.24,172.239.11.22,172.239.11.17,172.239.11.20,172.239.11.23,172.239.11.19,172.239.11.21,172.239.11.15,172.239.11.16,172.239.11.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": "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", "NodeBalancers"], "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": 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"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.236.129.8,172.236.129.42,172.236.129.41,172.236.129.19,172.236.129.46,172.236.129.23,172.236.129.48,172.236.129.20,172.236.129.21,172.236.129.47", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "de-fra-2", + "label": "Frankfurt 2, DE", "country": "de", "capabilities": ["Linodes", "Block + Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", + "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"], "metrics": ["Managed + Databases", "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.236.203.9,172.236.203.16,172.236.203.19,172.236.203.15,172.236.203.17,172.236.203.11,172.236.203.18,172.236.203.14,172.236.203.13,172.236.203.12", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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", + "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"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.236.171.41,172.236.171.42,172.236.171.25,172.236.171.44,172.236.171.26,172.236.171.45,172.236.171.24,172.236.171.43,172.236.171.27,172.236.171.28", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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", + "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": "172.236.32.23,172.236.32.35,172.236.32.30,172.236.32.28,172.236.32.32,172.236.32.33,172.236.32.27,172.236.32.37,172.236.32.29,172.236.32.34", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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", "NodeBalancers"], "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": 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", "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"], "metrics": ["Managed + Databases", "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.233.128.45,172.233.128.38,172.233.128.53,172.233.128.37,172.233.128.34,172.233.128.36,172.233.128.33,172.233.128.39,172.233.128.43,172.233.128.44", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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", + "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.232.224.23,172.232.224.32,172.232.224.26,172.232.224.27,172.232.224.21,172.232.224.24,172.232.224.22,172.232.224.20,172.232.224.31,172.232.224.28", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.233.160.34,172.233.160.27,172.233.160.30,172.233.160.29,172.233.160.32,172.233.160.28,172.233.160.33,172.233.160.26,172.233.160.25,172.233.160.31", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "172.232.192.19,172.232.192.18,172.232.192.16,172.232.192.20,172.232.192.24,172.232.192.21,172.232.192.22,172.232.192.17,172.232.192.15,172.232.192.23", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "172.233.64.44,172.233.64.43,172.233.64.37,172.233.64.40,172.233.64.46,172.233.64.41,172.233.64.39,172.233.64.42,172.233.64.45,172.233.64.38", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.232.96.17,172.232.96.26,172.232.96.19,172.232.96.20,172.232.96.25,172.232.96.21,172.232.96.18,172.232.96.22,172.232.96.23,172.232.96.24", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "172.233.111.6,172.233.111.17,172.233.111.21,172.233.111.25,172.233.111.19,172.233.111.12,172.233.111.26,172.233.111.16,172.233.111.18,172.233.111.9", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "172.232.128.24,172.232.128.26,172.232.128.20,172.232.128.22,172.232.128.25,172.232.128.19,172.232.128.23,172.232.128.18,172.232.128.21,172.232.128.27", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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", "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-sea", + "label": "Seattle, WA", "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", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.232.160.19,172.232.160.21,172.232.160.17,172.232.160.15,172.232.160.18,172.232.160.8,172.232.160.12,172.232.160.11,172.232.160.14,172.232.160.16", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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.232.32.21,172.232.32.23,172.232.32.17,172.232.32.18,172.232.32.16,172.232.32.22,172.232.32.20,172.232.32.14,172.232.32.11,172.232.32.12", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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", "NodeBalancers"], "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": 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": ["Linodes", "Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "139.144.192.62,139.144.192.60,139.144.192.61,139.144.192.53,139.144.192.54,139.144.192.67,139.144.192.69,139.144.192.66,139.144.192.52,139.144.192.68", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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": 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", + "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-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", + "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": "us-central", + "label": "Dallas, TX", "country": "us", "capabilities": ["Linodes", "Block Storage + Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", + "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", "Managed + Databases", "Metadata", "Placement Group", "StackScripts", "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", "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", "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", "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", "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, 109.74.192.20, 109.74.193.20, 109.74.194.20", + "ipv6": "1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, + 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678"}, "placement_group_limits": + {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5, "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", "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", "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", "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": 32}' + 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: + - Mon, 20 Apr 2026 11:45:53 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: '{"region":"nl-ams","type":"g6-nanode-1","label":"go-test-ins-1epvp5i382b3","root_pass":"dPwx6/y7-zC/-9LGo14ed6|U[(6+SHb3A?`pF8@kDBfX{Fg81684O\u00264GC\u0026q3$nt;","image":"linode/debian12","firewall_id":4150731,"booted":true}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/linode/instances + method: POST + response: + body: '{"id": 96323394, "label": "go-test-ins-1epvp5i382b3", "group": "", "status": + "provisioning", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", + "type": "g6-nanode-1", "ipv4": ["172.239.237.52"], "ipv6": "1234::5678/128", + "image": "linode/debian12", "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": + false, "available": false, "schedule": {"day": null, "window": null}, "last_successful": + null}, "hypervisor": "kvm", "watchdog_enabled": true, "tags": [], "host_uuid": + "88aed86ce856447ead69852e22829c15b084bde4", "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" + 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: + - Mon, 20 Apr 2026 11:45:55 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - linodes:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "20" + 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/linode/instances/96323394 + method: GET + response: + body: '{"id": 96323394, "label": "go-test-ins-1epvp5i382b3", "group": "", "status": + "provisioning", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", + "type": "g6-nanode-1", "ipv4": ["172.239.237.52"], "ipv6": "1234::5678/128", + "image": "linode/debian12", "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": + false, "available": false, "schedule": {"day": null, "window": null}, "last_successful": + null}, "hypervisor": "kvm", "watchdog_enabled": true, "tags": [], "host_uuid": + "88aed86ce856447ead69852e22829c15b084bde4", "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" + 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: + - Mon, 20 Apr 2026 11:46:10 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - linodes: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/linode/instances/96323394 + method: GET + response: + body: '{"id": 96323394, "label": "go-test-ins-1epvp5i382b3", "group": "", "status": + "provisioning", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", + "type": "g6-nanode-1", "ipv4": ["172.239.237.52"], "ipv6": "1234::5678/128", + "image": "linode/debian12", "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": + false, "available": false, "schedule": {"day": null, "window": null}, "last_successful": + null}, "hypervisor": "kvm", "watchdog_enabled": true, "tags": [], "host_uuid": + "88aed86ce856447ead69852e22829c15b084bde4", "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" + 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: + - Mon, 20 Apr 2026 11:46:25 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - linodes: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/linode/instances/96323394 + method: GET + response: + body: '{"id": 96323394, "label": "go-test-ins-1epvp5i382b3", "group": "", "status": + "provisioning", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", + "type": "g6-nanode-1", "ipv4": ["172.239.237.52"], "ipv6": "1234::5678/128", + "image": "linode/debian12", "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": + false, "available": false, "schedule": {"day": null, "window": null}, "last_successful": + null}, "hypervisor": "kvm", "watchdog_enabled": true, "tags": [], "host_uuid": + "88aed86ce856447ead69852e22829c15b084bde4", "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" + 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: + - Mon, 20 Apr 2026 11:46:40 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - linodes: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/linode/instances/96323394 + method: GET + response: + body: '{"id": 96323394, "label": "go-test-ins-1epvp5i382b3", "group": "", "status": + "booting", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", + "type": "g6-nanode-1", "ipv4": ["172.239.237.52"], "ipv6": "1234::5678/128", + "image": "linode/debian12", "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": + false, "available": false, "schedule": {"day": null, "window": null}, "last_successful": + null}, "hypervisor": "kvm", "watchdog_enabled": true, "tags": [], "host_uuid": + "88aed86ce856447ead69852e22829c15b084bde4", "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" + 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: + - Mon, 20 Apr 2026 11:46:55 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - linodes: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/linode/instances/96323394 + method: GET + response: + body: '{"id": 96323394, "label": "go-test-ins-1epvp5i382b3", "group": "", "status": + "running", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", + "type": "g6-nanode-1", "ipv4": ["172.239.237.52"], "ipv6": "1234::5678/128", + "image": "linode/debian12", "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": + false, "available": false, "schedule": {"day": null, "window": null}, "last_successful": + null}, "hypervisor": "kvm", "watchdog_enabled": true, "tags": [], "host_uuid": + "88aed86ce856447ead69852e22829c15b084bde4", "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" + 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: + - Mon, 20 Apr 2026 11:47:11 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - linodes: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/regions?page=1 + method: GET + response: + 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", "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": + ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.233.33.36,172.233.33.38,172.233.33.35,172.233.33.39,172.233.33.34,172.233.33.33,172.233.33.31,172.233.33.30,172.233.33.37,172.233.33.32", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.239.11.24,172.239.11.22,172.239.11.17,172.239.11.20,172.239.11.23,172.239.11.19,172.239.11.21,172.239.11.15,172.239.11.16,172.239.11.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": "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", "NodeBalancers"], "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": 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"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.236.129.8,172.236.129.42,172.236.129.41,172.236.129.19,172.236.129.46,172.236.129.23,172.236.129.48,172.236.129.20,172.236.129.21,172.236.129.47", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "de-fra-2", + "label": "Frankfurt 2, DE", "country": "de", "capabilities": ["Linodes", "Block + Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", + "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"], "metrics": ["Managed + Databases", "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.236.203.9,172.236.203.16,172.236.203.19,172.236.203.15,172.236.203.17,172.236.203.11,172.236.203.18,172.236.203.14,172.236.203.13,172.236.203.12", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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", + "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"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.236.171.41,172.236.171.42,172.236.171.25,172.236.171.44,172.236.171.26,172.236.171.45,172.236.171.24,172.236.171.43,172.236.171.27,172.236.171.28", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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", + "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": "172.236.32.23,172.236.32.35,172.236.32.30,172.236.32.28,172.236.32.32,172.236.32.33,172.236.32.27,172.236.32.37,172.236.32.29,172.236.32.34", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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", "NodeBalancers"], "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": 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", "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"], "metrics": ["Managed + Databases", "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.233.128.45,172.233.128.38,172.233.128.53,172.233.128.37,172.233.128.34,172.233.128.36,172.233.128.33,172.233.128.39,172.233.128.43,172.233.128.44", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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", + "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.232.224.23,172.232.224.32,172.232.224.26,172.232.224.27,172.232.224.21,172.232.224.24,172.232.224.22,172.232.224.20,172.232.224.31,172.232.224.28", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.233.160.34,172.233.160.27,172.233.160.30,172.233.160.29,172.233.160.32,172.233.160.28,172.233.160.33,172.233.160.26,172.233.160.25,172.233.160.31", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "172.232.192.19,172.232.192.18,172.232.192.16,172.232.192.20,172.232.192.24,172.232.192.21,172.232.192.22,172.232.192.17,172.232.192.15,172.232.192.23", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "172.233.64.44,172.233.64.43,172.233.64.37,172.233.64.40,172.233.64.46,172.233.64.41,172.233.64.39,172.233.64.42,172.233.64.45,172.233.64.38", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.232.96.17,172.232.96.26,172.232.96.19,172.232.96.20,172.232.96.25,172.232.96.21,172.232.96.18,172.232.96.22,172.232.96.23,172.232.96.24", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "172.233.111.6,172.233.111.17,172.233.111.21,172.233.111.25,172.233.111.19,172.233.111.12,172.233.111.26,172.233.111.16,172.233.111.18,172.233.111.9", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "172.232.128.24,172.232.128.26,172.232.128.20,172.232.128.22,172.232.128.25,172.232.128.19,172.232.128.23,172.232.128.18,172.232.128.21,172.232.128.27", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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", "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-sea", + "label": "Seattle, WA", "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", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.232.160.19,172.232.160.21,172.232.160.17,172.232.160.15,172.232.160.18,172.232.160.8,172.232.160.12,172.232.160.11,172.232.160.14,172.232.160.16", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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.232.32.21,172.232.32.23,172.232.32.17,172.232.32.18,172.232.32.16,172.232.32.22,172.232.32.20,172.232.32.14,172.232.32.11,172.232.32.12", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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", "NodeBalancers"], "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": 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": ["Linodes", "Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "139.144.192.62,139.144.192.60,139.144.192.61,139.144.192.53,139.144.192.54,139.144.192.67,139.144.192.69,139.144.192.66,139.144.192.52,139.144.192.68", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "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": 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", + "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-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", + "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": "us-central", + "label": "Dallas, TX", "country": "us", "capabilities": ["Linodes", "Block Storage + Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", + "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", "Managed + Databases", "Metadata", "Placement Group", "StackScripts", "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", "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", "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", "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", "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, 109.74.192.20, 109.74.193.20, 109.74.194.20", + "ipv6": "1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, + 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678"}, "placement_group_limits": + {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5, "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", "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", "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", "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": 32}' + 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: + - Mon, 20 Apr 2026 11:47:11 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-vol-testfv49du0sm096","region":"nl-ams","size":15,"tags":null}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/volumes + method: POST + response: + body: '{"id": 15238445, "status": "creating", "label": "go-vol-testfv49du0sm096", + "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "filesystem_path": + "/dev/disk/by-id/scsi-0Linode_Volume_go-vol-testfv49du0sm096", "size": 15, "linode_id": + null, "linode_label": null, "io_ready": false, "region": "nl-ams", "tags": [], + "hardware_type": "nvme", "encryption": "enabled", "locks": []}' + 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: + - "391" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Mon, 20 Apr 2026 11:47:11 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - volumes:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "100" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" +- request: + body: '{"linode_id":96323394}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/volumes/15238445/attach + method: POST + response: + body: '{"id": 15238445, "status": "creating", "label": "go-vol-testfv49du0sm096", + "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "filesystem_path": + "/dev/disk/by-id/scsi-0Linode_Volume_go-vol-testfv49du0sm096", "size": 15, "linode_id": + 96323394, "linode_label": "go-test-ins-1epvp5i382b3", "io_ready": false, "region": + "nl-ams", "tags": [], "hardware_type": "nvme", "encryption": "enabled", "locks": + []}' + 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: + - "417" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Mon, 20 Apr 2026 11:47:12 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - volumes:read_write,linodes: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/volumes/15238445 + method: GET + response: + body: '{"id": 15238445, "status": "active", "label": "go-vol-testfv49du0sm096", + "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "filesystem_path": + "/dev/disk/by-id/scsi-0Linode_Volume_go-vol-testfv49du0sm096", "size": 15, "linode_id": + 96323394, "linode_label": "go-test-ins-1epvp5i382b3", "io_ready": true, "region": + "nl-ams", "tags": [], "hardware_type": "nvme", "encryption": "enabled", "locks": + []}' + 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: + - "414" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Mon, 20 Apr 2026 11:47:27 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - volumes: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/linode/instances/96323394/volumes?page=1 + method: GET + response: + body: '{"data": [{"id": 15238445, "status": "active", "label": "go-vol-testfv49du0sm096", + "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "filesystem_path": + "/dev/disk/by-id/scsi-0Linode_Volume_go-vol-testfv49du0sm096", "size": 15, "linode_id": + 96323394, "linode_label": "go-test-ins-1epvp5i382b3", "io_ready": true, "region": + "nl-ams", "tags": [], "hardware_type": "nvme", "encryption": "enabled", "locks": + []}], "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: + - "463" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Mon, 20 Apr 2026 11:47:27 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - linodes: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: '{"label":"go-vol-testfv49du0sm096-cloned"}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/volumes/15238445/clone + method: POST + response: + body: '{"id": 15238447, "status": "creating", "label": "go-vol-testfv49du0sm096-cloned", + "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "filesystem_path": + "/dev/disk/by-id/scsi-0Linode_Volume_go-vol-testfv49du0sm096-cloned", "size": + 15, "linode_id": null, "linode_label": null, "io_ready": false, "region": "nl-ams", + "tags": [], "hardware_type": "nvme", "encryption": "enabled", "locks": []}' + 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: + - "405" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Mon, 20 Apr 2026 11:47:28 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - volumes: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/volumes/15238447 + method: GET + response: + body: '{"id": 15238447, "status": "active", "label": "go-vol-testfv49du0sm096-cloned", + "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "filesystem_path": + "/dev/disk/by-id/scsi-0Linode_Volume_go-vol-testfv49du0sm096-cloned", "size": + 15, "linode_id": null, "linode_label": null, "io_ready": false, "region": "nl-ams", + "tags": [], "hardware_type": "nvme", "encryption": "enabled", "locks": []}' + 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: + - "403" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Mon, 20 Apr 2026 11:47:43 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - volumes: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/volumes/15238447 + method: GET + response: + body: '{"id": 15238447, "status": "active", "label": "go-vol-testfv49du0sm096-cloned", + "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "filesystem_path": + "/dev/disk/by-id/scsi-0Linode_Volume_go-vol-testfv49du0sm096-cloned", "size": + 15, "linode_id": null, "linode_label": null, "io_ready": false, "region": "nl-ams", + "tags": [], "hardware_type": "nvme", "encryption": "enabled", "locks": []}' + 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: + - "403" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Mon, 20 Apr 2026 11:47:43 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - volumes: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/linode/instances/96323394/volumes?page=1 + method: GET + response: + body: '{"data": [{"id": 15238445, "status": "active", "label": "go-vol-testfv49du0sm096", + "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "filesystem_path": + "/dev/disk/by-id/scsi-0Linode_Volume_go-vol-testfv49du0sm096", "size": 15, "linode_id": + 96323394, "linode_label": "go-test-ins-1epvp5i382b3", "io_ready": true, "region": + "nl-ams", "tags": [], "hardware_type": "nvme", "encryption": "enabled", "locks": + []}], "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: + - "463" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Mon, 20 Apr 2026 11:47:44 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - linodes: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/volumes/15238447 + 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: + - Mon, 20 Apr 2026 11:47:44 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - volumes: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/volumes/15238445/detach + method: POST + 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: + - Mon, 20 Apr 2026 11:47:44 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - volumes:read_write,linodes: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/volumes/15238445 + method: GET + response: + body: '{"id": 15238445, "status": "active", "label": "go-vol-testfv49du0sm096", + "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "filesystem_path": + "/dev/disk/by-id/scsi-0Linode_Volume_go-vol-testfv49du0sm096", "size": 15, "linode_id": + null, "linode_label": null, "io_ready": false, "region": "nl-ams", "tags": [], + "hardware_type": "nvme", "encryption": "enabled", "locks": []}' + 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: + - "389" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Mon, 20 Apr 2026 11:48:00 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - volumes: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/volumes/15238445 + 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: + - Mon, 20 Apr 2026 11:48:00 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - volumes: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/linode/instances/96323394 + 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: + - Mon, 20 Apr 2026 11:48:01 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - linodes: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/TestIAM_GetIOReadyForNotAttachedVolume.yaml b/test/integration/fixtures/TestIAM_GetIOReadyForNotAttachedVolume.yaml index d42a3365e..a8c4203bb 100644 --- a/test/integration/fixtures/TestIAM_GetIOReadyForNotAttachedVolume.yaml +++ b/test/integration/fixtures/TestIAM_GetIOReadyForNotAttachedVolume.yaml @@ -239,7 +239,7 @@ interactions: "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"]}, + Databases", "NodeBalancers"], "metrics": ["Linodes", "Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "139.144.192.62,139.144.192.60,139.144.192.61,139.144.192.53,139.144.192.54,139.144.192.67,139.144.192.69,139.144.192.66,139.144.192.52,139.144.192.68", "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": @@ -378,7 +378,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 15 Apr 2026 12:22:21 GMT + - Mon, 20 Apr 2026 11:41:22 GMT Pragma: - no-cache Strict-Transport-Security: @@ -416,7 +416,7 @@ interactions: url: https://api.linode.com/v4beta/volumes method: POST response: - body: '{"id": 15146184, "status": "creating", "label": "go-test-def", "created": + body: '{"id": 15238346, "status": "creating", "label": "go-test-def", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "filesystem_path": "/dev/disk/by-id/scsi-0Linode_Volume_go-test-def", "size": 20, "linode_id": null, "linode_label": null, "io_ready": false, "region": "nl-ams", "tags": [], @@ -445,7 +445,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 15 Apr 2026 12:22:22 GMT + - Mon, 20 Apr 2026 11:41:22 GMT Pragma: - no-cache Strict-Transport-Security: @@ -478,10 +478,10 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/volumes/15146184 + url: https://api.linode.com/v4beta/volumes/15238346 method: GET response: - body: '{"id": 15146184, "status": "active", "label": "go-test-def", "created": + body: '{"id": 15238346, "status": "active", "label": "go-test-def", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "filesystem_path": "/dev/disk/by-id/scsi-0Linode_Volume_go-test-def", "size": 20, "linode_id": null, "linode_label": null, "io_ready": false, "region": "nl-ams", "tags": [], @@ -510,7 +510,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 15 Apr 2026 12:22:37 GMT + - Mon, 20 Apr 2026 11:41:38 GMT Pragma: - no-cache Strict-Transport-Security: @@ -547,12 +547,16 @@ interactions: url: https://api.linode.com/v4beta/volumes?page=1 method: GET response: - body: '{"data": [{"id": 15146184, "status": "active", "label": "go-test-def", + body: '{"data": [{"id": 15238296, "status": "active", "label": "go-vol-testsfgg5p94974z", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "filesystem_path": - "/dev/disk/by-id/scsi-0Linode_Volume_go-test-def", "size": 20, "linode_id": + "/dev/disk/by-id/scsi-0Linode_Volume_go-vol-testsfgg5p94974z", "size": 20, "linode_id": null, "linode_label": null, "io_ready": false, "region": "nl-ams", "tags": [], - "hardware_type": "nvme", "encryption": "enabled", "locks": []}], "page": 1, - "pages": 1, "results": 1}' + "hardware_type": "nvme", "encryption": "enabled", "locks": []}, {"id": 15238346, + "status": "active", "label": "go-test-def", "created": "2018-01-02T03:04:05", + "updated": "2018-01-02T03:04:05", "filesystem_path": "/dev/disk/by-id/scsi-0Linode_Volume_go-test-def", + "size": 20, "linode_id": null, "linode_label": null, "io_ready": false, "region": + "nl-ams", "tags": [], "hardware_type": "nvme", "encryption": "enabled", "locks": + []}], "page": 1, "pages": 1, "results": 2}' headers: Access-Control-Allow-Credentials: - "true" @@ -571,13 +575,13 @@ interactions: Connection: - keep-alive Content-Length: - - "414" + - "805" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Wed, 15 Apr 2026 12:22:37 GMT + - Mon, 20 Apr 2026 11:41:38 GMT Pragma: - no-cache Strict-Transport-Security: @@ -611,10 +615,10 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/volumes/15146184 + url: https://api.linode.com/v4beta/volumes/15238346 method: GET response: - body: '{"id": 15146184, "status": "active", "label": "go-test-def", "created": + body: '{"id": 15238346, "status": "active", "label": "go-test-def", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "filesystem_path": "/dev/disk/by-id/scsi-0Linode_Volume_go-test-def", "size": 20, "linode_id": null, "linode_label": null, "io_ready": false, "region": "nl-ams", "tags": [], @@ -643,7 +647,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 15 Apr 2026 12:22:37 GMT + - Mon, 20 Apr 2026 11:41:38 GMT Pragma: - no-cache Strict-Transport-Security: @@ -677,7 +681,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/volumes/15146184 + url: https://api.linode.com/v4beta/volumes/15238346 method: DELETE response: body: '{}' @@ -705,7 +709,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 15 Apr 2026 12:22:38 GMT + - Mon, 20 Apr 2026 11:41:39 GMT Pragma: - no-cache Strict-Transport-Security: diff --git a/test/integration/fixtures/TestIAM_GetIOReadyForResizedVolume.yaml b/test/integration/fixtures/TestIAM_GetIOReadyForResizedVolume.yaml index 5342fe715..4e9addb19 100644 --- a/test/integration/fixtures/TestIAM_GetIOReadyForResizedVolume.yaml +++ b/test/integration/fixtures/TestIAM_GetIOReadyForResizedVolume.yaml @@ -239,7 +239,7 @@ interactions: "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"]}, + Databases", "NodeBalancers"], "metrics": ["Linodes", "Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "139.144.192.62,139.144.192.60,139.144.192.61,139.144.192.53,139.144.192.54,139.144.192.67,139.144.192.69,139.144.192.66,139.144.192.52,139.144.192.68", "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": @@ -378,7 +378,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 15 Apr 2026 12:26:38 GMT + - Mon, 20 Apr 2026 11:48:01 GMT Pragma: - no-cache Strict-Transport-Security: @@ -404,7 +404,7 @@ interactions: code: 200 duration: "" - request: - body: '{"region":"nl-ams","type":"g6-nanode-1","label":"go-test-ins-vr3691bf2fi0","root_pass":"\u003c4v2#3YMgV5R}|VQl71Hl1,A00Y*@e0mDDpsj@8,\\OVz6D\\$=nEh5]eoQ8?4/pz6","image":"linode/debian12","firewall_id":4131481,"booted":true}' + body: '{"region":"nl-ams","type":"g6-nanode-1","label":"go-test-ins-f2onl285p70a","root_pass":"RgQ57r875}D,C.l8Ar~}2GjK}(l5.^,D5X0ifhD|nq1b37`0\u00269fqQV.qgYXU#2;A","image":"linode/debian12","firewall_id":4150731,"booted":true}' form: {} headers: Accept: @@ -416,19 +416,19 @@ interactions: url: https://api.linode.com/v4beta/linode/instances method: POST response: - body: '{"id": 96059303, "label": "go-test-ins-vr3691bf2fi0", "group": "", "status": + body: '{"id": 96323453, "label": "go-test-ins-f2onl285p70a", "group": "", "status": "provisioning", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", - "type": "g6-nanode-1", "ipv4": ["172.235.191.77"], "ipv6": "1234::5678/128", + "type": "g6-nanode-1", "ipv4": ["172.239.237.52"], "ipv6": "1234::5678/128", "image": "linode/debian12", "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}, "backups": {"enabled": false, "available": false, "schedule": - {"day": null, "window": null}, "last_successful": null}, "hypervisor": "kvm", - "watchdog_enabled": true, "tags": [], "host_uuid": "88aed86ce856447ead69852e22829c15b084bde4", - "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": []}' + 80, "io": 10000, "system_alerts": [], "user_alerts": []}, "backups": {"enabled": + false, "available": false, "schedule": {"day": null, "window": null}, "last_successful": + null}, "hypervisor": "kvm", "watchdog_enabled": true, "tags": [], "host_uuid": + "db784194741d6d33162e664bc64daf6c3c38338c", "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" @@ -451,7 +451,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 15 Apr 2026 12:26:39 GMT + - Mon, 20 Apr 2026 11:48:03 GMT Pragma: - no-cache Strict-Transport-Security: @@ -485,95 +485,22 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/linode/instances/96059303 - method: GET - response: - body: '{"id": 96059303, "label": "go-test-ins-vr3691bf2fi0", "group": "", "status": - "provisioning", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", - "type": "g6-nanode-1", "ipv4": ["172.235.191.77"], "ipv6": "1234::5678/128", - "image": "linode/debian12", "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}, "backups": {"enabled": false, "available": false, "schedule": - {"day": null, "window": null}, "last_successful": null}, "hypervisor": "kvm", - "watchdog_enabled": true, "tags": [], "host_uuid": "88aed86ce856447ead69852e22829c15b084bde4", - "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" - 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: - - Wed, 15 Apr 2026 12:26:55 GMT - Pragma: - - no-cache - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization, X-Filter - - Authorization, X-Filter - - Accept-Encoding - X-Accepted-Oauth-Scopes: - - linodes: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/linode/instances/96059303 + url: https://api.linode.com/v4beta/linode/instances/96323453 method: GET response: - body: '{"id": 96059303, "label": "go-test-ins-vr3691bf2fi0", "group": "", "status": + body: '{"id": 96323453, "label": "go-test-ins-f2onl285p70a", "group": "", "status": "provisioning", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", - "type": "g6-nanode-1", "ipv4": ["172.235.191.77"], "ipv6": "1234::5678/128", + "type": "g6-nanode-1", "ipv4": ["172.239.237.52"], "ipv6": "1234::5678/128", "image": "linode/debian12", "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}, "backups": {"enabled": false, "available": false, "schedule": - {"day": null, "window": null}, "last_successful": null}, "hypervisor": "kvm", - "watchdog_enabled": true, "tags": [], "host_uuid": "88aed86ce856447ead69852e22829c15b084bde4", - "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": []}' + 80, "io": 10000, "system_alerts": [], "user_alerts": []}, "backups": {"enabled": + false, "available": false, "schedule": {"day": null, "window": null}, "last_successful": + null}, "hypervisor": "kvm", "watchdog_enabled": true, "tags": [], "host_uuid": + "db784194741d6d33162e664bc64daf6c3c38338c", "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" @@ -596,7 +523,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 15 Apr 2026 12:27:10 GMT + - Mon, 20 Apr 2026 11:48:18 GMT Pragma: - no-cache Strict-Transport-Security: @@ -631,22 +558,22 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/linode/instances/96059303 + url: https://api.linode.com/v4beta/linode/instances/96323453 method: GET response: - body: '{"id": 96059303, "label": "go-test-ins-vr3691bf2fi0", "group": "", "status": + body: '{"id": 96323453, "label": "go-test-ins-f2onl285p70a", "group": "", "status": "provisioning", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", - "type": "g6-nanode-1", "ipv4": ["172.235.191.77"], "ipv6": "1234::5678/128", + "type": "g6-nanode-1", "ipv4": ["172.239.237.52"], "ipv6": "1234::5678/128", "image": "linode/debian12", "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}, "backups": {"enabled": false, "available": false, "schedule": - {"day": null, "window": null}, "last_successful": null}, "hypervisor": "kvm", - "watchdog_enabled": true, "tags": [], "host_uuid": "88aed86ce856447ead69852e22829c15b084bde4", - "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": []}' + 80, "io": 10000, "system_alerts": [], "user_alerts": []}, "backups": {"enabled": + false, "available": false, "schedule": {"day": null, "window": null}, "last_successful": + null}, "hypervisor": "kvm", "watchdog_enabled": true, "tags": [], "host_uuid": + "db784194741d6d33162e664bc64daf6c3c38338c", "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" @@ -669,7 +596,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 15 Apr 2026 12:27:25 GMT + - Mon, 20 Apr 2026 11:48:33 GMT Pragma: - no-cache Strict-Transport-Security: @@ -704,22 +631,22 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/linode/instances/96059303 + url: https://api.linode.com/v4beta/linode/instances/96323453 method: GET response: - body: '{"id": 96059303, "label": "go-test-ins-vr3691bf2fi0", "group": "", "status": + body: '{"id": 96323453, "label": "go-test-ins-f2onl285p70a", "group": "", "status": "booting", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", - "type": "g6-nanode-1", "ipv4": ["172.235.191.77"], "ipv6": "1234::5678/128", + "type": "g6-nanode-1", "ipv4": ["172.239.237.52"], "ipv6": "1234::5678/128", "image": "linode/debian12", "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}, "backups": {"enabled": false, "available": false, "schedule": - {"day": null, "window": null}, "last_successful": null}, "hypervisor": "kvm", - "watchdog_enabled": true, "tags": [], "host_uuid": "88aed86ce856447ead69852e22829c15b084bde4", - "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": []}' + 80, "io": 10000, "system_alerts": [], "user_alerts": []}, "backups": {"enabled": + false, "available": false, "schedule": {"day": null, "window": null}, "last_successful": + null}, "hypervisor": "kvm", "watchdog_enabled": true, "tags": [], "host_uuid": + "db784194741d6d33162e664bc64daf6c3c38338c", "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" @@ -742,7 +669,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 15 Apr 2026 12:27:40 GMT + - Mon, 20 Apr 2026 11:48:48 GMT Pragma: - no-cache Strict-Transport-Security: @@ -777,22 +704,22 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/linode/instances/96059303 + url: https://api.linode.com/v4beta/linode/instances/96323453 method: GET response: - body: '{"id": 96059303, "label": "go-test-ins-vr3691bf2fi0", "group": "", "status": + body: '{"id": 96323453, "label": "go-test-ins-f2onl285p70a", "group": "", "status": "running", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", - "type": "g6-nanode-1", "ipv4": ["172.235.191.77"], "ipv6": "1234::5678/128", + "type": "g6-nanode-1", "ipv4": ["172.239.237.52"], "ipv6": "1234::5678/128", "image": "linode/debian12", "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}, "backups": {"enabled": false, "available": false, "schedule": - {"day": null, "window": null}, "last_successful": null}, "hypervisor": "kvm", - "watchdog_enabled": true, "tags": [], "host_uuid": "88aed86ce856447ead69852e22829c15b084bde4", - "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": []}' + 80, "io": 10000, "system_alerts": [], "user_alerts": []}, "backups": {"enabled": + false, "available": false, "schedule": {"day": null, "window": null}, "last_successful": + null}, "hypervisor": "kvm", "watchdog_enabled": true, "tags": [], "host_uuid": + "db784194741d6d33162e664bc64daf6c3c38338c", "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" @@ -815,7 +742,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 15 Apr 2026 12:27:55 GMT + - Mon, 20 Apr 2026 11:49:03 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1078,7 +1005,7 @@ interactions: "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"]}, + Databases", "NodeBalancers"], "metrics": ["Linodes", "Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "139.144.192.62,139.144.192.60,139.144.192.61,139.144.192.53,139.144.192.54,139.144.192.67,139.144.192.69,139.144.192.66,139.144.192.52,139.144.192.68", "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": @@ -1217,7 +1144,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 15 Apr 2026 12:27:55 GMT + - Mon, 20 Apr 2026 11:49:04 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1243,7 +1170,7 @@ interactions: code: 200 duration: "" - request: - body: '{"label":"go-vol-testjq80g5m3ce24","region":"nl-ams","tags":null}' + body: '{"label":"go-vol-testc0j3n15xp4d5","region":"nl-ams","size":15,"tags":null}' form: {} headers: Accept: @@ -1255,9 +1182,9 @@ interactions: url: https://api.linode.com/v4beta/volumes method: POST response: - body: '{"id": 15146262, "status": "creating", "label": "go-vol-testjq80g5m3ce24", + body: '{"id": 15238481, "status": "creating", "label": "go-vol-testc0j3n15xp4d5", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "filesystem_path": - "/dev/disk/by-id/scsi-0Linode_Volume_go-vol-testjq80g5m3ce24", "size": 20, "linode_id": + "/dev/disk/by-id/scsi-0Linode_Volume_go-vol-testc0j3n15xp4d5", "size": 15, "linode_id": null, "linode_label": null, "io_ready": false, "region": "nl-ams", "tags": [], "hardware_type": "nvme", "encryption": "enabled", "locks": []}' headers: @@ -1284,7 +1211,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 15 Apr 2026 12:27:55 GMT + - Mon, 20 Apr 2026 11:49:04 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1308,7 +1235,7 @@ interactions: code: 200 duration: "" - request: - body: '{"linode_id":96059303}' + body: '{"linode_id":96323453}' form: {} headers: Accept: @@ -1317,13 +1244,13 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/volumes/15146262/attach + url: https://api.linode.com/v4beta/volumes/15238481/attach method: POST response: - body: '{"id": 15146262, "status": "creating", "label": "go-vol-testjq80g5m3ce24", + body: '{"id": 15238481, "status": "creating", "label": "go-vol-testc0j3n15xp4d5", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "filesystem_path": - "/dev/disk/by-id/scsi-0Linode_Volume_go-vol-testjq80g5m3ce24", "size": 20, "linode_id": - 96059303, "linode_label": "go-test-ins-vr3691bf2fi0", "io_ready": false, "region": + "/dev/disk/by-id/scsi-0Linode_Volume_go-vol-testc0j3n15xp4d5", "size": 15, "linode_id": + 96323453, "linode_label": "go-test-ins-f2onl285p70a", "io_ready": false, "region": "nl-ams", "tags": [], "hardware_type": "nvme", "encryption": "enabled", "locks": []}' headers: @@ -1350,7 +1277,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 15 Apr 2026 12:27:56 GMT + - Mon, 20 Apr 2026 11:49:04 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1383,13 +1310,13 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/volumes/15146262 + url: https://api.linode.com/v4beta/volumes/15238481 method: GET response: - body: '{"id": 15146262, "status": "active", "label": "go-vol-testjq80g5m3ce24", + body: '{"id": 15238481, "status": "active", "label": "go-vol-testc0j3n15xp4d5", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "filesystem_path": - "/dev/disk/by-id/scsi-0Linode_Volume_go-vol-testjq80g5m3ce24", "size": 20, "linode_id": - 96059303, "linode_label": "go-test-ins-vr3691bf2fi0", "io_ready": true, "region": + "/dev/disk/by-id/scsi-0Linode_Volume_go-vol-testc0j3n15xp4d5", "size": 15, "linode_id": + 96323453, "linode_label": "go-test-ins-f2onl285p70a", "io_ready": true, "region": "nl-ams", "tags": [], "hardware_type": "nvme", "encryption": "enabled", "locks": []}' headers: @@ -1416,7 +1343,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 15 Apr 2026 12:28:11 GMT + - Mon, 20 Apr 2026 11:49:20 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1441,7 +1368,7 @@ interactions: code: 200 duration: "" - request: - body: '{"size":30}' + body: '{"size":25}' form: {} headers: Accept: @@ -1450,13 +1377,13 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/volumes/15146262/resize + url: https://api.linode.com/v4beta/volumes/15238481/resize method: POST response: - body: '{"id": 15146262, "status": "resizing", "label": "go-vol-testjq80g5m3ce24", + body: '{"id": 15238481, "status": "resizing", "label": "go-vol-testc0j3n15xp4d5", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "filesystem_path": - "/dev/disk/by-id/scsi-0Linode_Volume_go-vol-testjq80g5m3ce24", "size": 30, "linode_id": - 96059303, "linode_label": "go-test-ins-vr3691bf2fi0", "io_ready": true, "region": + "/dev/disk/by-id/scsi-0Linode_Volume_go-vol-testc0j3n15xp4d5", "size": 25, "linode_id": + 96323453, "linode_label": "go-test-ins-f2onl285p70a", "io_ready": true, "region": "nl-ams", "tags": [], "hardware_type": "nvme", "encryption": "enabled", "locks": []}' headers: @@ -1483,7 +1410,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 15 Apr 2026 12:28:11 GMT + - Mon, 20 Apr 2026 11:49:20 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1516,13 +1443,13 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/volumes/15146262 + url: https://api.linode.com/v4beta/volumes/15238481 method: GET response: - body: '{"id": 15146262, "status": "active", "label": "go-vol-testjq80g5m3ce24", + body: '{"id": 15238481, "status": "active", "label": "go-vol-testc0j3n15xp4d5", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "filesystem_path": - "/dev/disk/by-id/scsi-0Linode_Volume_go-vol-testjq80g5m3ce24", "size": 30, "linode_id": - 96059303, "linode_label": "go-test-ins-vr3691bf2fi0", "io_ready": true, "region": + "/dev/disk/by-id/scsi-0Linode_Volume_go-vol-testc0j3n15xp4d5", "size": 25, "linode_id": + 96323453, "linode_label": "go-test-ins-f2onl285p70a", "io_ready": true, "region": "nl-ams", "tags": [], "hardware_type": "nvme", "encryption": "enabled", "locks": []}' headers: @@ -1549,7 +1476,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 15 Apr 2026 12:28:27 GMT + - Mon, 20 Apr 2026 11:49:36 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1583,13 +1510,13 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/linode/instances/96059303/volumes?page=1 + url: https://api.linode.com/v4beta/linode/instances/96323453/volumes?page=1 method: GET response: - body: '{"data": [{"id": 15146262, "status": "active", "label": "go-vol-testjq80g5m3ce24", + body: '{"data": [{"id": 15238481, "status": "active", "label": "go-vol-testc0j3n15xp4d5", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "filesystem_path": - "/dev/disk/by-id/scsi-0Linode_Volume_go-vol-testjq80g5m3ce24", "size": 30, "linode_id": - 96059303, "linode_label": "go-test-ins-vr3691bf2fi0", "io_ready": true, "region": + "/dev/disk/by-id/scsi-0Linode_Volume_go-vol-testc0j3n15xp4d5", "size": 25, "linode_id": + 96323453, "linode_label": "go-test-ins-f2onl285p70a", "io_ready": true, "region": "nl-ams", "tags": [], "hardware_type": "nvme", "encryption": "enabled", "locks": []}], "page": 1, "pages": 1, "results": 1}' headers: @@ -1616,7 +1543,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 15 Apr 2026 12:28:27 GMT + - Mon, 20 Apr 2026 11:49:36 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1650,13 +1577,13 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/volumes/15146262 + url: https://api.linode.com/v4beta/volumes/15238481 method: GET response: - body: '{"id": 15146262, "status": "active", "label": "go-vol-testjq80g5m3ce24", + body: '{"id": 15238481, "status": "active", "label": "go-vol-testc0j3n15xp4d5", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "filesystem_path": - "/dev/disk/by-id/scsi-0Linode_Volume_go-vol-testjq80g5m3ce24", "size": 30, "linode_id": - 96059303, "linode_label": "go-test-ins-vr3691bf2fi0", "io_ready": true, "region": + "/dev/disk/by-id/scsi-0Linode_Volume_go-vol-testc0j3n15xp4d5", "size": 25, "linode_id": + 96323453, "linode_label": "go-test-ins-f2onl285p70a", "io_ready": true, "region": "nl-ams", "tags": [], "hardware_type": "nvme", "encryption": "enabled", "locks": []}' headers: @@ -1683,7 +1610,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 15 Apr 2026 12:28:27 GMT + - Mon, 20 Apr 2026 11:49:36 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1717,7 +1644,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/volumes/15146262/detach + url: https://api.linode.com/v4beta/volumes/15238481/detach method: POST response: body: '{}' @@ -1745,7 +1672,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 15 Apr 2026 12:28:28 GMT + - Mon, 20 Apr 2026 11:49:37 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1778,12 +1705,12 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/volumes/15146262 + url: https://api.linode.com/v4beta/volumes/15238481 method: GET response: - body: '{"id": 15146262, "status": "active", "label": "go-vol-testjq80g5m3ce24", + body: '{"id": 15238481, "status": "active", "label": "go-vol-testc0j3n15xp4d5", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "filesystem_path": - "/dev/disk/by-id/scsi-0Linode_Volume_go-vol-testjq80g5m3ce24", "size": 30, "linode_id": + "/dev/disk/by-id/scsi-0Linode_Volume_go-vol-testc0j3n15xp4d5", "size": 25, "linode_id": null, "linode_label": null, "io_ready": false, "region": "nl-ams", "tags": [], "hardware_type": "nvme", "encryption": "enabled", "locks": []}' headers: @@ -1810,7 +1737,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 15 Apr 2026 12:28:43 GMT + - Mon, 20 Apr 2026 11:49:52 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1844,7 +1771,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/volumes/15146262 + url: https://api.linode.com/v4beta/volumes/15238481 method: DELETE response: body: '{}' @@ -1872,7 +1799,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 15 Apr 2026 12:28:43 GMT + - Mon, 20 Apr 2026 11:49:52 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1905,7 +1832,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/linode/instances/96059303 + url: https://api.linode.com/v4beta/linode/instances/96323453 method: DELETE response: body: '{}' @@ -1933,7 +1860,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 15 Apr 2026 12:28:44 GMT + - Mon, 20 Apr 2026 11:49:53 GMT Pragma: - no-cache Strict-Transport-Security: diff --git a/test/integration/fixtures/TestIAM_GetIOReadyForUpdatedVolume.yaml b/test/integration/fixtures/TestIAM_GetIOReadyForUpdatedVolume.yaml index 162b12ef9..babe2a373 100644 --- a/test/integration/fixtures/TestIAM_GetIOReadyForUpdatedVolume.yaml +++ b/test/integration/fixtures/TestIAM_GetIOReadyForUpdatedVolume.yaml @@ -239,7 +239,7 @@ interactions: "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"]}, + Databases", "NodeBalancers"], "metrics": ["Linodes", "Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "139.144.192.62,139.144.192.60,139.144.192.61,139.144.192.53,139.144.192.54,139.144.192.67,139.144.192.69,139.144.192.66,139.144.192.52,139.144.192.68", "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": @@ -378,7 +378,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 15 Apr 2026 12:24:47 GMT + - Mon, 20 Apr 2026 11:43:31 GMT Pragma: - no-cache Strict-Transport-Security: @@ -404,7 +404,7 @@ interactions: code: 200 duration: "" - request: - body: '{"region":"nl-ams","type":"g6-nanode-1","label":"go-test-ins-i5e5qjdm1008","root_pass":"6G3\u003e9wn!kMu2@4VLxgq,;''''BSH;\\Z#?qD1~9Ao0R[*90Lf0C4o0`Z(jQmj9d71eD","image":"linode/debian12","firewall_id":4131481,"booted":true}' + body: '{"region":"nl-ams","type":"g6-nanode-1","label":"go-test-ins-9i9so18nw3n6","root_pass":"UN{2SED)8t.)79B*Uz4BD/p$16ruxT1il7!^$29dKs\\W:+00J=l5e4C#-Qilm8fZ","image":"linode/debian12","firewall_id":4150731,"booted":true}' form: {} headers: Accept: @@ -416,19 +416,19 @@ interactions: url: https://api.linode.com/v4beta/linode/instances method: POST response: - body: '{"id": 96059268, "label": "go-test-ins-i5e5qjdm1008", "group": "", "status": + body: '{"id": 96323312, "label": "go-test-ins-9i9so18nw3n6", "group": "", "status": "provisioning", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", - "type": "g6-nanode-1", "ipv4": ["172.235.191.77"], "ipv6": "1234::5678/128", + "type": "g6-nanode-1", "ipv4": ["172.239.237.52"], "ipv6": "1234::5678/128", "image": "linode/debian12", "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}, "backups": {"enabled": false, "available": false, "schedule": - {"day": null, "window": null}, "last_successful": null}, "hypervisor": "kvm", - "watchdog_enabled": true, "tags": [], "host_uuid": "ada9e04b87e588f48d5acf5b894200d93e9468d7", - "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": []}' + 80, "io": 10000, "system_alerts": [], "user_alerts": []}, "backups": {"enabled": + false, "available": false, "schedule": {"day": null, "window": null}, "last_successful": + null}, "hypervisor": "kvm", "watchdog_enabled": true, "tags": [], "host_uuid": + "89956a6a2cbab775f08c936c909249438e1763a7", "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" @@ -451,7 +451,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 15 Apr 2026 12:24:48 GMT + - Mon, 20 Apr 2026 11:43:33 GMT Pragma: - no-cache Strict-Transport-Security: @@ -485,22 +485,22 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/linode/instances/96059268 + url: https://api.linode.com/v4beta/linode/instances/96323312 method: GET response: - body: '{"id": 96059268, "label": "go-test-ins-i5e5qjdm1008", "group": "", "status": + body: '{"id": 96323312, "label": "go-test-ins-9i9so18nw3n6", "group": "", "status": "provisioning", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", - "type": "g6-nanode-1", "ipv4": ["172.235.191.77"], "ipv6": "1234::5678/128", + "type": "g6-nanode-1", "ipv4": ["172.239.237.52"], "ipv6": "1234::5678/128", "image": "linode/debian12", "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}, "backups": {"enabled": false, "available": false, "schedule": - {"day": null, "window": null}, "last_successful": null}, "hypervisor": "kvm", - "watchdog_enabled": true, "tags": [], "host_uuid": "ada9e04b87e588f48d5acf5b894200d93e9468d7", - "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": []}' + 80, "io": 10000, "system_alerts": [], "user_alerts": []}, "backups": {"enabled": + false, "available": false, "schedule": {"day": null, "window": null}, "last_successful": + null}, "hypervisor": "kvm", "watchdog_enabled": true, "tags": [], "host_uuid": + "89956a6a2cbab775f08c936c909249438e1763a7", "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" @@ -523,7 +523,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 15 Apr 2026 12:25:04 GMT + - Mon, 20 Apr 2026 11:43:49 GMT Pragma: - no-cache Strict-Transport-Security: @@ -558,22 +558,22 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/linode/instances/96059268 + url: https://api.linode.com/v4beta/linode/instances/96323312 method: GET response: - body: '{"id": 96059268, "label": "go-test-ins-i5e5qjdm1008", "group": "", "status": + body: '{"id": 96323312, "label": "go-test-ins-9i9so18nw3n6", "group": "", "status": "provisioning", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", - "type": "g6-nanode-1", "ipv4": ["172.235.191.77"], "ipv6": "1234::5678/128", + "type": "g6-nanode-1", "ipv4": ["172.239.237.52"], "ipv6": "1234::5678/128", "image": "linode/debian12", "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}, "backups": {"enabled": false, "available": false, "schedule": - {"day": null, "window": null}, "last_successful": null}, "hypervisor": "kvm", - "watchdog_enabled": true, "tags": [], "host_uuid": "ada9e04b87e588f48d5acf5b894200d93e9468d7", - "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": []}' + 80, "io": 10000, "system_alerts": [], "user_alerts": []}, "backups": {"enabled": + false, "available": false, "schedule": {"day": null, "window": null}, "last_successful": + null}, "hypervisor": "kvm", "watchdog_enabled": true, "tags": [], "host_uuid": + "89956a6a2cbab775f08c936c909249438e1763a7", "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" @@ -596,7 +596,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 15 Apr 2026 12:25:19 GMT + - Mon, 20 Apr 2026 11:44:04 GMT Pragma: - no-cache Strict-Transport-Security: @@ -631,22 +631,95 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/linode/instances/96059268 + url: https://api.linode.com/v4beta/linode/instances/96323312 method: GET response: - body: '{"id": 96059268, "label": "go-test-ins-i5e5qjdm1008", "group": "", "status": + body: '{"id": 96323312, "label": "go-test-ins-9i9so18nw3n6", "group": "", "status": "provisioning", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", - "type": "g6-nanode-1", "ipv4": ["172.235.191.77"], "ipv6": "1234::5678/128", + "type": "g6-nanode-1", "ipv4": ["172.239.237.52"], "ipv6": "1234::5678/128", + "image": "linode/debian12", "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": + false, "available": false, "schedule": {"day": null, "window": null}, "last_successful": + null}, "hypervisor": "kvm", "watchdog_enabled": true, "tags": [], "host_uuid": + "89956a6a2cbab775f08c936c909249438e1763a7", "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" + 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: + - Mon, 20 Apr 2026 11:44:19 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - linodes: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/linode/instances/96323312 + method: GET + response: + body: '{"id": 96323312, "label": "go-test-ins-9i9so18nw3n6", "group": "", "status": + "booting", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", + "type": "g6-nanode-1", "ipv4": ["172.239.237.52"], "ipv6": "1234::5678/128", "image": "linode/debian12", "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}, "backups": {"enabled": false, "available": false, "schedule": - {"day": null, "window": null}, "last_successful": null}, "hypervisor": "kvm", - "watchdog_enabled": true, "tags": [], "host_uuid": "ada9e04b87e588f48d5acf5b894200d93e9468d7", - "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": []}' + 80, "io": 10000, "system_alerts": [], "user_alerts": []}, "backups": {"enabled": + false, "available": false, "schedule": {"day": null, "window": null}, "last_successful": + null}, "hypervisor": "kvm", "watchdog_enabled": true, "tags": [], "host_uuid": + "89956a6a2cbab775f08c936c909249438e1763a7", "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" @@ -669,7 +742,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 15 Apr 2026 12:25:34 GMT + - Mon, 20 Apr 2026 11:44:34 GMT Pragma: - no-cache Strict-Transport-Security: @@ -704,22 +777,22 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/linode/instances/96059268 + url: https://api.linode.com/v4beta/linode/instances/96323312 method: GET response: - body: '{"id": 96059268, "label": "go-test-ins-i5e5qjdm1008", "group": "", "status": + body: '{"id": 96323312, "label": "go-test-ins-9i9so18nw3n6", "group": "", "status": "booting", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", - "type": "g6-nanode-1", "ipv4": ["172.235.191.77"], "ipv6": "1234::5678/128", + "type": "g6-nanode-1", "ipv4": ["172.239.237.52"], "ipv6": "1234::5678/128", "image": "linode/debian12", "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}, "backups": {"enabled": false, "available": false, "schedule": - {"day": null, "window": null}, "last_successful": null}, "hypervisor": "kvm", - "watchdog_enabled": true, "tags": [], "host_uuid": "ada9e04b87e588f48d5acf5b894200d93e9468d7", - "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": []}' + 80, "io": 10000, "system_alerts": [], "user_alerts": []}, "backups": {"enabled": + false, "available": false, "schedule": {"day": null, "window": null}, "last_successful": + null}, "hypervisor": "kvm", "watchdog_enabled": true, "tags": [], "host_uuid": + "89956a6a2cbab775f08c936c909249438e1763a7", "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" @@ -742,7 +815,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 15 Apr 2026 12:25:49 GMT + - Mon, 20 Apr 2026 11:44:49 GMT Pragma: - no-cache Strict-Transport-Security: @@ -777,22 +850,22 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/linode/instances/96059268 + url: https://api.linode.com/v4beta/linode/instances/96323312 method: GET response: - body: '{"id": 96059268, "label": "go-test-ins-i5e5qjdm1008", "group": "", "status": + body: '{"id": 96323312, "label": "go-test-ins-9i9so18nw3n6", "group": "", "status": "running", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", - "type": "g6-nanode-1", "ipv4": ["172.235.191.77"], "ipv6": "1234::5678/128", + "type": "g6-nanode-1", "ipv4": ["172.239.237.52"], "ipv6": "1234::5678/128", "image": "linode/debian12", "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}, "backups": {"enabled": false, "available": false, "schedule": - {"day": null, "window": null}, "last_successful": null}, "hypervisor": "kvm", - "watchdog_enabled": true, "tags": [], "host_uuid": "ada9e04b87e588f48d5acf5b894200d93e9468d7", - "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": []}' + 80, "io": 10000, "system_alerts": [], "user_alerts": []}, "backups": {"enabled": + false, "available": false, "schedule": {"day": null, "window": null}, "last_successful": + null}, "hypervisor": "kvm", "watchdog_enabled": true, "tags": [], "host_uuid": + "89956a6a2cbab775f08c936c909249438e1763a7", "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" @@ -815,7 +888,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 15 Apr 2026 12:26:04 GMT + - Mon, 20 Apr 2026 11:45:04 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1078,7 +1151,7 @@ interactions: "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"]}, + Databases", "NodeBalancers"], "metrics": ["Linodes", "Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "139.144.192.62,139.144.192.60,139.144.192.61,139.144.192.53,139.144.192.54,139.144.192.67,139.144.192.69,139.144.192.66,139.144.192.52,139.144.192.68", "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": @@ -1217,7 +1290,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 15 Apr 2026 12:26:04 GMT + - Mon, 20 Apr 2026 11:45:04 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1243,7 +1316,7 @@ interactions: code: 200 duration: "" - request: - body: '{"label":"go-vol-test1ic9vy87a2t7","region":"nl-ams","tags":null}' + body: '{"label":"go-vol-test07rx48m3k3pe","region":"nl-ams","size":15,"tags":null}' form: {} headers: Accept: @@ -1255,9 +1328,9 @@ interactions: url: https://api.linode.com/v4beta/volumes method: POST response: - body: '{"id": 15146239, "status": "creating", "label": "go-vol-test1ic9vy87a2t7", + body: '{"id": 15238402, "status": "creating", "label": "go-vol-test07rx48m3k3pe", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "filesystem_path": - "/dev/disk/by-id/scsi-0Linode_Volume_go-vol-test1ic9vy87a2t7", "size": 20, "linode_id": + "/dev/disk/by-id/scsi-0Linode_Volume_go-vol-test07rx48m3k3pe", "size": 15, "linode_id": null, "linode_label": null, "io_ready": false, "region": "nl-ams", "tags": [], "hardware_type": "nvme", "encryption": "enabled", "locks": []}' headers: @@ -1284,7 +1357,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 15 Apr 2026 12:26:05 GMT + - Mon, 20 Apr 2026 11:45:05 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1308,7 +1381,7 @@ interactions: code: 200 duration: "" - request: - body: '{"linode_id":96059268}' + body: '{"linode_id":96323312}' form: {} headers: Accept: @@ -1317,13 +1390,13 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/volumes/15146239/attach + url: https://api.linode.com/v4beta/volumes/15238402/attach method: POST response: - body: '{"id": 15146239, "status": "creating", "label": "go-vol-test1ic9vy87a2t7", + body: '{"id": 15238402, "status": "creating", "label": "go-vol-test07rx48m3k3pe", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "filesystem_path": - "/dev/disk/by-id/scsi-0Linode_Volume_go-vol-test1ic9vy87a2t7", "size": 20, "linode_id": - 96059268, "linode_label": "go-test-ins-i5e5qjdm1008", "io_ready": false, "region": + "/dev/disk/by-id/scsi-0Linode_Volume_go-vol-test07rx48m3k3pe", "size": 15, "linode_id": + 96323312, "linode_label": "go-test-ins-9i9so18nw3n6", "io_ready": false, "region": "nl-ams", "tags": [], "hardware_type": "nvme", "encryption": "enabled", "locks": []}' headers: @@ -1350,7 +1423,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 15 Apr 2026 12:26:05 GMT + - Mon, 20 Apr 2026 11:45:05 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1383,13 +1456,80 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/volumes/15146239 + url: https://api.linode.com/v4beta/volumes/15238402 + method: GET + response: + body: '{"id": 15238402, "status": "active", "label": "go-vol-test07rx48m3k3pe", + "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "filesystem_path": + "/dev/disk/by-id/scsi-0Linode_Volume_go-vol-test07rx48m3k3pe", "size": 15, "linode_id": + 96323312, "linode_label": "go-test-ins-9i9so18nw3n6", "io_ready": false, "region": + "nl-ams", "tags": [], "hardware_type": "nvme", "encryption": "enabled", "locks": + []}' + 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: + - "415" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Mon, 20 Apr 2026 11:45:20 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - volumes: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/volumes/15238402 method: GET response: - body: '{"id": 15146239, "status": "active", "label": "go-vol-test1ic9vy87a2t7", + body: '{"id": 15238402, "status": "active", "label": "go-vol-test07rx48m3k3pe", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "filesystem_path": - "/dev/disk/by-id/scsi-0Linode_Volume_go-vol-test1ic9vy87a2t7", "size": 20, "linode_id": - 96059268, "linode_label": "go-test-ins-i5e5qjdm1008", "io_ready": true, "region": + "/dev/disk/by-id/scsi-0Linode_Volume_go-vol-test07rx48m3k3pe", "size": 15, "linode_id": + 96323312, "linode_label": "go-test-ins-9i9so18nw3n6", "io_ready": true, "region": "nl-ams", "tags": [], "hardware_type": "nvme", "encryption": "enabled", "locks": []}' headers: @@ -1416,7 +1556,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 15 Apr 2026 12:26:20 GMT + - Mon, 20 Apr 2026 11:45:35 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1441,7 +1581,7 @@ interactions: code: 200 duration: "" - request: - body: '{"label":"go-vol-test1ic9vy87a2t7-updated","tags":["updated"]}' + body: '{"label":"go-vol-test07rx48m3k3pe-updated","tags":["updated"]}' form: {} headers: Accept: @@ -1450,13 +1590,13 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/volumes/15146239 + url: https://api.linode.com/v4beta/volumes/15238402 method: PUT response: - body: '{"id": 15146239, "status": "active", "label": "go-vol-test1ic9vy87a2t7-updated", + body: '{"id": 15238402, "status": "active", "label": "go-vol-test07rx48m3k3pe-updated", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "filesystem_path": - "/dev/disk/by-id/scsi-0Linode_Volume_go-vol-test1ic9vy87a2t7-updated", "size": - 20, "linode_id": 96059268, "linode_label": "go-test-ins-i5e5qjdm1008", "io_ready": + "/dev/disk/by-id/scsi-0Linode_Volume_go-vol-test07rx48m3k3pe-updated", "size": + 15, "linode_id": 96323312, "linode_label": "go-test-ins-9i9so18nw3n6", "io_ready": true, "region": "nl-ams", "tags": ["updated"], "hardware_type": "nvme", "encryption": "enabled", "locks": []}' headers: @@ -1483,7 +1623,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 15 Apr 2026 12:26:20 GMT + - Mon, 20 Apr 2026 11:45:35 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1516,13 +1656,13 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/linode/instances/96059268/volumes?page=1 + url: https://api.linode.com/v4beta/linode/instances/96323312/volumes?page=1 method: GET response: - body: '{"data": [{"id": 15146239, "status": "active", "label": "go-vol-test1ic9vy87a2t7-updated", + body: '{"data": [{"id": 15238402, "status": "active", "label": "go-vol-test07rx48m3k3pe-updated", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "filesystem_path": - "/dev/disk/by-id/scsi-0Linode_Volume_go-vol-test1ic9vy87a2t7-updated", "size": - 20, "linode_id": 96059268, "linode_label": "go-test-ins-i5e5qjdm1008", "io_ready": + "/dev/disk/by-id/scsi-0Linode_Volume_go-vol-test07rx48m3k3pe-updated", "size": + 15, "linode_id": 96323312, "linode_label": "go-test-ins-9i9so18nw3n6", "io_ready": true, "region": "nl-ams", "tags": ["updated"], "hardware_type": "nvme", "encryption": "enabled", "locks": []}], "page": 1, "pages": 1, "results": 1}' headers: @@ -1549,7 +1689,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 15 Apr 2026 12:26:21 GMT + - Mon, 20 Apr 2026 11:45:36 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1583,13 +1723,13 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/volumes/15146239 + url: https://api.linode.com/v4beta/volumes/15238402 method: GET response: - body: '{"id": 15146239, "status": "active", "label": "go-vol-test1ic9vy87a2t7-updated", + body: '{"id": 15238402, "status": "active", "label": "go-vol-test07rx48m3k3pe-updated", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "filesystem_path": - "/dev/disk/by-id/scsi-0Linode_Volume_go-vol-test1ic9vy87a2t7-updated", "size": - 20, "linode_id": 96059268, "linode_label": "go-test-ins-i5e5qjdm1008", "io_ready": + "/dev/disk/by-id/scsi-0Linode_Volume_go-vol-test07rx48m3k3pe-updated", "size": + 15, "linode_id": 96323312, "linode_label": "go-test-ins-9i9so18nw3n6", "io_ready": true, "region": "nl-ams", "tags": ["updated"], "hardware_type": "nvme", "encryption": "enabled", "locks": []}' headers: @@ -1616,7 +1756,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 15 Apr 2026 12:26:21 GMT + - Mon, 20 Apr 2026 11:45:36 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1650,7 +1790,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/volumes/15146239/detach + url: https://api.linode.com/v4beta/volumes/15238402/detach method: POST response: body: '{}' @@ -1678,7 +1818,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 15 Apr 2026 12:26:21 GMT + - Mon, 20 Apr 2026 11:45:36 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1711,13 +1851,13 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/volumes/15146239 + url: https://api.linode.com/v4beta/volumes/15238402 method: GET response: - body: '{"id": 15146239, "status": "active", "label": "go-vol-test1ic9vy87a2t7-updated", + body: '{"id": 15238402, "status": "active", "label": "go-vol-test07rx48m3k3pe-updated", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "filesystem_path": - "/dev/disk/by-id/scsi-0Linode_Volume_go-vol-test1ic9vy87a2t7-updated", "size": - 20, "linode_id": null, "linode_label": null, "io_ready": false, "region": "nl-ams", + "/dev/disk/by-id/scsi-0Linode_Volume_go-vol-test07rx48m3k3pe-updated", "size": + 15, "linode_id": null, "linode_label": null, "io_ready": false, "region": "nl-ams", "tags": ["updated"], "hardware_type": "nvme", "encryption": "enabled", "locks": []}' headers: @@ -1744,7 +1884,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 15 Apr 2026 12:26:37 GMT + - Mon, 20 Apr 2026 11:45:52 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1778,7 +1918,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/volumes/15146239 + url: https://api.linode.com/v4beta/volumes/15238402 method: DELETE response: body: '{}' @@ -1806,7 +1946,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 15 Apr 2026 12:26:37 GMT + - Mon, 20 Apr 2026 11:45:52 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1839,7 +1979,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/linode/instances/96059268 + url: https://api.linode.com/v4beta/linode/instances/96323312 method: DELETE response: body: '{}' @@ -1867,7 +2007,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 15 Apr 2026 12:26:37 GMT + - Mon, 20 Apr 2026 11:45:52 GMT Pragma: - no-cache Strict-Transport-Security: diff --git a/test/integration/iam_io_ready_test.go b/test/integration/iam_io_ready_test.go index 634de99ab..85083be0d 100644 --- a/test/integration/iam_io_ready_test.go +++ b/test/integration/iam_io_ready_test.go @@ -34,6 +34,7 @@ func setupVolumeAttachedToLinode( volume, teardownVolume, err := createVolume(t, client, func(l *linodego.Client, options *linodego.VolumeCreateOptions) { options.Region = instance.Region + options.Size = 15 }) require.NoErrorf(t, err, "Error creating volume: %v", err) @@ -86,12 +87,10 @@ func requireSingleAttachedInstanceVolume(t *testing.T, client *linodego.Client, func TestIAM_GetIOReadyForNotAttachedVolume(t *testing.T) { client, recordStopper := createTestClient(t, "fixtures/TestIAM_GetIOReadyForNotAttachedVolume") - defer recordStopper() volume, teardown, err := createVolume(t, client, func(l *linodego.Client, options *linodego.VolumeCreateOptions) { options.Label = label }) - defer teardown() require.NoErrorf(t, err, "Error creating not attached volume: %v", err) volume, err = client.WaitForVolumeStatus(context.Background(), volume.ID, linodego.VolumeActive, 30) @@ -116,12 +115,15 @@ func TestIAM_GetIOReadyForNotAttachedVolume(t *testing.T) { assert.Empty(t, volume.LinodeID) assert.Empty(t, volume.LinodeLabel) assert.False(t, volume.IOReady) + + t.Cleanup(func() { + teardown() + recordStopper() + }) } func TestIAM_GetIOReadyForAttachedDetachedVolume(t *testing.T) { client, volume, instance, teardown := setupVolumeAttachedToLinode(t, "fixtures/TestIAM_GetIOReadyForAttachedDetachedVolume", false) - defer teardown() - requireSingleAttachedInstanceVolume(t, client, instance) volume, err := client.GetVolume(context.Background(), volume.ID) @@ -143,11 +145,12 @@ func TestIAM_GetIOReadyForAttachedDetachedVolume(t *testing.T) { assert.Empty(t, volume.LinodeID) assert.Empty(t, volume.LinodeLabel) assert.False(t, volume.IOReady) + + t.Cleanup(func() { teardown() }) } func TestIAM_GetIOReadyForUpdatedVolume(t *testing.T) { client, volume, instance, teardown := setupVolumeAttachedToLinode(t, "fixtures/TestIAM_GetIOReadyForUpdatedVolume", true) - defer teardown() assertVolumeAttachedToInstance(t, volume, instance) assert.NotContains(t, "-updated", volume.Label) assert.Empty(t, volume.Tags) @@ -171,48 +174,43 @@ func TestIAM_GetIOReadyForUpdatedVolume(t *testing.T) { assertVolumeAttachedToInstance(t, volume, instance) assert.Equal(t, labelUpdated, volume.Label) assert.Equal(t, tagsUpdated, volume.Tags) + + t.Cleanup(func() { teardown() }) } func TestIAM_GetIOReadyForClonedVolume(t *testing.T) { - t.Skip("Skipping test due to possible API defect - JIRA ticket: STORENGSUP-855") - client, volume, instance, teardown := setupVolumeAttachedToLinode(t, "fixtures/TestIAM_GetIOReadyForClonedVolume", true) - defer teardown() - assertVolumeAttachedToInstance(t, volume, instance) - - labelCloned := volume.Label + "-cloned" - requireSingleAttachedInstanceVolume(t, client, instance) + labelCloned := volume.Label + "-cloned" volumeCloned, err := client.CloneVolume(context.Background(), volume.ID, labelCloned) require.NoErrorf(t, err, "Error cloning volume: %v", err) - instanceVolumes, err := client.ListInstanceVolumes(context.Background(), instance.ID, nil) - require.NoErrorf(t, err, "Error listing instance volumes: %v", err) - require.Len(t, instanceVolumes, 2, "Expected 2 volumes attached to instance, got %d", len(instanceVolumes)) - for _, vol := range instanceVolumes { - assertVolumeAttachedToInstance(t, &vol, instance) - } + _, err = client.WaitForVolumeStatus(context.Background(), volumeCloned.ID, linodego.VolumeActive, 30) + require.NoErrorf(t, err, "Error waiting for IO Ready status of attached volume: %v", err) volumeCloned, err = client.GetVolume(context.Background(), volumeCloned.ID) require.NoErrorf(t, err, "Error getting cloned volume: %v", err) assert.Equal(t, labelCloned, volumeCloned.Label) - assertVolumeAttachedToInstance(t, volumeCloned, instance) - - // Cleaning the cloned volume - err = client.DetachVolume(context.Background(), volumeCloned.ID) - require.NoErrorf(t, err, "Error detaching cloned volume: %v", err) + assert.Equal(t, linodego.VolumeActive, volumeCloned.Status) + assert.Equal(t, volume.Region, volumeCloned.Region) + assert.Equal(t, volume.Size, volumeCloned.Size) + // Cloned volume should not be attached to instance automatically + requireSingleAttachedInstanceVolume(t, client, instance) + assert.Empty(t, volumeCloned.LinodeID) + assert.Empty(t, volumeCloned.LinodeLabel) + assert.False(t, volumeCloned.IOReady) - _, err = client.WaitForVolumeIOReadyStatus(context.Background(), volumeCloned.ID, false, 15) - require.NoErrorf(t, err, "Error waiting for IO Ready status of detached volume: %v", err) + t.Cleanup(func() { + err = client.DeleteVolume(context.Background(), volumeCloned.ID) + require.NoErrorf(t, err, "Error deleting cloned volume: %v", err) - err = client.DeleteVolume(context.Background(), volumeCloned.ID) - require.NoErrorf(t, err, "Error deleting cloned volume: %v", err) + teardown() + }) } func TestIAM_GetIOReadyForResizedVolume(t *testing.T) { client, volume, instance, teardown := setupVolumeAttachedToLinode(t, "fixtures/TestIAM_GetIOReadyForResizedVolume", true) - defer teardown() assertVolumeAttachedToInstance(t, volume, instance) newSize := volume.Size + 10 @@ -230,4 +228,6 @@ func TestIAM_GetIOReadyForResizedVolume(t *testing.T) { require.NoErrorf(t, err, "Error getting updated volume: %v", err) assertVolumeAttachedToInstance(t, volume, instance) assert.Equal(t, newSize, volume.Size) + + t.Cleanup(func() { teardown() }) } From 849ec3678b286845d610f0932f2fb7dd1718a5fd Mon Sep 17 00:00:00 2001 From: Maciej Wilk Date: Wed, 22 Apr 2026 16:46:40 +0200 Subject: [PATCH 13/15] Addressing PR remarks --- test/integration/iam_io_ready_test.go | 6 +++++- waitfor.go | 6 ++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/test/integration/iam_io_ready_test.go b/test/integration/iam_io_ready_test.go index 85083be0d..b89f611ae 100644 --- a/test/integration/iam_io_ready_test.go +++ b/test/integration/iam_io_ready_test.go @@ -98,8 +98,11 @@ func TestIAM_GetIOReadyForNotAttachedVolume(t *testing.T) { volumeList, err := client.ListVolumes(context.Background(), nil) require.NoErrorf(t, err, "Error listing volumes: %v", err) + volumeFound := false + for _, vol := range volumeList { if vol.ID == volume.ID { + volumeFound = true assert.Equal(t, linodego.VolumeActive, vol.Status) assert.Empty(t, vol.LinodeID) assert.Empty(t, vol.LinodeLabel) @@ -107,6 +110,7 @@ func TestIAM_GetIOReadyForNotAttachedVolume(t *testing.T) { break } } + require.True(t, volumeFound, "Volume with ID %d not found in volumeList", volume.ID) volume, err = client.GetVolume(context.Background(), volume.ID) require.NoErrorf(t, err, "Error getting not attached volume: %v", err) @@ -133,7 +137,7 @@ func TestIAM_GetIOReadyForAttachedDetachedVolume(t *testing.T) { err = client.DetachVolume(context.Background(), volume.ID) require.NoErrorf(t, err, "Error detaching volume: %v", err) - volume, err = client.WaitForVolumeIOReadyStatus(context.Background(), volume.ID, false, 45) + _, err = client.WaitForVolumeIOReadyStatus(context.Background(), volume.ID, false, 45) require.NoErrorf(t, err, "Error waiting for IO Ready status of detached volume: %v", err) instanceVolumes, err := client.ListInstanceVolumes(context.Background(), instance.ID, nil) diff --git a/waitfor.go b/waitfor.go index 0d4c4988b..56cef62ec 100644 --- a/waitfor.go +++ b/waitfor.go @@ -837,12 +837,10 @@ func (client Client) WaitForVolumeIOReadyStatus(ctx context.Context, volumeID in if err != nil { return volume, err } - - complete := (volume.IOReady == status) - - if complete { + if volume.IOReady == status { return volume, nil } + case <-ctx.Done(): return nil, fmt.Errorf("failed to wait for Volume %d IO Ready status %t: %w", volumeID, status, ctx.Err()) } From fa32e1ad2e829493f919033ea8e12d45e12aedb5 Mon Sep 17 00:00:00 2001 From: Maciej Wilk Date: Wed, 22 Apr 2026 16:50:26 +0200 Subject: [PATCH 14/15] Linter fix --- waitfor.go | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/waitfor.go b/waitfor.go index 56cef62ec..78738ccda 100644 --- a/waitfor.go +++ b/waitfor.go @@ -821,9 +821,14 @@ func (client Client) WaitForAlertDefinitionStatus( } } -// WaitForVolumeIOReadyStatus waits for the io_ready status to verify whether the volume is successfully attached to -// a Linode instance and ready for read and write operations -func (client Client) WaitForVolumeIOReadyStatus(ctx context.Context, volumeID int, status bool, timeoutSeconds int) (*Volume, error) { +// WaitForVolumeIOReadyStatus waits for the io_ready status to verify whether the volume is +// successfully attached to a Linode instance and ready for read and write operations +func (client Client) WaitForVolumeIOReadyStatus( + ctx context.Context, + volumeID int, + status bool, + timeoutSeconds int, +) (*Volume, error) { ctx, cancel := context.WithTimeout(ctx, time.Duration(timeoutSeconds)*time.Second) defer cancel() @@ -834,9 +839,11 @@ func (client Client) WaitForVolumeIOReadyStatus(ctx context.Context, volumeID in select { case <-ticker.C: volume, err := client.GetVolume(ctx, volumeID) + if err != nil { return volume, err } + if volume.IOReady == status { return volume, nil } From 24a96365cdea4eea2e28aa0595287c999e0f7337 Mon Sep 17 00:00:00 2001 From: Maciej Wilk Date: Thu, 23 Apr 2026 09:42:52 +0200 Subject: [PATCH 15/15] Linter fix --- waitfor.go | 1 - 1 file changed, 1 deletion(-) diff --git a/waitfor.go b/waitfor.go index 78738ccda..d40d47e1c 100644 --- a/waitfor.go +++ b/waitfor.go @@ -839,7 +839,6 @@ func (client Client) WaitForVolumeIOReadyStatus( select { case <-ticker.C: volume, err := client.GetVolume(ctx, volumeID) - if err != nil { return volume, err }