diff --git a/databases.go b/databases.go index ba98ce6d5..2b2eeedf1 100644 --- a/databases.go +++ b/databases.go @@ -35,6 +35,7 @@ const ( const ( DatabaseEngineTypeMySQL DatabaseEngineType = "mysql" DatabaseEngineTypePostgres DatabaseEngineType = "postgresql" + DatabaseEngineTypeValkey DatabaseEngineType = "valkey" ) const ( @@ -83,12 +84,13 @@ type Database struct { // Members has dynamic keys so it is a map Members map[string]DatabaseMemberType `json:"members"` - Encrypted bool `json:"encrypted"` - AllowList []string `json:"allow_list"` - InstanceURI string `json:"instance_uri"` - Created *time.Time `json:"-"` - Updated *time.Time `json:"-"` - OldestRestoreTime *time.Time `json:"-"` + Encrypted bool `json:"encrypted"` + AllowList []string `json:"allow_list"` + InstanceURI string `json:"instance_uri"` + Created *time.Time `json:"-"` + Updated *time.Time `json:"-"` + OldestRestoreTime *time.Time `json:"-"` + AvailableRestoreTimes []time.Time `json:"-"` PrivateNetwork *DatabasePrivateNetwork `json:"private_network,omitzero"` } @@ -144,6 +146,7 @@ type DatabaseType struct { type DatabaseTypeEngineMap struct { MySQL []DatabaseTypeEngine `json:"mysql"` PostgreSQL []DatabaseTypeEngine `json:"postgresql"` + Valkey []DatabaseTypeEngine `json:"valkey"` } // DatabaseTypeEngine Sizes and Prices @@ -161,7 +164,7 @@ type ClusterPrice struct { // DatabaseFork describes the source and restore time for the fork for forked DBs type DatabaseFork struct { Source int `json:"source"` - RestoreTime *time.Time `json:"-,omitzero"` + RestoreTime *time.Time `json:"restore_time,omitzero"` } func (d *Database) UnmarshalJSON(b []byte) error { @@ -170,9 +173,10 @@ func (d *Database) UnmarshalJSON(b []byte) error { p := struct { *Mask - Created *parseabletime.ParseableTime `json:"created"` - Updated *parseabletime.ParseableTime `json:"updated"` - OldestRestoreTime *parseabletime.ParseableTime `json:"oldest_restore_time"` + Created *parseabletime.ParseableTime `json:"created"` + Updated *parseabletime.ParseableTime `json:"updated"` + OldestRestoreTime *parseabletime.ParseableTime `json:"oldest_restore_time"` + AvailableRestoreTimes []parseabletime.ParseableTime `json:"available_restore_times"` }{ Mask: (*Mask)(d), } @@ -185,6 +189,14 @@ func (d *Database) UnmarshalJSON(b []byte) error { d.Updated = (*time.Time)(p.Updated) d.OldestRestoreTime = (*time.Time)(p.OldestRestoreTime) + d.AvailableRestoreTimes = nil + if p.AvailableRestoreTimes != nil { + d.AvailableRestoreTimes = make([]time.Time, len(p.AvailableRestoreTimes)) + for i, t := range p.AvailableRestoreTimes { + d.AvailableRestoreTimes[i] = time.Time(t) + } + } + return nil } diff --git a/test/integration/fixtures/TestDatabaseValkey_EngineConfig_Get.yaml b/test/integration/fixtures/TestDatabaseValkey_EngineConfig_Get.yaml new file mode 100644 index 000000000..3343c8d7d --- /dev/null +++ b/test/integration/fixtures/TestDatabaseValkey_EngineConfig_Get.yaml @@ -0,0 +1,114 @@ +--- +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/databases/valkey/config + method: GET + response: + body: '{"backup_hour": {"description": "The hour of day (in UTC) when backup for + the service is started. New backup is only started if previous backup has already + completed.", "example": 3, "maximum": 23, "minimum": 0, "requires_restart": + false, "type": ["integer", "null"]}, "backup_minute": {"description": "The minute + of an hour when backup for the service is started. New backup is only started + if previous backup has already completed.", "example": 30, "maximum": 59, "minimum": + 0, "requires_restart": false, "type": ["integer", "null"]}, "frequent_snapshots": + {"default": true, "description": "When enabled, Valkey will create frequent + local RDB snapshots. When disabled, Valkey will only take RDB snapshots when + a backup is created, based on the backup schedule. This setting is ignored when + `valkey_persistence` is set to `off`.", "requires_restart": false, "type": "boolean"}, + "valkey_acl_channels_default": {"description": "Determines default pub/sub channels'' + ACL for new users if ACL is not supplied. When this option is not defined, all_channels + is assumed to keep backward compatibility. This option doesn''t affect Valkey + configuration acl-pubsub-default.", "enum": ["allchannels", "resetchannels"], + "requires_restart": false, "type": "string"}, "valkey_active_expire_effort": + {"default": 1, "description": "Valkey reclaims expired keys both when accessed + and in the background. The background process scans for expired keys to free + memory. Increasing the active-expire-effort setting (default 1, max 10) uses + more CPU to reclaim expired keys faster, reducing memory usage but potentially + increasing latency.", "maximum": 10, "minimum": 1, "requires_restart": false, + "type": "integer"}, "valkey_activedefrag": {"default": false, "description": + "Enable active memory defragmentation. When enabled, Valkey relocates objects + off sparsely-used memory pages to reduce fragmentation and return memory to + the operating system. Defragmentation runs on the main thread and consumes CPU, + so it may increase latency under load.", "requires_restart": false, "type": + "boolean"}, "valkey_lfu_decay_time": {"default": 1, "description": "LFU maxmemory-policy + counter decay time in minutes", "maximum": 120, "minimum": 1, "requires_restart": + false, "type": "integer"}, "valkey_lfu_log_factor": {"default": 10, "description": + "Counter logarithm factor for volatile-lfu and allkeys-lfu maxmemory-policies", + "maximum": 100, "minimum": 0, "requires_restart": false, "type": "integer"}, + "valkey_maxmemory_policy": {"default": "noeviction", "description": "Valkey + maxmemory-policy", "enum": ["noeviction", "allkeys-lru", "volatile-lru", "allkeys-random", + "volatile-random", "volatile-ttl", "volatile-lfu", "allkeys-lfu"], "requires_restart": + false, "type": ["string", "null"]}, "valkey_number_of_databases": {"description": + "Set number of Valkey databases. Changing this will cause a restart of the Valkey + service.", "example": 16, "maximum": 128, "minimum": 1, "requires_restart": + true, "type": "integer"}, "valkey_persistence": {"description": "When persistence + is ''rdb'', Valkey does RDB dumps each 10 minutes if any key is changed. Also + RDB dumps are done according to backup schedule for backup purposes. When persistence + is ''off'', no RDB dumps and backups are done, so data can be lost at any moment + if service is restarted for any reason, or if service is powered off. Also service + can''t be forked.", "enum": ["off", "rdb"], "requires_restart": true, "type": + "string"}, "valkey_pubsub_client_output_buffer_limit": {"description": "Set + output buffer limit for pub / sub clients in MB. The value is the hard limit, + the soft limit is 1/4 of the hard limit. When setting the limit, be mindful + of the available memory in the selected service plan.", "example": 64, "maximum": + 262144, "minimum": 32, "requires_restart": false, "type": "integer"}, "valkey_timeout": + {"default": 300, "description": "Valkey idle connection timeout in seconds", + "maximum": 2073600, "minimum": 0, "requires_restart": false, "type": "integer"}}' + 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, 14 Sep 2026 19:36:45 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: + - databases:read_write ips:read_write linodes:read_write lke:read_write nodebalancers:read_write + vpc:read_write + X-Ratelimit-Limit: + - "1840" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" diff --git a/test/integration/fixtures/TestDatabase_Valkey_Suite.yaml b/test/integration/fixtures/TestDatabase_Valkey_Suite.yaml new file mode 100644 index 000000000..ebbeb397f --- /dev/null +++ b/test/integration/fixtures/TestDatabase_Valkey_Suite.yaml @@ -0,0 +1,8486 @@ +--- +version: 1 +interactions: +- request: + body: "" + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/regions?page=1 + method: GET + response: + body: '{"data": [{"id": "au-mel", "label": "Melbourne, AU", "country": "au", "capabilities": + ["Linodes", "Block Storage Encryption", "LA Disk Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "VPC Dual Stack", "Managed Databases", "Metadata", "Premium + Plans", "Placement Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], + "monitors": {"alerts": ["Managed Databases", "NodeBalancers", "Object Storage"], + "metrics": ["Managed Databases", "NodeBalancers", "Object Storage"]}, "status": + "ok", "resolvers": {"ipv4": "172.236.32.23,172.236.32.35,172.236.32.30,172.236.32.28,172.236.32.32,172.236.32.33,172.236.32.27,172.236.32.37,172.236.32.29,172.236.32.34", + "ipv6": "2600:3c14:e001:15::1,2600:3c14:e001:15::2,2600:3c14:e001:15::3,2600:3c14:e001:15::4,2600:3c14:e001:15::5,2600:3c14:e001:15::6,2600:3c14:e001:15::7,2600:3c14:e001:15::8,2600:3c14:e001:15::9,2600:3c14:e001:15::10"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 250}, "site_type": "core"}, {"id": "es-mad", + "label": "Madrid, ES", "country": "es", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "Premium NodeBalancers", + "NodeBalancers", "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", + "VPC Dual 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": "2a01:7e02:e001:3e::1,2a01:7e02:e001:3e::2,2a01:7e02:e001:3e::3,2a01:7e02:e001:3e::4,2a01:7e02:e001:3e::5,2a01:7e02:e001:3e::6,2a01:7e02:e001:3e::7,2a01:7e02:e001:3e::8,2a01:7e02:e001:3e::9,2a01:7e02:e001:3e::10"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 250}, "site_type": "core"}, {"id": "in-maa", + "label": "Chennai, IN", "country": "in", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "Premium + NodeBalancers", "NodeBalancers", "Block Storage", "Object Storage", "GPU Linodes", + "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual 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": "2600:3c08:e001:82::1,2600:3c08:e001:82::2,2600:3c08:e001:82::3,2600:3c08:e001:82::4,2600:3c08:e001:82::5,2600:3c08:e001:82::6,2600:3c08:e001:82::7,2600:3c08:e001:82::8,2600:3c08:e001:82::9,2600:3c08:e001:82::10"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 250}, "site_type": "core"}, {"id": "jp-osa", + "label": "Osaka, JP", "country": "jp", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "Premium NodeBalancers", + "NodeBalancers", "Block Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "VPC Dual 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": "2400:8905:e001:d4::1,2400:8905:e001:d4::2,2400:8905:e001:d4::3,2400:8905:e001:d4::4,2400:8905:e001:d4::5,2400:8905:e001:d4::6,2400:8905:e001:d4::7,2400:8905:e001:d4::8,2400:8905:e001:d4::9,2400:8905:e001:d4::10"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 250}, "site_type": "core"}, {"id": "it-mil", + "label": "Milan, IT", "country": "it", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "Premium NodeBalancers", + "NodeBalancers", "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", + "VPC Dual 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": "2600:3c0b:e001:56::1,2600:3c0b:e001:56::2,2600:3c0b:e001:56::3,2600:3c0b:e001:56::4,2600:3c0b:e001:56::5,2600:3c0b:e001:56::6,2600:3c0b:e001:56::7,2600:3c0b:e001:56::8,2600:3c0b:e001:56::9,2600:3c0b:e001:56::10"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 250}, "site_type": "core"}, {"id": "us-mia", + "label": "Miami, FL", "country": "us", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "Premium NodeBalancers", + "NodeBalancers", "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", + "Cloud Firewall", "Vlans", "VPCs", "VPC Dual 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": "2a01:7e04:e001:b3::1,2a01:7e04:e001:b3::2,2a01:7e04:e001:b3::3,2a01:7e04:e001:b3::4,2a01:7e04:e001:b3::5,2a01:7e04:e001:b3::6,2a01:7e04:e001:b3::7,2a01:7e04:e001:b3::8,2a01:7e04:e001:b3::9,2a01:7e04:e001:b3::10"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 250}, "site_type": "core"}, {"id": "id-cgk", + "label": "Jakarta, ID", "country": "id", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "Premium + NodeBalancers", "NodeBalancers", "Block Storage", "Object Storage", "GPU Linodes", + "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual 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": "2600:3c0c:e001:7f3::1,2600:3c0c:e001:7f3::2,2600:3c0c:e001:7f3::3,2600:3c0c:e001:7f3::4,2600:3c0c:e001:7f3::5,2600:3c0c:e001:7f3::6,2600:3c0c:e001:7f3::7,2600:3c0c:e001:7f3::8,2600:3c0c:e001:7f3::9,2600:3c0c:e001:7f3::10"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 250}, "site_type": "core"}, {"id": "us-lax", + "label": "Los Angeles, CA", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "Premium + NodeBalancers", "NodeBalancers", "Block Storage", "Object Storage", "GPU Linodes", + "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "Managed + Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts", + "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces", "ACLP Logs Datacenter + LKE-E"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers", "Object + Storage"], "metrics": ["Managed Databases", "NodeBalancers", "Object Storage"]}, + "status": "ok", "resolvers": {"ipv4": "172.233.128.45,172.233.128.38,172.233.128.53,172.233.128.37,172.233.128.34,172.233.128.36,172.233.128.33,172.233.128.39,172.233.128.43,172.233.128.44", + "ipv6": "2a01:7e03:e001:e8::1,2a01:7e03:e001:e8::2,2a01:7e03:e001:e8::3,2a01:7e03:e001:e8::4,2a01:7e03:e001:e8::5,2a01:7e03:e001:e8::6,2a01:7e03:e001:e8::7,2a01:7e03:e001:e8::8,2a01:7e03:e001:e8::9,2a01:7e03:e001:e8::10"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 250}, "site_type": "core"}, {"id": "gb-lon", + "label": "London 2, UK", "country": "gb", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "Premium + NodeBalancers", "NodeBalancers", "Block Storage", "Object Storage", "GPU Linodes", + "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "Managed + Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts", + "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces", "ACLP Logs Datacenter + LKE-E"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers", "Object + Storage"], "metrics": ["Managed Databases", "NodeBalancers", "Object Storage"]}, + "status": "ok", "resolvers": {"ipv4": "172.236.0.46,172.236.0.50,172.236.0.47,172.236.0.53,172.236.0.52,172.236.0.45,172.236.0.49,172.236.0.51,172.236.0.54,172.236.0.48", + "ipv6": "2600:3c13:e001:29::1,2600:3c13:e001:29::2,2600:3c13:e001:29::3,2600:3c13:e001:29::4,2600:3c13:e001:29::5,2600:3c13:e001:29::6,2600:3c13:e001:29::7,2600:3c13:e001:29::8,2600:3c13:e001:29::9,2600:3c13:e001:29::10"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 250}, "site_type": "core"}, {"id": "se-sto", + "label": "Stockholm, SE", "country": "se", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "Premium + NodeBalancers", "NodeBalancers", "Block Storage", "GPU Linodes", "Kubernetes", + "Cloud Firewall", "Vlans", "VPCs", "VPC Dual 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": "2600:3c09:e001:93::1,2600:3c09:e001:93::2,2600:3c09:e001:93::3,2600:3c09:e001:93::4,2600:3c09:e001:93::5,2600:3c09:e001:93::6,2600:3c09:e001:93::7,2600:3c09:e001:93::8,2600:3c09:e001:93::9,2600:3c09:e001:93::10"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 250}, "site_type": "core"}, {"id": "in-bom-2", + "label": "Mumbai 2, IN", "country": "in", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "Premium + NodeBalancers", "NodeBalancers", "Block Storage", "GPU Linodes", "Kubernetes", + "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "Managed Databases", "Metadata", + "Premium Plans", "Placement Group", "StackScripts", "Maintenance Policy", "Linode + Interfaces", "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": ["Managed + Databases", "NodeBalancers", "Object Storage"], "metrics": ["Managed Databases", + "NodeBalancers", "Object Storage"]}, "status": "ok", "resolvers": {"ipv4": "172.236.171.41,172.236.171.42,172.236.171.25,172.236.171.44,172.236.171.26,172.236.171.45,172.236.171.24,172.236.171.43,172.236.171.27,172.236.171.28", + "ipv6": "2600:3c16:e001:b::1,2600:3c16:e001:b::2,2600:3c16:e001:b::3,2600:3c16:e001:b::4,2600:3c16:e001:b::5,2600:3c16:e001:b::6,2600:3c16:e001:b::7,2600:3c16:e001:b::8,2600:3c16:e001:b::9,2600:3c16:e001:b::10"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 250}, "site_type": "core"}, {"id": "de-fra-2", + "label": "Frankfurt 2, DE", "country": "de", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "Premium + NodeBalancers", "NodeBalancers", "Block Storage", "Object Storage", "GPU Linodes", + "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "Managed + Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts", + "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces", "ACLP Logs Datacenter + LKE-E"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers", "Object + Storage"], "metrics": ["Managed Databases", "NodeBalancers", "Object Storage"]}, + "status": "ok", "resolvers": {"ipv4": "172.236.203.9,172.236.203.16,172.236.203.19,172.236.203.15,172.236.203.17,172.236.203.11,172.236.203.18,172.236.203.14,172.236.203.13,172.236.203.12", + "ipv6": "2600:3c17:e001:4::1,2600:3c17:e001:4::2,2600:3c17:e001:4::3,2600:3c17:e001:4::4,2600:3c17:e001:4::5,2600:3c17:e001:4::6,2600:3c17:e001:4::7,2600:3c17:e001:4::8,2600:3c17:e001:4::9,2600:3c17:e001:4::10"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 250}, "site_type": "core"}, {"id": "sg-sin-2", + "label": "Singapore 2, SG", "country": "sg", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "Premium + NodeBalancers", "NodeBalancers", "Block Storage", "Object Storage", "GPU Linodes", + "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "Managed + Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts", + "Maintenance Policy", "Linode Interfaces", "ACLP Logs Datacenter LKE-E"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers", "Object Storage"], "metrics": + ["Managed Databases", "NodeBalancers", "Object Storage"]}, "status": "ok", "resolvers": + {"ipv4": "172.236.129.8,172.236.129.42,172.236.129.41,172.236.129.19,172.236.129.46,172.236.129.23,172.236.129.48,172.236.129.20,172.236.129.21,172.236.129.47", + "ipv6": "2600:3c15:e001:17::1,2600:3c15:e001:17::2,2600:3c15:e001:17::3,2600:3c15:e001:17::4,2600:3c15:e001:17::5,2600:3c15:e001:17::6,2600:3c15:e001:17::7,2600:3c15:e001:17::8,2600:3c15:e001:17::9,2600:3c15:e001:17::10"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 250}, "site_type": "core"}, {"id": "jp-tyo-3", + "label": "Tokyo 3, JP", "country": "jp", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "Premium + NodeBalancers", "NodeBalancers", "Block Storage", "Object Storage", "GPU Linodes", + "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "Managed + Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts", + "Maintenance Policy", "Linode Interfaces", "ACLP Logs Datacenter LKE-E"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers", "Object Storage"], "metrics": + ["Managed Databases", "NodeBalancers", "Object Storage"]}, "status": "ok", "resolvers": + {"ipv4": "172.237.4.15,172.237.4.19,172.237.4.17,172.237.4.21,172.237.4.16,172.237.4.18,172.237.4.23,172.237.4.24,172.237.4.20,172.237.4.14", + "ipv6": "2600:3c18:e001:4::1,2600:3c18:e001:4::2,2600:3c18:e001:4::3,2600:3c18:e001:4::4,2600:3c18:e001:4::5,2600:3c18:e001:4::6,2600:3c18:e001:4::7,2600:3c18:e001:4::8,2600:3c18:e001:4::9,2600:3c18:e001:4::10"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 250}, "site_type": "core"}, {"id": "no-osl-1", + "label": "Oslo, NO", "country": "no", "capabilities": ["Linodes", "Block Storage + Encryption", "Disk Encryption", "Backups", "Premium NodeBalancers", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual + Stack", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs Datacenter + LKE-E"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers", "Object + Storage"], "metrics": ["Managed Databases", "NodeBalancers", "Object Storage"]}, + "status": "ok", "resolvers": {"ipv4": "172.238.140.33,172.238.140.25,172.238.140.30,172.238.140.31,172.238.140.26,172.238.140.28,172.238.140.34,172.238.140.32,172.238.140.27,172.238.140.29", + "ipv6": "2600:3c19:e001::1,2600:3c19:e001::2,2600:3c19:e001::3,2600:3c19:e001::4,2600:3c19:e001::5,2600:3c19:e001::6,2600:3c19:e001::7,2600:3c19:e001::8,2600:3c19:e001::9,2600:3c19:e001::10"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 250}, "site_type": "core"}, {"id": "us-iad-2", + "label": "Washington 2, DC", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "Disk Encryption", "Backups", "Premium NodeBalancers", + "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "VPC Dual Stack", "Managed Databases", "Metadata", "Premium + Plans", "Placement Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], + "monitors": {"alerts": ["Managed Databases", "NodeBalancers", "Object Storage"], + "metrics": ["Managed Databases", "NodeBalancers", "Object Storage"]}, "status": + "ok", "resolvers": {"ipv4": "172.239.142.102,172.239.142.89,172.239.142.92,172.239.142.87,172.239.142.88,172.239.142.103,172.239.142.91,172.239.142.90,172.239.142.86,172.239.142.100", + "ipv6": "2600:3c1b:e001:4::1,2600:3c1b:e001:4::2,2600:3c1b:e001:4::3,2600:3c1b:e001:4::4,2600:3c1b:e001:4::5,2600:3c1b:e001:4::6,2600:3c1b:e001:4::7,2600:3c1b:e001:4::8,2600:3c1b:e001:4::9,2600:3c1b:e001:4::10"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 250}, "site_type": "core"}, {"id": "fr-par-2", + "label": "Paris 2, FR", "country": "fr", "capabilities": ["Linodes", "Block + Storage Encryption", "Disk Encryption", "Backups", "Premium NodeBalancers", + "NodeBalancers", "Block Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "VPC Dual Stack", "Managed Databases", "Metadata", "Premium + Plans", "Placement Group", "StackScripts", "Maintenance Policy", "Linode Interfaces", + "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers", "Object Storage"], "metrics": ["Managed Databases", "NodeBalancers", + "Object Storage"]}, "status": "ok", "resolvers": {"ipv4": "172.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": "2600:3c1a:e001:2::1,2600:3c1a:e001:2::2,2600:3c1a:e001:2::3,2600:3c1a:e001:2::4,2600:3c1a:e001:2::5,2600:3c1a:e001:2::6,2600:3c1a:e001:2::7,2600:3c1a:e001:2::8,2600:3c1a:e001:2::9,2600:3c1a:e001:2::10"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 250}, "site_type": "core"}, {"id": "nl-ams", + "label": "Amsterdam, NL", "country": "nl", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "Premium + NodeBalancers", "NodeBalancers", "Block Storage", "GPU Linodes", "Kubernetes", + "Cloud Firewall", "Vlans", "VPCs", "VPC Dual 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": "2600:3c0e:e001:a0::1,2600:3c0e:e001:a0::2,2600:3c0e:e001:a0::3,2600:3c0e:e001:a0::4,2600:3c0e:e001:a0::5,2600:3c0e:e001:a0::6,2600:3c0e:e001:a0::7,2600:3c0e:e001:a0::8,2600:3c0e:e001:a0::9,2600:3c0e:e001:a0::10"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 250}, "site_type": "core"}, {"id": "ap-west", + "label": "Mumbai, IN", "country": "in", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "172.105.34.5,172.105.35.5,172.105.36.5,172.105.37.5,172.105.38.5,172.105.39.5,172.105.40.5,172.105.41.5,172.105.42.5,172.105.43.5", + "ipv6": "2400:8904:e001:264::1,2400:8904:e001:264::2,2400:8904:e001:264::3,2400:8904:e001:264::4,2400:8904:e001:264::5,2400:8904:e001:264::6,2400:8904:e001:264::7,2400:8904:e001:264::8,2400:8904:e001:264::9,2400:8904:e001:264::10"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 250}, "site_type": "core"}, {"id": "ca-central", + "label": "Toronto, CA", "country": "ca", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "Block + Storage Migrations", "Managed Databases", "Metadata", "Placement Group", "StackScripts", + "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed + Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.105.0.5,172.105.3.5,172.105.4.5,172.105.5.5,172.105.6.5,172.105.7.5,172.105.8.5,172.105.9.5,172.105.10.5,172.105.11.5", + "ipv6": "2600:3c04:e001:305::1,2600:3c04:e001:305::2,2600:3c04:e001:305::3,2600:3c04:e001:305::4,2600:3c04:e001:305::5,2600:3c04:e001:305::6,2600:3c04:e001:305::7,2600:3c04:e001:305::8,2600:3c04:e001:305::9,2600:3c04:e001:305::10"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 250}, "site_type": "core"}, {"id": "ap-southeast", + "label": "Sydney, AU", "country": "au", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "172.105.166.5,172.105.169.5,172.105.168.5,172.105.172.5,172.105.162.5,172.105.170.5,172.105.167.5,172.105.171.5,172.105.181.5,172.105.161.5", + "ipv6": "2400:8907:e001:294::1,2400:8907:e001:294::2,2400:8907:e001:294::3,2400:8907:e001:294::4,2400:8907:e001:294::5,2400:8907:e001:294::6,2400:8907:e001:294::7,2400:8907:e001:294::8,2400:8907:e001:294::9,2400:8907:e001:294::10"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 250}, "site_type": "core"}, {"id": "us-iad", + "label": "Washington, DC", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "Premium + NodeBalancers", "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", + "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "Managed Databases", "Metadata", + "Premium Plans", "Placement Group", "StackScripts", "Maintenance Policy", "Linode + Interfaces", "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": ["Managed + Databases", "NodeBalancers", "Object Storage"], "metrics": ["Managed Databases", + "NodeBalancers", "Object Storage"]}, "status": "ok", "resolvers": {"ipv4": "139.144.192.62,139.144.192.60,139.144.192.61,139.144.192.53,139.144.192.54,139.144.192.67,139.144.192.69,139.144.192.66,139.144.192.52,139.144.192.68", + "ipv6": "2600:3c05:e001:bc::1,2600:3c05:e001:bc::2,2600:3c05:e001:bc::3,2600:3c05:e001:bc::4,2600:3c05:e001:bc::5,2600:3c05:e001:bc::6,2600:3c05:e001:bc::7,2600:3c05:e001:bc::8,2600:3c05:e001:bc::9,2600:3c05:e001:bc::10"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 250}, "site_type": "core"}, {"id": "us-ord", + "label": "Chicago, IL", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "Premium + NodeBalancers", "NodeBalancers", "Block Storage", "Object Storage", "GPU Linodes", + "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "Managed + Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts", + "Maintenance Policy", "Linode Interfaces", "ACLP Logs Datacenter LKE-E"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers", "Object Storage"], "metrics": + ["Managed Databases", "NodeBalancers", "Object Storage"]}, "status": "ok", "resolvers": + {"ipv4": "172.232.0.17,172.232.0.16,172.232.0.21,172.232.0.13,172.232.0.22,172.232.0.9,172.232.0.19,172.232.0.20,172.232.0.15,172.232.0.18", + "ipv6": "2600:3c06:e001:67::1,2600:3c06:e001:67::2,2600:3c06:e001:67::3,2600:3c06:e001:67::4,2600:3c06:e001:67::5,2600:3c06:e001:67::6,2600:3c06:e001:67::7,2600:3c06:e001:67::8,2600:3c06:e001:67::9,2600:3c06:e001:67::10"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 250}, "site_type": "core"}, {"id": "fr-par", + "label": "Paris, FR", "country": "fr", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "Premium NodeBalancers", + "NodeBalancers", "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", + "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "Managed Databases", "Metadata", + "Premium Plans", "Placement Group", "StackScripts", "Maintenance Policy", "Linode + Interfaces"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers", + "Object Storage"], "metrics": ["Managed Databases", "NodeBalancers", "Object + Storage"]}, "status": "ok", "resolvers": {"ipv4": "172.232.32.21,172.232.32.23,172.232.32.17,172.232.32.18,172.232.32.16,172.232.32.22,172.232.32.20,172.232.32.14,172.232.32.11,172.232.32.12", + "ipv6": "2600:3c07:e001:9a::1,2600:3c07:e001:9a::2,2600:3c07:e001:9a::3,2600:3c07:e001:9a::4,2600:3c07:e001:9a::5,2600:3c07:e001:9a::6,2600:3c07:e001:9a::7,2600:3c07:e001:9a::8,2600:3c07:e001:9a::9,2600:3c07:e001:9a::10"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 250}, "site_type": "core"}, {"id": "us-sea", + "label": "Seattle, WA", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "Premium + NodeBalancers", "NodeBalancers", "Block Storage", "Object Storage", "GPU Linodes", + "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "Managed + Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts", + "Maintenance Policy", "Linode Interfaces", "ACLP Logs Datacenter LKE-E"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers", "Object Storage"], "metrics": + ["Managed Databases", "NodeBalancers", "Object Storage"]}, "status": "ok", "resolvers": + {"ipv4": "172.232.160.19,172.232.160.21,172.232.160.17,172.232.160.15,172.232.160.18,172.232.160.8,172.232.160.12,172.232.160.11,172.232.160.14,172.232.160.16", + "ipv6": "2600:3c0a:e001:7bb::1,2600:3c0a:e001:7bb::2,2600:3c0a:e001:7bb::3,2600:3c0a:e001:7bb::4,2600:3c0a:e001:7bb::5,2600:3c0a:e001:7bb::6,2600:3c0a:e001:7bb::7,2600:3c0a:e001:7bb::8,2600:3c0a:e001:7bb::9,2600:3c0a:e001:7bb::10"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 250}, "site_type": "core"}, {"id": "br-gru", + "label": "Sao Paulo, BR", "country": "br", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "Premium + NodeBalancers", "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", + "Cloud Firewall", "Vlans", "VPCs", "VPC Dual 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": "2600:3c0d:e001:44::1,2600:3c0d:e001:44::2,2600:3c0d:e001:44::3,2600:3c0d:e001:44::4,2600:3c0d:e001:44::5,2600:3c0d:e001:44::6,2600:3c0d:e001:44::7,2600:3c0d:e001:44::8,2600:3c0d:e001:44::9,2600:3c0d:e001:44::10"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 250}, "site_type": "core"}, {"id": "us-central", + "label": "Dallas, TX", "country": "us", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "72.14.179.5,72.14.188.5,173.255.199.5,66.228.53.5,96.126.122.5,96.126.124.5,96.126.127.5,198.58.107.5,198.58.111.5,23.239.24.5", + "ipv6": "2600:3c00::2,2600:3c00::9,2600:3c00::7,2600:3c00::5,2600:3c00::3,2600:3c00::8,2600:3c00::6,2600:3c00::4,2600:3c00::c,2600:3c00::b"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 250}, "site_type": "core"}, {"id": "ap-northeast", + "label": "Tokyo 2, JP", "country": "jp", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "139.162.66.5,139.162.67.5,139.162.68.5,139.162.69.5,139.162.70.5,139.162.71.5,139.162.72.5,139.162.73.5,139.162.74.5,139.162.75.5", + "ipv6": "2400:8902::3,2400:8902::6,2400:8902::c,2400:8902::4,2400:8902::2,2400:8902::8,2400:8902::7,2400:8902::5,2400:8902::b,2400:8902::9"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 250}, "site_type": "core"}, {"id": "eu-central", + "label": "Frankfurt, DE", "country": "de", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "Block + Storage Migrations", "Managed Databases", "Metadata", "Placement Group", "StackScripts", + "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed + Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "139.162.130.5,139.162.131.5,139.162.132.5,139.162.133.5,139.162.134.5,139.162.135.5,139.162.136.5,139.162.137.5,139.162.138.5,139.162.139.5", + "ipv6": "2a01:7e01::5,2a01:7e01::9,2a01:7e01::7,2a01:7e01::c,2a01:7e01::2,2a01:7e01::4,2a01:7e01::3,2a01:7e01::6,2a01:7e01::b,2a01:7e01::8"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 250}, "site_type": "core"}, {"id": "ap-south", + "label": "Singapore, SG", "country": "sg", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "Block + Storage Migrations", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["NodeBalancers"], "metrics": + ["NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "139.162.11.5,139.162.13.5,139.162.14.5,139.162.15.5,139.162.16.5,139.162.21.5,139.162.27.5,103.3.60.18,103.3.60.19,103.3.60.20", + "ipv6": "2400:8901::5,2400:8901::4,2400:8901::b,2400:8901::3,2400:8901::9,2400:8901::2,2400:8901::8,2400:8901::7,2400:8901::c,2400:8901::6"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 250}, "site_type": "core"}, {"id": "eu-west", + "label": "London, UK", "country": "gb", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Metadata", "Placement Group", "StackScripts", "Maintenance Policy", "Linode + Interfaces"], "monitors": {"alerts": ["NodeBalancers"], "metrics": ["NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "178.79.182.5, 176.58.107.5, 176.58.116.5, + 176.58.121.5, 151.236.220.5, 212.71.252.5, 212.71.253.5, 109.74.192.20, 109.74.193.20, + 109.74.194.20", "ipv6": "2a01:7e00::9, 2a01:7e00::3, 2a01:7e00::c, 2a01:7e00::5, + 2a01:7e00::6, 2a01:7e00::8, 2a01:7e00::b, 2a01:7e00::4, 2a01:7e00::7, 2a01:7e00::2"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 250}, "site_type": "core"}, {"id": "us-east", + "label": "Newark, NJ", "country": "us", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "66.228.42.5,96.126.106.5,50.116.53.5,50.116.58.5,50.116.61.5,50.116.62.5,66.175.211.5,97.107.133.4,173.255.225.5,66.228.35.5", + "ipv6": "2600:3c03::7,2600:3c03::4,2600:3c03::9,2600:3c03::6,2600:3c03::3,2600:3c03::c,2600:3c03::5,2600:3c03::b,2600:3c03::2,2600:3c03::8"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 250}, "site_type": "core"}, {"id": "us-southeast", + "label": "Atlanta, GA", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "74.207.231.5,173.230.128.5,173.230.129.5,173.230.136.5,173.230.140.5,66.228.59.5,66.228.62.5,50.116.35.5,50.116.41.5,23.239.18.5", + "ipv6": "2600:3c02::3,2600:3c02::5,2600:3c02::4,2600:3c02::6,2600:3c02::c,2600:3c02::7,2600:3c02::2,2600:3c02::9,2600:3c02::8,2600:3c02::b"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 250}, "site_type": "core"}, {"id": "us-west", + "label": "Fremont, CA", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "173.230.145.5, 173.230.147.5, 173.230.155.5, 173.255.212.5, + 173.255.219.5, 173.255.241.5, 173.255.243.5, 173.255.244.5, 74.207.241.5, 74.207.242.5", + "ipv6": "2600:3c01::2, 2600:3c01::9, 2600:3c01::5, 2600:3c01::7, 2600:3c01::3, + 2600:3c01::8, 2600:3c01::4, 2600:3c01::b, 2600:3c01::c, 2600:3c01::6"}, "placement_group_limits": + {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5, "maximum_linodes_per_flexible_pg": + 250}, "site_type": "core"}], "page": 1, "pages": 1, "results": 34}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 18:45:31 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-valkey-test-fixture", "region": "au-mel", "type": "g7-dedicated-4-2", "engine": "valkey/8.1", + "allow_list": ["203.0.113.1"], "cluster_size": 1}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/databases/valkey/instances + method: POST + response: + body: '{"allow_list": ["203.0.113.1/32"], "available_restore_times": [], "cluster_size": 1, "created": "2018-01-02T03:04:05", + "encrypted": true, "engine": "valkey", "engine_config": {"frequent_snapshots": true, "valkey_active_expire_effort": + 1, "valkey_activedefrag": false, "valkey_lfu_decay_time": 1, "valkey_lfu_log_factor": 10, "valkey_maxmemory_policy": + "noeviction", "valkey_timeout": 300}, "hosts": {"endpoints": [{"address": "valkey.example.com", "port": + 27283, "public_access": true, "role": "primary"}], "primary": "valkey.example.com"}, "id": 123, "label": + "go-valkey-test-fixture", "members": {}, "port": 27283, "private_network": null, "region": "au-mel", + "ssl_connection": true, "status": "provisioning", "total_disk_size_gb": 0, "type": "g7-dedicated-4-2", + "updated": "2018-01-02T03:04:05", "updates": {"day_of_week": 2, "duration": 4, "frequency": "weekly", + "hour_of_day": 8, "pending": []}, "used_disk_size_gb": null, "version": "8.1", "platform": "rdbms-default"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 18:45:34 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - databases: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 + X-Filter: + - '{"+order": "desc", "+order_by": "created", "action": "database_create", "created": {"+gte": "2026-09-17T18:45:30"}, + "entity.id": 123, "entity.type": "database"}' + url: https://api.linode.com/v4beta/account/events?page=1 + method: GET + response: + body: '{"data": [{"id": 1001, "created": "2018-01-02T03:04:05", "seen": false, "read": false, "percent_complete": + null, "time_remaining": null, "rate": null, "duration": null, "action": "database_create", "username": + "test-user", "entity": {"label": "go-valkey-test-fixture", "id": 123, "type": "database", "url": "/v4/databases/valkey/instances/123"}, + "status": "notification", "secondary_entity": null, "message": "", "details": {}}], "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: + - "483" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 18:45:49 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - events: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 + X-Filter: + - '{"+order": "desc", "+order_by": "created", "action": "database_create", "created": {"+gte": "2026-09-17T18:45:30"}, + "entity.id": 123, "entity.type": "database", "id": {"+gte": 1001}}' + url: https://api.linode.com/v4beta/account/events?page=1 + method: GET + response: + body: '{"data": [{"id": 1001, "created": "2018-01-02T03:04:05", "seen": false, "read": false, "percent_complete": + null, "time_remaining": null, "rate": null, "duration": null, "action": "database_create", "username": + "test-user", "entity": {"label": "go-valkey-test-fixture", "id": 123, "type": "database", "url": "/v4/databases/valkey/instances/123"}, + "status": "notification", "secondary_entity": null, "message": "", "details": {}}], "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: + - "483" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 18:46:05 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - events: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 + X-Filter: + - '{"+order": "desc", "+order_by": "created", "action": "database_create", "created": {"+gte": "2026-09-17T18:45:30"}, + "entity.id": 123, "entity.type": "database", "id": {"+gte": 1001}}' + url: https://api.linode.com/v4beta/account/events?page=1 + method: GET + response: + body: '{"data": [{"id": 1001, "created": "2018-01-02T03:04:05", "seen": false, "read": false, "percent_complete": + null, "time_remaining": null, "rate": null, "duration": null, "action": "database_create", "username": + "test-user", "entity": {"label": "go-valkey-test-fixture", "id": 123, "type": "database", "url": "/v4/databases/valkey/instances/123"}, + "status": "notification", "secondary_entity": null, "message": "", "details": {}}], "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: + - "483" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 18:46:20 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - events: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 + X-Filter: + - '{"+order": "desc", "+order_by": "created", "action": "database_create", "created": {"+gte": "2026-09-17T18:45:30"}, + "entity.id": 123, "entity.type": "database", "id": {"+gte": 1001}}' + url: https://api.linode.com/v4beta/account/events?page=1 + method: GET + response: + body: '{"data": [{"id": 1001, "created": "2018-01-02T03:04:05", "seen": false, "read": false, "percent_complete": + null, "time_remaining": null, "rate": null, "duration": null, "action": "database_create", "username": + "test-user", "entity": {"label": "go-valkey-test-fixture", "id": 123, "type": "database", "url": "/v4/databases/valkey/instances/123"}, + "status": "notification", "secondary_entity": null, "message": "", "details": {}}], "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: + - "483" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 18:46:35 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - events: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 + X-Filter: + - '{"+order": "desc", "+order_by": "created", "action": "database_create", "created": {"+gte": "2026-09-17T18:45:30"}, + "entity.id": 123, "entity.type": "database", "id": {"+gte": 1001}}' + url: https://api.linode.com/v4beta/account/events?page=1 + method: GET + response: + body: '{"data": [{"id": 1001, "created": "2018-01-02T03:04:05", "seen": false, "read": false, "percent_complete": + null, "time_remaining": null, "rate": null, "duration": null, "action": "database_create", "username": + "test-user", "entity": {"label": "go-valkey-test-fixture", "id": 123, "type": "database", "url": "/v4/databases/valkey/instances/123"}, + "status": "notification", "secondary_entity": null, "message": "", "details": {}}], "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: + - "483" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 18:46:50 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - events: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 + X-Filter: + - '{"+order": "desc", "+order_by": "created", "action": "database_create", "created": {"+gte": "2026-09-17T18:45:30"}, + "entity.id": 123, "entity.type": "database", "id": {"+gte": 1001}}' + url: https://api.linode.com/v4beta/account/events?page=1 + method: GET + response: + body: '{"data": [{"id": 1001, "created": "2018-01-02T03:04:05", "seen": false, "read": false, "percent_complete": + null, "time_remaining": null, "rate": null, "duration": null, "action": "database_create", "username": + "test-user", "entity": {"label": "go-valkey-test-fixture", "id": 123, "type": "database", "url": "/v4/databases/valkey/instances/123"}, + "status": "notification", "secondary_entity": null, "message": "", "details": {}}], "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: + - "483" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 18:47:04 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - events: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 + X-Filter: + - '{"+order": "desc", "+order_by": "created", "action": "database_create", "created": {"+gte": "2026-09-17T18:45:30"}, + "entity.id": 123, "entity.type": "database", "id": {"+gte": 1001}}' + url: https://api.linode.com/v4beta/account/events?page=1 + method: GET + response: + body: '{"data": [{"id": 1001, "created": "2018-01-02T03:04:05", "seen": false, "read": false, "percent_complete": + null, "time_remaining": null, "rate": null, "duration": null, "action": "database_create", "username": + "test-user", "entity": {"label": "go-valkey-test-fixture", "id": 123, "type": "database", "url": "/v4/databases/valkey/instances/123"}, + "status": "notification", "secondary_entity": null, "message": "", "details": {}}], "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: + - "483" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 18:47:19 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - events: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 + X-Filter: + - '{"+order": "desc", "+order_by": "created", "action": "database_create", "created": {"+gte": "2026-09-17T18:45:30"}, + "entity.id": 123, "entity.type": "database", "id": {"+gte": 1001}}' + url: https://api.linode.com/v4beta/account/events?page=1 + method: GET + response: + body: '{"data": [{"id": 1001, "created": "2018-01-02T03:04:05", "seen": false, "read": false, "percent_complete": + null, "time_remaining": null, "rate": null, "duration": null, "action": "database_create", "username": + "test-user", "entity": {"label": "go-valkey-test-fixture", "id": 123, "type": "database", "url": "/v4/databases/valkey/instances/123"}, + "status": "notification", "secondary_entity": null, "message": "", "details": {}}], "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: + - "483" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 18:47:34 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - events: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 + X-Filter: + - '{"+order": "desc", "+order_by": "created", "action": "database_create", "created": {"+gte": "2026-09-17T18:45:30"}, + "entity.id": 123, "entity.type": "database", "id": {"+gte": 1001}}' + url: https://api.linode.com/v4beta/account/events?page=1 + method: GET + response: + body: '{"data": [{"id": 1001, "created": "2018-01-02T03:04:05", "seen": false, "read": false, "percent_complete": + null, "time_remaining": null, "rate": null, "duration": null, "action": "database_create", "username": + "test-user", "entity": {"label": "go-valkey-test-fixture", "id": 123, "type": "database", "url": "/v4/databases/valkey/instances/123"}, + "status": "notification", "secondary_entity": null, "message": "", "details": {}}], "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: + - "483" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 18:47:49 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - events: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 + X-Filter: + - '{"+order": "desc", "+order_by": "created", "action": "database_create", "created": {"+gte": "2026-09-17T18:45:30"}, + "entity.id": 123, "entity.type": "database", "id": {"+gte": 1001}}' + url: https://api.linode.com/v4beta/account/events?page=1 + method: GET + response: + body: '{"data": [{"id": 1001, "created": "2018-01-02T03:04:05", "seen": false, "read": false, "percent_complete": + null, "time_remaining": null, "rate": null, "duration": null, "action": "database_create", "username": + "test-user", "entity": {"label": "go-valkey-test-fixture", "id": 123, "type": "database", "url": "/v4/databases/valkey/instances/123"}, + "status": "notification", "secondary_entity": null, "message": "", "details": {}}], "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: + - "483" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 18:48:04 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - events: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 + X-Filter: + - '{"+order": "desc", "+order_by": "created", "action": "database_create", "created": {"+gte": "2026-09-17T18:45:30"}, + "entity.id": 123, "entity.type": "database", "id": {"+gte": 1001}}' + url: https://api.linode.com/v4beta/account/events?page=1 + method: GET + response: + body: '{"data": [{"id": 1001, "created": "2018-01-02T03:04:05", "seen": false, "read": false, "percent_complete": + null, "time_remaining": null, "rate": null, "duration": null, "action": "database_create", "username": + "test-user", "entity": {"label": "go-valkey-test-fixture", "id": 123, "type": "database", "url": "/v4/databases/valkey/instances/123"}, + "status": "notification", "secondary_entity": null, "message": "", "details": {}}], "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: + - "483" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 18:48:20 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - events: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 + X-Filter: + - '{"+order": "desc", "+order_by": "created", "action": "database_create", "created": {"+gte": "2026-09-17T18:45:30"}, + "entity.id": 123, "entity.type": "database", "id": {"+gte": 1001}}' + url: https://api.linode.com/v4beta/account/events?page=1 + method: GET + response: + body: '{"data": [{"id": 1001, "created": "2018-01-02T03:04:05", "seen": false, "read": false, "percent_complete": + null, "time_remaining": null, "rate": null, "duration": null, "action": "database_create", "username": + "test-user", "entity": {"label": "go-valkey-test-fixture", "id": 123, "type": "database", "url": "/v4/databases/valkey/instances/123"}, + "status": "notification", "secondary_entity": null, "message": "", "details": {}}], "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: + - "483" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 18:48:34 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - events: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 + X-Filter: + - '{"+order": "desc", "+order_by": "created", "action": "database_create", "created": {"+gte": "2026-09-17T18:45:30"}, + "entity.id": 123, "entity.type": "database", "id": {"+gte": 1001}}' + url: https://api.linode.com/v4beta/account/events?page=1 + method: GET + response: + body: '{"data": [{"id": 1001, "created": "2018-01-02T03:04:05", "seen": false, "read": false, "percent_complete": + null, "time_remaining": null, "rate": null, "duration": null, "action": "database_create", "username": + "test-user", "entity": {"label": "go-valkey-test-fixture", "id": 123, "type": "database", "url": "/v4/databases/valkey/instances/123"}, + "status": "notification", "secondary_entity": null, "message": "", "details": {}}], "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: + - "483" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 18:48:49 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - events: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 + X-Filter: + - '{"+order": "desc", "+order_by": "created", "action": "database_create", "created": {"+gte": "2026-09-17T18:45:30"}, + "entity.id": 123, "entity.type": "database", "id": {"+gte": 1001}}' + url: https://api.linode.com/v4beta/account/events?page=1 + method: GET + response: + body: '{"data": [{"id": 1001, "created": "2018-01-02T03:04:05", "seen": false, "read": false, "percent_complete": + null, "time_remaining": null, "rate": null, "duration": null, "action": "database_create", "username": + "test-user", "entity": {"label": "go-valkey-test-fixture", "id": 123, "type": "database", "url": "/v4/databases/valkey/instances/123"}, + "status": "notification", "secondary_entity": null, "message": "", "details": {}}], "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: + - "483" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 18:49:04 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - events: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 + X-Filter: + - '{"+order": "desc", "+order_by": "created", "action": "database_create", "created": {"+gte": "2026-09-17T18:45:30"}, + "entity.id": 123, "entity.type": "database", "id": {"+gte": 1001}}' + url: https://api.linode.com/v4beta/account/events?page=1 + method: GET + response: + body: '{"data": [{"id": 1001, "created": "2018-01-02T03:04:05", "seen": false, "read": false, "percent_complete": + null, "time_remaining": null, "rate": null, "duration": null, "action": "database_create", "username": + "test-user", "entity": {"label": "go-valkey-test-fixture", "id": 123, "type": "database", "url": "/v4/databases/valkey/instances/123"}, + "status": "notification", "secondary_entity": null, "message": "", "details": {}}], "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: + - "483" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 18:49:19 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - events: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 + X-Filter: + - '{"+order": "desc", "+order_by": "created", "action": "database_create", "created": {"+gte": "2026-09-17T18:45:30"}, + "entity.id": 123, "entity.type": "database", "id": {"+gte": 1001}}' + url: https://api.linode.com/v4beta/account/events?page=1 + method: GET + response: + body: '{"data": [{"id": 1001, "created": "2018-01-02T03:04:05", "seen": false, "read": false, "percent_complete": + null, "time_remaining": null, "rate": null, "duration": null, "action": "database_create", "username": + "test-user", "entity": {"label": "go-valkey-test-fixture", "id": 123, "type": "database", "url": "/v4/databases/valkey/instances/123"}, + "status": "notification", "secondary_entity": null, "message": "", "details": {}}], "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: + - "483" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 18:49:35 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - events: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 + X-Filter: + - '{"+order": "desc", "+order_by": "created", "action": "database_create", "created": {"+gte": "2026-09-17T18:45:30"}, + "entity.id": 123, "entity.type": "database", "id": {"+gte": 1001}}' + url: https://api.linode.com/v4beta/account/events?page=1 + method: GET + response: + body: '{"data": [{"id": 1001, "created": "2018-01-02T03:04:05", "seen": false, "read": false, "percent_complete": + null, "time_remaining": null, "rate": null, "duration": null, "action": "database_create", "username": + "test-user", "entity": {"label": "go-valkey-test-fixture", "id": 123, "type": "database", "url": "/v4/databases/valkey/instances/123"}, + "status": "notification", "secondary_entity": null, "message": "", "details": {}}], "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: + - "483" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 18:49:49 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - events: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 + X-Filter: + - '{"+order": "desc", "+order_by": "created", "action": "database_create", "created": {"+gte": "2026-09-17T18:45:30"}, + "entity.id": 123, "entity.type": "database", "id": {"+gte": 1001}}' + url: https://api.linode.com/v4beta/account/events?page=1 + method: GET + response: + body: '{"data": [{"id": 1001, "created": "2018-01-02T03:04:05", "seen": false, "read": false, "percent_complete": + null, "time_remaining": null, "rate": null, "duration": null, "action": "database_create", "username": + "test-user", "entity": {"label": "go-valkey-test-fixture", "id": 123, "type": "database", "url": "/v4/databases/valkey/instances/123"}, + "status": "notification", "secondary_entity": null, "message": "", "details": {}}], "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: + - "483" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 18:50:04 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - events: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 + X-Filter: + - '{"+order": "desc", "+order_by": "created", "action": "database_create", "created": {"+gte": "2026-09-17T18:45:30"}, + "entity.id": 123, "entity.type": "database", "id": {"+gte": 1001}}' + url: https://api.linode.com/v4beta/account/events?page=1 + method: GET + response: + body: '{"data": [{"id": 1001, "created": "2018-01-02T03:04:05", "seen": false, "read": false, "percent_complete": + null, "time_remaining": null, "rate": null, "duration": null, "action": "database_create", "username": + "test-user", "entity": {"label": "go-valkey-test-fixture", "id": 123, "type": "database", "url": "/v4/databases/valkey/instances/123"}, + "status": "notification", "secondary_entity": null, "message": "", "details": {}}], "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: + - "483" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 18:50:19 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - events: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 + X-Filter: + - '{"+order": "desc", "+order_by": "created", "action": "database_create", "created": {"+gte": "2026-09-17T18:45:30"}, + "entity.id": 123, "entity.type": "database", "id": {"+gte": 1001}}' + url: https://api.linode.com/v4beta/account/events?page=1 + method: GET + response: + body: '{"data": [{"id": 1001, "created": "2018-01-02T03:04:05", "seen": false, "read": false, "percent_complete": + null, "time_remaining": null, "rate": null, "duration": null, "action": "database_create", "username": + "test-user", "entity": {"label": "go-valkey-test-fixture", "id": 123, "type": "database", "url": "/v4/databases/valkey/instances/123"}, + "status": "notification", "secondary_entity": null, "message": "", "details": {}}], "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: + - "483" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 18:50:34 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - events: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 + X-Filter: + - '{"+order": "desc", "+order_by": "created", "action": "database_create", "created": {"+gte": "2026-09-17T18:45:30"}, + "entity.id": 123, "entity.type": "database", "id": {"+gte": 1001}}' + url: https://api.linode.com/v4beta/account/events?page=1 + method: GET + response: + body: '{"data": [{"id": 1001, "created": "2018-01-02T03:04:05", "seen": false, "read": false, "percent_complete": + null, "time_remaining": null, "rate": null, "duration": null, "action": "database_create", "username": + "test-user", "entity": {"label": "go-valkey-test-fixture", "id": 123, "type": "database", "url": "/v4/databases/valkey/instances/123"}, + "status": "notification", "secondary_entity": null, "message": "", "details": {}}], "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: + - "483" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 18:50:49 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - events: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 + X-Filter: + - '{"+order": "desc", "+order_by": "created", "action": "database_create", "created": {"+gte": "2026-09-17T18:45:30"}, + "entity.id": 123, "entity.type": "database", "id": {"+gte": 1001}}' + url: https://api.linode.com/v4beta/account/events?page=1 + method: GET + response: + body: '{"data": [{"id": 1001, "created": "2018-01-02T03:04:05", "seen": false, "read": false, "percent_complete": + null, "time_remaining": null, "rate": null, "duration": null, "action": "database_create", "username": + "test-user", "entity": {"label": "go-valkey-test-fixture", "id": 123, "type": "database", "url": "/v4/databases/valkey/instances/123"}, + "status": "notification", "secondary_entity": null, "message": "", "details": {}}], "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: + - "483" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 18:51:05 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - events: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 + X-Filter: + - '{"+order": "desc", "+order_by": "created", "action": "database_create", "created": {"+gte": "2026-09-17T18:45:30"}, + "entity.id": 123, "entity.type": "database", "id": {"+gte": 1001}}' + url: https://api.linode.com/v4beta/account/events?page=1 + method: GET + response: + body: '{"data": [{"id": 1001, "created": "2018-01-02T03:04:05", "seen": false, "read": false, "percent_complete": + null, "time_remaining": null, "rate": null, "duration": null, "action": "database_create", "username": + "test-user", "entity": {"label": "go-valkey-test-fixture", "id": 123, "type": "database", "url": "/v4/databases/valkey/instances/123"}, + "status": "notification", "secondary_entity": null, "message": "", "details": {}}], "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: + - "483" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 18:51:20 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - events: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 + X-Filter: + - '{"+order": "desc", "+order_by": "created", "action": "database_create", "created": {"+gte": "2026-09-17T18:45:30"}, + "entity.id": 123, "entity.type": "database", "id": {"+gte": 1001}}' + url: https://api.linode.com/v4beta/account/events?page=1 + method: GET + response: + body: '{"data": [{"id": 1001, "created": "2018-01-02T03:04:05", "seen": false, "read": false, "percent_complete": + null, "time_remaining": null, "rate": null, "duration": null, "action": "database_create", "username": + "test-user", "entity": {"label": "go-valkey-test-fixture", "id": 123, "type": "database", "url": "/v4/databases/valkey/instances/123"}, + "status": "notification", "secondary_entity": null, "message": "", "details": {}}], "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: + - "483" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 18:51:34 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - events: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 + X-Filter: + - '{"+order": "desc", "+order_by": "created", "action": "database_create", "created": {"+gte": "2026-09-17T18:45:30"}, + "entity.id": 123, "entity.type": "database", "id": {"+gte": 1001}}' + url: https://api.linode.com/v4beta/account/events?page=1 + method: GET + response: + body: '{"data": [{"id": 1001, "created": "2018-01-02T03:04:05", "seen": false, "read": false, "percent_complete": + null, "time_remaining": null, "rate": null, "duration": null, "action": "database_create", "username": + "test-user", "entity": {"label": "go-valkey-test-fixture", "id": 123, "type": "database", "url": "/v4/databases/valkey/instances/123"}, + "status": "notification", "secondary_entity": null, "message": "", "details": {}}], "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: + - "483" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 18:51:49 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - events: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 + X-Filter: + - '{"+order": "desc", "+order_by": "created", "action": "database_create", "created": {"+gte": "2026-09-17T18:45:30"}, + "entity.id": 123, "entity.type": "database", "id": {"+gte": 1001}}' + url: https://api.linode.com/v4beta/account/events?page=1 + method: GET + response: + body: '{"data": [{"id": 1001, "created": "2018-01-02T03:04:05", "seen": false, "read": false, "percent_complete": + null, "time_remaining": null, "rate": null, "duration": null, "action": "database_create", "username": + "test-user", "entity": {"label": "go-valkey-test-fixture", "id": 123, "type": "database", "url": "/v4/databases/valkey/instances/123"}, + "status": "notification", "secondary_entity": null, "message": "", "details": {}}], "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: + - "483" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 18:52:04 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - events: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 + X-Filter: + - '{"+order": "desc", "+order_by": "created", "action": "database_create", "created": {"+gte": "2026-09-17T18:45:30"}, + "entity.id": 123, "entity.type": "database", "id": {"+gte": 1001}}' + url: https://api.linode.com/v4beta/account/events?page=1 + method: GET + response: + body: '{"data": [{"id": 1001, "created": "2018-01-02T03:04:05", "seen": false, "read": false, "percent_complete": + null, "time_remaining": null, "rate": null, "duration": null, "action": "database_create", "username": + "test-user", "entity": {"label": "go-valkey-test-fixture", "id": 123, "type": "database", "url": "/v4/databases/valkey/instances/123"}, + "status": "notification", "secondary_entity": null, "message": "", "details": {}}], "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: + - "483" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 18:52:19 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - events: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 + X-Filter: + - '{"+order": "desc", "+order_by": "created", "action": "database_create", "created": {"+gte": "2026-09-17T18:45:30"}, + "entity.id": 123, "entity.type": "database", "id": {"+gte": 1001}}' + url: https://api.linode.com/v4beta/account/events?page=1 + method: GET + response: + body: '{"data": [{"id": 1001, "created": "2018-01-02T03:04:05", "seen": false, "read": false, "percent_complete": + null, "time_remaining": null, "rate": null, "duration": null, "action": "database_create", "username": + "test-user", "entity": {"label": "go-valkey-test-fixture", "id": 123, "type": "database", "url": "/v4/databases/valkey/instances/123"}, + "status": "notification", "secondary_entity": null, "message": "", "details": {}}], "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: + - "483" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 18:52:34 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - events: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 + X-Filter: + - '{"+order": "desc", "+order_by": "created", "action": "database_create", "created": {"+gte": "2026-09-17T18:45:30"}, + "entity.id": 123, "entity.type": "database", "id": {"+gte": 1001}}' + url: https://api.linode.com/v4beta/account/events?page=1 + method: GET + response: + body: '{"data": [{"id": 1001, "created": "2018-01-02T03:04:05", "seen": false, "read": false, "percent_complete": + null, "time_remaining": null, "rate": null, "duration": null, "action": "database_create", "username": + "test-user", "entity": {"label": "go-valkey-test-fixture", "id": 123, "type": "database", "url": "/v4/databases/valkey/instances/123"}, + "status": "notification", "secondary_entity": null, "message": "", "details": {}}], "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: + - "483" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 18:52:49 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - events: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 + X-Filter: + - '{"+order": "desc", "+order_by": "created", "action": "database_create", "created": {"+gte": "2026-09-17T18:45:30"}, + "entity.id": 123, "entity.type": "database", "id": {"+gte": 1001}}' + url: https://api.linode.com/v4beta/account/events?page=1 + method: GET + response: + body: '{"data": [{"id": 1001, "created": "2018-01-02T03:04:05", "seen": false, "read": false, "percent_complete": + null, "time_remaining": null, "rate": null, "duration": null, "action": "database_create", "username": + "test-user", "entity": {"label": "go-valkey-test-fixture", "id": 123, "type": "database", "url": "/v4/databases/valkey/instances/123"}, + "status": "notification", "secondary_entity": null, "message": "", "details": {}}], "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: + - "483" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 18:53:04 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - events: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 + X-Filter: + - '{"+order": "desc", "+order_by": "created", "action": "database_create", "created": {"+gte": "2026-09-17T18:45:30"}, + "entity.id": 123, "entity.type": "database", "id": {"+gte": 1001}}' + url: https://api.linode.com/v4beta/account/events?page=1 + method: GET + response: + body: '{"data": [{"id": 1001, "created": "2018-01-02T03:04:05", "seen": false, "read": false, "percent_complete": + null, "time_remaining": null, "rate": null, "duration": null, "action": "database_create", "username": + "test-user", "entity": {"label": "go-valkey-test-fixture", "id": 123, "type": "database", "url": "/v4/databases/valkey/instances/123"}, + "status": "notification", "secondary_entity": null, "message": "", "details": {}}], "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: + - "483" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 18:53:19 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - events: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 + X-Filter: + - '{"+order": "desc", "+order_by": "created", "action": "database_create", "created": {"+gte": "2026-09-17T18:45:30"}, + "entity.id": 123, "entity.type": "database", "id": {"+gte": 1001}}' + url: https://api.linode.com/v4beta/account/events?page=1 + method: GET + response: + body: '{"data": [{"id": 1001, "created": "2018-01-02T03:04:05", "seen": false, "read": false, "percent_complete": + null, "time_remaining": null, "rate": null, "duration": null, "action": "database_create", "username": + "test-user", "entity": {"label": "go-valkey-test-fixture", "id": 123, "type": "database", "url": "/v4/databases/valkey/instances/123"}, + "status": "notification", "secondary_entity": null, "message": "", "details": {}}], "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: + - "483" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 18:53:34 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - events: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 + X-Filter: + - '{"+order": "desc", "+order_by": "created", "action": "database_create", "created": {"+gte": "2026-09-17T18:45:30"}, + "entity.id": 123, "entity.type": "database", "id": {"+gte": 1001}}' + url: https://api.linode.com/v4beta/account/events?page=1 + method: GET + response: + body: '{"data": [{"id": 1001, "created": "2018-01-02T03:04:05", "seen": false, "read": false, "percent_complete": + null, "time_remaining": null, "rate": null, "duration": null, "action": "database_create", "username": + "test-user", "entity": {"label": "go-valkey-test-fixture", "id": 123, "type": "database", "url": "/v4/databases/valkey/instances/123"}, + "status": "notification", "secondary_entity": null, "message": "", "details": {}}], "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: + - "483" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 18:53:49 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - events: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 + X-Filter: + - '{"+order": "desc", "+order_by": "created", "action": "database_create", "created": {"+gte": "2026-09-17T18:45:30"}, + "entity.id": 123, "entity.type": "database", "id": {"+gte": 1001}}' + url: https://api.linode.com/v4beta/account/events?page=1 + method: GET + response: + body: '{"data": [{"id": 1001, "created": "2018-01-02T03:04:05", "seen": false, "read": false, "percent_complete": + null, "time_remaining": null, "rate": null, "duration": null, "action": "database_create", "username": + "test-user", "entity": {"label": "go-valkey-test-fixture", "id": 123, "type": "database", "url": "/v4/databases/valkey/instances/123"}, + "status": "notification", "secondary_entity": null, "message": "", "details": {}}], "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: + - "483" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 18:54:04 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - events: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 + X-Filter: + - '{"+order": "desc", "+order_by": "created", "action": "database_create", "created": {"+gte": "2026-09-17T18:45:30"}, + "entity.id": 123, "entity.type": "database", "id": {"+gte": 1001}}' + url: https://api.linode.com/v4beta/account/events?page=1 + method: GET + response: + body: '{"data": [{"id": 1001, "created": "2018-01-02T03:04:05", "seen": false, "read": false, "percent_complete": + null, "time_remaining": null, "rate": null, "duration": null, "action": "database_create", "username": + "test-user", "entity": {"label": "go-valkey-test-fixture", "id": 123, "type": "database", "url": "/v4/databases/valkey/instances/123"}, + "status": "notification", "secondary_entity": null, "message": "", "details": {}}], "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: + - "483" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 18:54:20 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - events: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 + X-Filter: + - '{"+order": "desc", "+order_by": "created", "action": "database_create", "created": {"+gte": "2026-09-17T18:45:30"}, + "entity.id": 123, "entity.type": "database", "id": {"+gte": 1001}}' + url: https://api.linode.com/v4beta/account/events?page=1 + method: GET + response: + body: '{"data": [{"id": 1001, "created": "2018-01-02T03:04:05", "seen": false, "read": false, "percent_complete": + null, "time_remaining": null, "rate": null, "duration": null, "action": "database_create", "username": + "test-user", "entity": {"label": "go-valkey-test-fixture", "id": 123, "type": "database", "url": "/v4/databases/valkey/instances/123"}, + "status": "notification", "secondary_entity": null, "message": "", "details": {}}], "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: + - "483" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 18:54:34 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - events: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 + X-Filter: + - '{"+order": "desc", "+order_by": "created", "action": "database_create", "created": {"+gte": "2026-09-17T18:45:30"}, + "entity.id": 123, "entity.type": "database", "id": {"+gte": 1001}}' + url: https://api.linode.com/v4beta/account/events?page=1 + method: GET + response: + body: '{"data": [{"id": 1001, "created": "2018-01-02T03:04:05", "seen": false, "read": false, "percent_complete": + null, "time_remaining": null, "rate": null, "duration": null, "action": "database_create", "username": + "test-user", "entity": {"label": "go-valkey-test-fixture", "id": 123, "type": "database", "url": "/v4/databases/valkey/instances/123"}, + "status": "notification", "secondary_entity": null, "message": "", "details": {}}], "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: + - "483" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 18:54:49 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - events: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 + X-Filter: + - '{"+order": "desc", "+order_by": "created", "action": "database_create", "created": {"+gte": "2026-09-17T18:45:30"}, + "entity.id": 123, "entity.type": "database", "id": {"+gte": 1001}}' + url: https://api.linode.com/v4beta/account/events?page=1 + method: GET + response: + body: '{"data": [{"id": 1001, "created": "2018-01-02T03:04:05", "seen": false, "read": false, "percent_complete": + null, "time_remaining": null, "rate": null, "duration": null, "action": "database_create", "username": + "test-user", "entity": {"label": "go-valkey-test-fixture", "id": 123, "type": "database", "url": "/v4/databases/valkey/instances/123"}, + "status": "notification", "secondary_entity": null, "message": "", "details": {}}], "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: + - "483" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 18:55:04 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - events: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 + X-Filter: + - '{"+order": "desc", "+order_by": "created", "action": "database_create", "created": {"+gte": "2026-09-17T18:45:30"}, + "entity.id": 123, "entity.type": "database", "id": {"+gte": 1001}}' + url: https://api.linode.com/v4beta/account/events?page=1 + method: GET + response: + body: '{"data": [{"id": 1001, "created": "2018-01-02T03:04:05", "seen": false, "read": false, "percent_complete": + null, "time_remaining": null, "rate": null, "duration": null, "action": "database_create", "username": + "test-user", "entity": {"label": "go-valkey-test-fixture", "id": 123, "type": "database", "url": "/v4/databases/valkey/instances/123"}, + "status": "notification", "secondary_entity": null, "message": "", "details": {}}], "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: + - "483" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 18:55:20 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - events: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 + X-Filter: + - '{"+order": "desc", "+order_by": "created", "action": "database_create", "created": {"+gte": "2026-09-17T18:45:30"}, + "entity.id": 123, "entity.type": "database", "id": {"+gte": 1001}}' + url: https://api.linode.com/v4beta/account/events?page=1 + method: GET + response: + body: '{"data": [{"id": 1001, "created": "2018-01-02T03:04:05", "seen": false, "read": false, "percent_complete": + null, "time_remaining": null, "rate": null, "duration": null, "action": "database_create", "username": + "test-user", "entity": {"label": "go-valkey-test-fixture", "id": 123, "type": "database", "url": "/v4/databases/valkey/instances/123"}, + "status": "notification", "secondary_entity": null, "message": "", "details": {}}], "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: + - "483" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 18:55:34 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - events: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 + X-Filter: + - '{"+order": "desc", "+order_by": "created", "action": "database_create", "created": {"+gte": "2026-09-17T18:45:30"}, + "entity.id": 123, "entity.type": "database", "id": {"+gte": 1001}}' + url: https://api.linode.com/v4beta/account/events?page=1 + method: GET + response: + body: '{"data": [{"id": 1001, "created": "2018-01-02T03:04:05", "seen": false, "read": false, "percent_complete": + null, "time_remaining": null, "rate": null, "duration": null, "action": "database_create", "username": + "test-user", "entity": {"label": "go-valkey-test-fixture", "id": 123, "type": "database", "url": "/v4/databases/valkey/instances/123"}, + "status": "notification", "secondary_entity": null, "message": "", "details": {}}], "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: + - "483" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 18:55:50 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - events: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 + X-Filter: + - '{"+order": "desc", "+order_by": "created", "action": "database_create", "created": {"+gte": "2026-09-17T18:45:30"}, + "entity.id": 123, "entity.type": "database", "id": {"+gte": 1001}}' + url: https://api.linode.com/v4beta/account/events?page=1 + method: GET + response: + body: '{"data": [{"id": 1001, "created": "2018-01-02T03:04:05", "seen": false, "read": false, "percent_complete": + null, "time_remaining": null, "rate": null, "duration": null, "action": "database_create", "username": + "test-user", "entity": {"label": "go-valkey-test-fixture", "id": 123, "type": "database", "url": "/v4/databases/valkey/instances/123"}, + "status": "notification", "secondary_entity": null, "message": "", "details": {}}], "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: + - "483" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 18:56:05 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - events: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 + X-Filter: + - '{"+order": "desc", "+order_by": "created", "action": "database_create", "created": {"+gte": "2026-09-17T18:45:30"}, + "entity.id": 123, "entity.type": "database", "id": {"+gte": 1001}}' + url: https://api.linode.com/v4beta/account/events?page=1 + method: GET + response: + body: '{"data": [{"id": 1001, "created": "2018-01-02T03:04:05", "seen": false, "read": false, "percent_complete": + null, "time_remaining": null, "rate": null, "duration": null, "action": "database_create", "username": + "test-user", "entity": {"label": "go-valkey-test-fixture", "id": 123, "type": "database", "url": "/v4/databases/valkey/instances/123"}, + "status": "notification", "secondary_entity": null, "message": "", "details": {}}], "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: + - "483" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 18:56:20 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - events: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 + X-Filter: + - '{"+order": "desc", "+order_by": "created", "action": "database_create", "created": {"+gte": "2026-09-17T18:45:30"}, + "entity.id": 123, "entity.type": "database", "id": {"+gte": 1001}}' + url: https://api.linode.com/v4beta/account/events?page=1 + method: GET + response: + body: '{"data": [{"id": 1001, "created": "2018-01-02T03:04:05", "seen": false, "read": false, "percent_complete": + null, "time_remaining": null, "rate": null, "duration": null, "action": "database_create", "username": + "test-user", "entity": {"label": "go-valkey-test-fixture", "id": 123, "type": "database", "url": "/v4/databases/valkey/instances/123"}, + "status": "notification", "secondary_entity": null, "message": "", "details": {}}], "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: + - "483" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 18:56:35 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - events: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 + X-Filter: + - '{"+order": "desc", "+order_by": "created", "action": "database_create", "created": {"+gte": "2026-09-17T18:45:30"}, + "entity.id": 123, "entity.type": "database", "id": {"+gte": 1001}}' + url: https://api.linode.com/v4beta/account/events?page=1 + method: GET + response: + body: '{"data": [{"id": 1001, "created": "2018-01-02T03:04:05", "seen": false, "read": false, "percent_complete": + null, "time_remaining": null, "rate": null, "duration": null, "action": "database_create", "username": + "test-user", "entity": {"label": "go-valkey-test-fixture", "id": 123, "type": "database", "url": "/v4/databases/valkey/instances/123"}, + "status": "notification", "secondary_entity": null, "message": "", "details": {}}], "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: + - "483" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 18:56:50 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - events: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 + X-Filter: + - '{"+order": "desc", "+order_by": "created", "action": "database_create", "created": {"+gte": "2026-09-17T18:45:30"}, + "entity.id": 123, "entity.type": "database", "id": {"+gte": 1001}}' + url: https://api.linode.com/v4beta/account/events?page=1 + method: GET + response: + body: '{"data": [{"id": 1001, "created": "2018-01-02T03:04:05", "seen": false, "read": false, "percent_complete": + null, "time_remaining": null, "rate": null, "duration": null, "action": "database_create", "username": + "test-user", "entity": {"label": "go-valkey-test-fixture", "id": 123, "type": "database", "url": "/v4/databases/valkey/instances/123"}, + "status": "notification", "secondary_entity": null, "message": "", "details": {}}], "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: + - "483" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 18:57:04 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - events: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 + X-Filter: + - '{"+order": "desc", "+order_by": "created", "action": "database_create", "created": {"+gte": "2026-09-17T18:45:30"}, + "entity.id": 123, "entity.type": "database", "id": {"+gte": 1001}}' + url: https://api.linode.com/v4beta/account/events?page=1 + method: GET + response: + body: '{"data": [{"id": 1001, "created": "2018-01-02T03:04:05", "seen": false, "read": false, "percent_complete": + null, "time_remaining": null, "rate": null, "duration": null, "action": "database_create", "username": + "test-user", "entity": {"label": "go-valkey-test-fixture", "id": 123, "type": "database", "url": "/v4/databases/valkey/instances/123"}, + "status": "notification", "secondary_entity": null, "message": "", "details": {}}], "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: + - "483" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 18:57:19 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - events: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 + X-Filter: + - '{"+order": "desc", "+order_by": "created", "action": "database_create", "created": {"+gte": "2026-09-17T18:45:30"}, + "entity.id": 123, "entity.type": "database", "id": {"+gte": 1001}}' + url: https://api.linode.com/v4beta/account/events?page=1 + method: GET + response: + body: '{"data": [{"id": 1001, "created": "2018-01-02T03:04:05", "seen": false, "read": false, "percent_complete": + null, "time_remaining": null, "rate": null, "duration": null, "action": "database_create", "username": + "test-user", "entity": {"label": "go-valkey-test-fixture", "id": 123, "type": "database", "url": "/v4/databases/valkey/instances/123"}, + "status": "notification", "secondary_entity": null, "message": "", "details": {}}], "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: + - "483" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 18:57:34 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - events: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 + X-Filter: + - '{"+order": "desc", "+order_by": "created", "action": "database_create", "created": {"+gte": "2026-09-17T18:45:30"}, + "entity.id": 123, "entity.type": "database", "id": {"+gte": 1001}}' + url: https://api.linode.com/v4beta/account/events?page=1 + method: GET + response: + body: '{"data": [{"id": 1001, "created": "2018-01-02T03:04:05", "seen": false, "read": false, "percent_complete": + null, "time_remaining": null, "rate": null, "duration": null, "action": "database_create", "username": + "test-user", "entity": {"label": "go-valkey-test-fixture", "id": 123, "type": "database", "url": "/v4/databases/valkey/instances/123"}, + "status": "notification", "secondary_entity": null, "message": "", "details": {}}], "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: + - "483" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 18:57:49 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - events: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 + X-Filter: + - '{"+order": "desc", "+order_by": "created", "action": "database_create", "created": {"+gte": "2026-09-17T18:45:30"}, + "entity.id": 123, "entity.type": "database", "id": {"+gte": 1001}}' + url: https://api.linode.com/v4beta/account/events?page=1 + method: GET + response: + body: '{"data": [{"id": 1001, "created": "2018-01-02T03:04:05", "seen": false, "read": false, "percent_complete": + null, "time_remaining": null, "rate": null, "duration": null, "action": "database_create", "username": + "test-user", "entity": {"label": "go-valkey-test-fixture", "id": 123, "type": "database", "url": "/v4/databases/valkey/instances/123"}, + "status": "notification", "secondary_entity": null, "message": "", "details": {}}], "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: + - "483" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 18:58:04 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - events: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 + X-Filter: + - '{"+order": "desc", "+order_by": "created", "action": "database_create", "created": {"+gte": "2026-09-17T18:45:30"}, + "entity.id": 123, "entity.type": "database", "id": {"+gte": 1001}}' + url: https://api.linode.com/v4beta/account/events?page=1 + method: GET + response: + body: '{"data": [{"id": 1001, "created": "2018-01-02T03:04:05", "seen": false, "read": false, "percent_complete": + null, "time_remaining": null, "rate": null, "duration": null, "action": "database_create", "username": + "test-user", "entity": {"label": "go-valkey-test-fixture", "id": 123, "type": "database", "url": "/v4/databases/valkey/instances/123"}, + "status": "notification", "secondary_entity": null, "message": "", "details": {}}], "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: + - "483" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 18:58:19 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - events: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 + X-Filter: + - '{"+order": "desc", "+order_by": "created", "action": "database_create", "created": {"+gte": "2026-09-17T18:45:30"}, + "entity.id": 123, "entity.type": "database", "id": {"+gte": 1001}}' + url: https://api.linode.com/v4beta/account/events?page=1 + method: GET + response: + body: '{"data": [{"id": 1001, "created": "2018-01-02T03:04:05", "seen": false, "read": false, "percent_complete": + null, "time_remaining": null, "rate": null, "duration": null, "action": "database_create", "username": + "test-user", "entity": {"label": "go-valkey-test-fixture", "id": 123, "type": "database", "url": "/v4/databases/valkey/instances/123"}, + "status": "notification", "secondary_entity": null, "message": "", "details": {}}], "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: + - "483" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 18:58:34 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - events: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 + X-Filter: + - '{"+order": "desc", "+order_by": "created", "action": "database_create", "created": {"+gte": "2026-09-17T18:45:30"}, + "entity.id": 123, "entity.type": "database", "id": {"+gte": 1001}}' + url: https://api.linode.com/v4beta/account/events?page=1 + method: GET + response: + body: '{"data": [{"id": 1001, "created": "2018-01-02T03:04:05", "seen": false, "read": false, "percent_complete": + null, "time_remaining": null, "rate": null, "duration": null, "action": "database_create", "username": + "test-user", "entity": {"label": "go-valkey-test-fixture", "id": 123, "type": "database", "url": "/v4/databases/valkey/instances/123"}, + "status": "notification", "secondary_entity": null, "message": "", "details": {}}], "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: + - "483" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 18:58:49 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - events: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 + X-Filter: + - '{"+order": "desc", "+order_by": "created", "action": "database_create", "created": {"+gte": "2026-09-17T18:45:30"}, + "entity.id": 123, "entity.type": "database", "id": {"+gte": 1001}}' + url: https://api.linode.com/v4beta/account/events?page=1 + method: GET + response: + body: '{"data": [{"id": 1001, "created": "2018-01-02T03:04:05", "seen": false, "read": false, "percent_complete": + null, "time_remaining": null, "rate": null, "duration": null, "action": "database_create", "username": + "test-user", "entity": {"label": "go-valkey-test-fixture", "id": 123, "type": "database", "url": "/v4/databases/valkey/instances/123"}, + "status": "notification", "secondary_entity": null, "message": "", "details": {}}], "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: + - "483" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 18:59:04 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - events: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 + X-Filter: + - '{"+order": "desc", "+order_by": "created", "action": "database_create", "created": {"+gte": "2026-09-17T18:45:30"}, + "entity.id": 123, "entity.type": "database", "id": {"+gte": 1001}}' + url: https://api.linode.com/v4beta/account/events?page=1 + method: GET + response: + body: '{"data": [{"id": 1001, "created": "2018-01-02T03:04:05", "seen": false, "read": false, "percent_complete": + null, "time_remaining": null, "rate": null, "duration": null, "action": "database_create", "username": + "test-user", "entity": {"label": "go-valkey-test-fixture", "id": 123, "type": "database", "url": "/v4/databases/valkey/instances/123"}, + "status": "notification", "secondary_entity": null, "message": "", "details": {}}], "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: + - "483" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 18:59:20 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - events: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 + X-Filter: + - '{"+order": "desc", "+order_by": "created", "action": "database_create", "created": {"+gte": "2026-09-17T18:45:30"}, + "entity.id": 123, "entity.type": "database", "id": {"+gte": 1001}}' + url: https://api.linode.com/v4beta/account/events?page=1 + method: GET + response: + body: '{"data": [{"id": 1001, "created": "2018-01-02T03:04:05", "seen": false, "read": false, "percent_complete": + null, "time_remaining": null, "rate": null, "duration": null, "action": "database_create", "username": + "test-user", "entity": {"label": "go-valkey-test-fixture", "id": 123, "type": "database", "url": "/v4/databases/valkey/instances/123"}, + "status": "notification", "secondary_entity": null, "message": "", "details": {}}], "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: + - "483" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 18:59:34 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - events: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 + X-Filter: + - '{"+order": "desc", "+order_by": "created", "action": "database_create", "created": {"+gte": "2026-09-17T18:45:30"}, + "entity.id": 123, "entity.type": "database", "id": {"+gte": 1001}}' + url: https://api.linode.com/v4beta/account/events?page=1 + method: GET + response: + body: '{"data": [{"id": 1001, "created": "2018-01-02T03:04:05", "seen": false, "read": false, "percent_complete": + null, "time_remaining": null, "rate": null, "duration": null, "action": "database_create", "username": + "test-user", "entity": {"label": "go-valkey-test-fixture", "id": 123, "type": "database", "url": "/v4/databases/valkey/instances/123"}, + "status": "notification", "secondary_entity": null, "message": "", "details": {}}], "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: + - "483" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 18:59:49 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - events: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 + X-Filter: + - '{"+order": "desc", "+order_by": "created", "action": "database_create", "created": {"+gte": "2026-09-17T18:45:30"}, + "entity.id": 123, "entity.type": "database", "id": {"+gte": 1001}}' + url: https://api.linode.com/v4beta/account/events?page=1 + method: GET + response: + body: '{"data": [{"id": 1001, "created": "2018-01-02T03:04:05", "seen": false, "read": false, "percent_complete": + null, "time_remaining": null, "rate": null, "duration": null, "action": "database_create", "username": + "test-user", "entity": {"label": "go-valkey-test-fixture", "id": 123, "type": "database", "url": "/v4/databases/valkey/instances/123"}, + "status": "notification", "secondary_entity": null, "message": "", "details": {}}], "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: + - "483" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 19:00:04 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - events: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 + X-Filter: + - '{"+order": "desc", "+order_by": "created", "action": "database_create", "created": {"+gte": "2026-09-17T18:45:30"}, + "entity.id": 123, "entity.type": "database", "id": {"+gte": 1001}}' + url: https://api.linode.com/v4beta/account/events?page=1 + method: GET + response: + body: '{"data": [{"id": 1001, "created": "2018-01-02T03:04:05", "seen": false, "read": false, "percent_complete": + null, "time_remaining": null, "rate": null, "duration": null, "action": "database_create", "username": + "test-user", "entity": {"label": "go-valkey-test-fixture", "id": 123, "type": "database", "url": "/v4/databases/valkey/instances/123"}, + "status": "notification", "secondary_entity": null, "message": "", "details": {}}], "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: + - "483" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 19:00:19 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - events: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 + X-Filter: + - '{"+order": "desc", "+order_by": "created", "action": "database_create", "created": {"+gte": "2026-09-17T18:45:30"}, + "entity.id": 123, "entity.type": "database", "id": {"+gte": 1001}}' + url: https://api.linode.com/v4beta/account/events?page=1 + method: GET + response: + body: '{"data": [{"id": 1001, "created": "2018-01-02T03:04:05", "seen": false, "read": false, "percent_complete": + null, "time_remaining": null, "rate": null, "duration": null, "action": "database_create", "username": + "test-user", "entity": {"label": "go-valkey-test-fixture", "id": 123, "type": "database", "url": "/v4/databases/valkey/instances/123"}, + "status": "notification", "secondary_entity": null, "message": "", "details": {}}], "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: + - "483" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 19:00:34 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - events: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 + X-Filter: + - '{"+order": "desc", "+order_by": "created", "action": "database_create", "created": {"+gte": "2026-09-17T18:45:30"}, + "entity.id": 123, "entity.type": "database", "id": {"+gte": 1001}}' + url: https://api.linode.com/v4beta/account/events?page=1 + method: GET + response: + body: '{"data": [{"id": 1001, "created": "2018-01-02T03:04:05", "seen": false, "read": false, "percent_complete": + null, "time_remaining": null, "rate": null, "duration": null, "action": "database_create", "username": + "test-user", "entity": {"label": "go-valkey-test-fixture", "id": 123, "type": "database", "url": "/v4/databases/valkey/instances/123"}, + "status": "notification", "secondary_entity": null, "message": "", "details": {}}], "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: + - "483" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 19:00:50 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - events: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 + X-Filter: + - '{"+order": "desc", "+order_by": "created", "action": "database_create", "created": {"+gte": "2026-09-17T18:45:30"}, + "entity.id": 123, "entity.type": "database", "id": {"+gte": 1001}}' + url: https://api.linode.com/v4beta/account/events?page=1 + method: GET + response: + body: '{"data": [{"id": 1001, "created": "2018-01-02T03:04:05", "seen": false, "read": false, "percent_complete": + null, "time_remaining": null, "rate": null, "duration": null, "action": "database_create", "username": + "test-user", "entity": {"label": "go-valkey-test-fixture", "id": 123, "type": "database", "url": "/v4/databases/valkey/instances/123"}, + "status": "notification", "secondary_entity": null, "message": "", "details": {}}], "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: + - "483" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 19:01:05 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - events: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 + X-Filter: + - '{"+order": "desc", "+order_by": "created", "action": "database_create", "created": {"+gte": "2026-09-17T18:45:30"}, + "entity.id": 123, "entity.type": "database", "id": {"+gte": 1001}}' + url: https://api.linode.com/v4beta/account/events?page=1 + method: GET + response: + body: '{"data": [{"id": 1001, "created": "2018-01-02T03:04:05", "seen": false, "read": false, "percent_complete": + 100, "time_remaining": null, "rate": null, "duration": 351, "action": "database_create", "username": + "test-user", "entity": {"label": "go-valkey-test-fixture", "id": 123, "type": "database", "url": "/v4/databases/valkey/instances/123"}, + "status": "finished", "secondary_entity": null, "message": "", "details": {}}], "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: + - "477" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 19:01:20 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - events: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/databases/valkey/instances/123' + method: GET + response: + body: '{"allow_list": ["203.0.113.1/32"], "available_restore_times": ["2018-01-02T03:04:05"], "cluster_size": + 1, "created": "2018-01-02T03:04:05", "encrypted": true, "engine": "valkey", "engine_config": {"frequent_snapshots": + true, "valkey_active_expire_effort": 1, "valkey_activedefrag": false, "valkey_lfu_decay_time": 1, "valkey_lfu_log_factor": + 10, "valkey_maxmemory_policy": "noeviction", "valkey_timeout": 300}, "hosts": {"endpoints": [{"address": + "valkey.example.com", "port": 27283, "public_access": true, "role": "primary"}], "primary": "valkey.example.com"}, + "id": 123, "label": "go-valkey-test-fixture", "members": {"203.0.113.2": "primary"}, "port": 27283, + "private_network": null, "region": "au-mel", "ssl_connection": true, "status": "active", "total_disk_size_gb": + 0, "type": "g7-dedicated-4-2", "updated": "2018-01-02T03:04:05", "updates": {"day_of_week": 2, "duration": + 4, "frequency": "weekly", "hour_of_day": 8, "pending": []}, "used_disk_size_gb": 0, "version": "8.1.10", + "platform": "rdbms-default"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 19:01:36 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - databases: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/databases/valkey/instances?page=1 + method: GET + response: + body: '{"data": [{"allow_list": ["203.0.113.1/32"], "available_restore_times": ["2018-01-02T03:04:05"], "cluster_size": + 1, "created": "2018-01-02T03:04:05", "encrypted": true, "engine": "valkey", "engine_config": {"frequent_snapshots": + true, "valkey_active_expire_effort": 1, "valkey_activedefrag": false, "valkey_lfu_decay_time": 1, "valkey_lfu_log_factor": + 10, "valkey_maxmemory_policy": "noeviction", "valkey_timeout": 300}, "hosts": {"endpoints": [{"address": + "valkey.example.com", "port": 27283, "public_access": true, "role": "primary"}], "primary": "valkey.example.com"}, + "id": 123, "label": "go-valkey-test-fixture", "members": {"203.0.113.2": "primary"}, "port": 27283, + "private_network": null, "region": "au-mel", "ssl_connection": true, "status": "active", "total_disk_size_gb": + 0, "type": "g7-dedicated-4-2", "updated": "2018-01-02T03:04:05", "updates": {"day_of_week": 2, "duration": + 4, "frequency": "weekly", "hour_of_day": 8, "pending": []}, "used_disk_size_gb": 0, "version": "8.1.10", + "platform": "rdbms-default"}], "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-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 19:01:39 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - databases: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/databases/valkey/instances/123' + method: GET + response: + body: '{"allow_list": ["203.0.113.1/32"], "available_restore_times": ["2018-01-02T03:04:05"], "cluster_size": + 1, "created": "2018-01-02T03:04:05", "encrypted": true, "engine": "valkey", "engine_config": {"frequent_snapshots": + true, "valkey_active_expire_effort": 1, "valkey_activedefrag": false, "valkey_lfu_decay_time": 1, "valkey_lfu_log_factor": + 10, "valkey_maxmemory_policy": "noeviction", "valkey_timeout": 300}, "hosts": {"endpoints": [{"address": + "valkey.example.com", "port": 27283, "public_access": true, "role": "primary"}], "primary": "valkey.example.com"}, + "id": 123, "label": "go-valkey-test-fixture", "members": {"203.0.113.2": "primary"}, "port": 27283, + "private_network": null, "region": "au-mel", "ssl_connection": true, "status": "active", "total_disk_size_gb": + 0, "type": "g7-dedicated-4-2", "updated": "2018-01-02T03:04:05", "updates": {"day_of_week": 2, "duration": + 4, "frequency": "weekly", "hour_of_day": 8, "pending": []}, "used_disk_size_gb": 0, "version": "8.1.10", + "platform": "rdbms-default"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 19:01:41 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - databases: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-valkey-test-fixture-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/databases/valkey/instances/123' + method: PUT + response: + body: '{"allow_list": ["203.0.113.1/32"], "available_restore_times": ["2018-01-02T03:04:05"], "cluster_size": + 1, "created": "2018-01-02T03:04:05", "encrypted": true, "engine": "valkey", "engine_config": {"frequent_snapshots": + true, "valkey_active_expire_effort": 1, "valkey_activedefrag": false, "valkey_lfu_decay_time": 1, "valkey_lfu_log_factor": + 10, "valkey_maxmemory_policy": "noeviction", "valkey_timeout": 300}, "hosts": {"endpoints": [{"address": + "valkey.example.com", "port": 27283, "public_access": true, "role": "primary"}], "primary": "valkey.example.com"}, + "id": 123, "label": "go-valkey-test-fixture-updated", "members": {"203.0.113.2": "primary"}, "port": + 27283, "private_network": null, "region": "au-mel", "ssl_connection": true, "status": "active", "total_disk_size_gb": + 0, "type": "g7-dedicated-4-2", "updated": "2018-01-02T03:04:05", "updates": {"day_of_week": 2, "duration": + 4, "frequency": "weekly", "hour_of_day": 8, "pending": []}, "used_disk_size_gb": 0, "version": "8.1.10", + "platform": "rdbms-default"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 19:01:45 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - databases: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 + X-Filter: + - '{"+order": "desc", "+order_by": "created", "action": "database_update", "created": {"+gte": "2018-01-02T03:04:05"}, + "entity.id": 123, "entity.type": "database"}' + url: https://api.linode.com/v4beta/account/events?page=1 + method: GET + response: + body: '{"data": [{"id": 1002, "created": "2018-01-02T03:04:05", "seen": false, "read": false, "percent_complete": + 100, "time_remaining": null, "rate": null, "duration": 0, "action": "database_update", "username": "test-user", + "entity": {"label": "go-valkey-test-fixture-updated", "id": 123, "type": "database", "url": "/v4/databases/valkey/instances/123"}, + "status": "finished", "secondary_entity": null, "message": "", "details": {}}], "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: + - "483" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 19:02:00 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - events: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/databases/valkey/instances/123' + method: GET + response: + body: '{"allow_list": ["203.0.113.1/32"], "available_restore_times": ["2018-01-02T03:04:05"], "cluster_size": + 1, "created": "2018-01-02T03:04:05", "encrypted": true, "engine": "valkey", "engine_config": {"frequent_snapshots": + true, "valkey_active_expire_effort": 1, "valkey_activedefrag": false, "valkey_lfu_decay_time": 1, "valkey_lfu_log_factor": + 10, "valkey_maxmemory_policy": "noeviction", "valkey_timeout": 300}, "hosts": {"endpoints": [{"address": + "valkey.example.com", "port": 27283, "public_access": true, "role": "primary"}], "primary": "valkey.example.com"}, + "id": 123, "label": "go-valkey-test-fixture-updated", "members": {"203.0.113.2": "primary"}, "port": + 27283, "private_network": null, "region": "au-mel", "ssl_connection": true, "status": "active", "total_disk_size_gb": + 0, "type": "g7-dedicated-4-2", "updated": "2018-01-02T03:04:05", "updates": {"day_of_week": 2, "duration": + 4, "frequency": "weekly", "hour_of_day": 8, "pending": []}, "used_disk_size_gb": 0, "version": "8.1.10", + "platform": "rdbms-default"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 19:02:21 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - databases: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/databases/valkey/instances/123/ssl' + method: GET + response: + body: '{"ca_certificate": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURHVENDQWdHZ0F3SUJBZ0lVRHN3NU1PZ3R3SXhTa3VPVFQ1QzNHUHVSYVVVd0RRWUpLb1pJaHZjTkFRRUwKQlFBd0hERWFNQmdHQTFVRUF3d1JWbUZzYTJWNUlFWnBlSFIxY21VZ1EwRXdIaGNOTWpZeE1ERTBNVFUxTnpVdwpXaGNOTXpZeE1ERXhNVFUxTnpVd1dqQWNNUm93R0FZRFZRUUREQkZXWVd4clpYa2dSbWw0ZEhWeVpTQkRRVENDCkFTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBSXZ0aHJrKzNKVFJKa1pHM2FJZHVFQVUKbXBGS3lFeVZqTHhVbHFBYk5LenJUSWFIeGIwTVU0TitwMkZRNWxpbTJxdnpEKzlVQnpXQkd6L0dPYVl6OTFWUwpOc1J2NldSZytXMjQvUmVEaVdIejVuQ1dMYnQrc0FtM2N3eVhjMlNYakdGempFYVdtbVV5YmNHcGR6M1RRTkc5CmhNY0ZET2xVS3VxVEQ3VmoyNnFNdFJpZnJWZzBBeDNXeE1sMEdLQXAwejkrb1Y0RVdjdCtrMmVielUvRi9FMHYKYWVUTlVWYlR1R0lLcTcyOXkrY2ZLZ0VMWndtd1EwQW5qT0J6cXZvNkVmKzVtd2pQZ1VwUDdxT2ZPdFFtd3VkZQpGZzJhdzdSaGZyY1JlUU9jZ3J4RG9udTZKcm5YYUxrL0Qwc01lQXVtcDFnUW9WVmV6dksxMkZ0T2JiWWp1MDhDCkF3RUFBYU5UTUZFd0hRWURWUjBPQkJZRUZLZXZybXVYMkVnUHZPMm5QVjF4b2VSaDIwM0lNQjhHQTFVZEl3UVkKTUJhQUZLZXZybXVYMkVnUHZPMm5QVjF4b2VSaDIwM0lNQThHQTFVZEV3RUIvd1FGTUFNQkFmOHdEUVlKS29aSQpodmNOQVFFTEJRQURnZ0VCQUZmUUs1K25TNFBHRmJHbXNRams1d2YvMU5PdTRGQUlnZ2N1NEFJNUVIRlZnZVhYCnlaVWs0UlZJSW9sTlpGTzJoZE5NYm9RYTliYzF0bHd5OUNZSzN5dVZ1dDF5UXZFWmdaSlZ1M1dQNXFmUTJGU2IKVTZUb3RIYnZTS2tmL3RPOUtxc0hiWi83bjZtR0w2OEp5MmtPV29tbGRzTzViL1ZtMWF0WVh5bGM0R2kvZ1lTWQp3Z2xFRmFCZEdraWxGejFHSERqbTBwUzFIVVk2K3pTWThKbThDZVRPUUhLYnNweW83RXlCcE5PYmFzekpFdzJWCkVvbXRPcEErcWxCUkNXeGJoUmdmYWY4SGN5ZFlVMGVxNENQbXpyVTRoYTdLUVFPUGdUZmUyVjBRY2FLSWpZeXkKTCtOOEpZYmt5OWIrVnlocUlvQXFGNEtydis4UFZTK0hpcUhPckNvPQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg=="}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 19:02:22 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - databases: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/databases/valkey/instances/123/credentials' + method: GET + response: + body: '{"password": "fixture-password-1", "username": "test-user"}' + 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: + - "64" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 19:02:23 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - databases: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/databases/valkey/instances/123/credentials/reset' + 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: + - Thu, 17 Sep 2026 19:07:25 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - databases: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/databases/valkey/instances/123/credentials' + method: GET + response: + body: '{"password": "fixture-password-2", "username": "test-user"}' + 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: + - "64" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 19:07:41 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - databases: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/databases/valkey/instances/123/patch' + 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: + - Thu, 17 Sep 2026 19:07:44 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - databases: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/databases/valkey/instances/123' + method: GET + response: + body: '{"allow_list": ["203.0.113.1/32"], "available_restore_times": ["2018-01-02T03:04:05"], "cluster_size": + 1, "created": "2018-01-02T03:04:05", "encrypted": true, "engine": "valkey", "engine_config": {"frequent_snapshots": + true, "valkey_active_expire_effort": 1, "valkey_activedefrag": false, "valkey_lfu_decay_time": 1, "valkey_lfu_log_factor": + 10, "valkey_maxmemory_policy": "noeviction", "valkey_timeout": 300}, "hosts": {"endpoints": [{"address": + "valkey.example.com", "port": 27283, "public_access": true, "role": "primary"}], "primary": "valkey.example.com"}, + "id": 123, "label": "go-valkey-test-fixture-updated", "members": {"203.0.113.2": "primary"}, "port": + 27283, "private_network": null, "region": "au-mel", "ssl_connection": true, "status": "updating", "total_disk_size_gb": + 0, "type": "g7-dedicated-4-2", "updated": "2018-01-02T03:04:05", "updates": {"day_of_week": 2, "duration": + 4, "frequency": "weekly", "hour_of_day": 8, "pending": []}, "used_disk_size_gb": 0, "version": "8.1.10", + "platform": "rdbms-default"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 19:08:02 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - databases: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/databases/valkey/instances/123' + method: GET + response: + body: '{"allow_list": ["203.0.113.1/32"], "available_restore_times": ["2018-01-02T03:04:05"], "cluster_size": + 1, "created": "2018-01-02T03:04:05", "encrypted": true, "engine": "valkey", "engine_config": {"frequent_snapshots": + true, "valkey_active_expire_effort": 1, "valkey_activedefrag": false, "valkey_lfu_decay_time": 1, "valkey_lfu_log_factor": + 10, "valkey_maxmemory_policy": "noeviction", "valkey_timeout": 300}, "hosts": {"endpoints": [{"address": + "valkey.example.com", "port": 27283, "public_access": true, "role": "primary"}], "primary": "valkey.example.com"}, + "id": 123, "label": "go-valkey-test-fixture-updated", "members": {"203.0.113.2": "primary"}, "port": + 27283, "private_network": null, "region": "au-mel", "ssl_connection": true, "status": "updating", "total_disk_size_gb": + 0, "type": "g7-dedicated-4-2", "updated": "2018-01-02T03:04:05", "updates": {"day_of_week": 2, "duration": + 4, "frequency": "weekly", "hour_of_day": 8, "pending": []}, "used_disk_size_gb": 0, "version": "8.1.10", + "platform": "rdbms-default"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 19:08:18 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - databases: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/databases/valkey/instances/123' + method: GET + response: + body: '{"allow_list": ["203.0.113.1/32"], "available_restore_times": ["2018-01-02T03:04:05"], "cluster_size": + 1, "created": "2018-01-02T03:04:05", "encrypted": true, "engine": "valkey", "engine_config": {"frequent_snapshots": + true, "valkey_active_expire_effort": 1, "valkey_activedefrag": false, "valkey_lfu_decay_time": 1, "valkey_lfu_log_factor": + 10, "valkey_maxmemory_policy": "noeviction", "valkey_timeout": 300}, "hosts": {"endpoints": [{"address": + "valkey.example.com", "port": 27283, "public_access": true, "role": "primary"}], "primary": "valkey.example.com"}, + "id": 123, "label": "go-valkey-test-fixture-updated", "members": {"203.0.113.2": "primary"}, "port": + 27283, "private_network": null, "region": "au-mel", "ssl_connection": true, "status": "updating", "total_disk_size_gb": + 0, "type": "g7-dedicated-4-2", "updated": "2018-01-02T03:04:05", "updates": {"day_of_week": 2, "duration": + 4, "frequency": "weekly", "hour_of_day": 8, "pending": []}, "used_disk_size_gb": 0, "version": "8.1.10", + "platform": "rdbms-default"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 19:08:36 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - databases: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/databases/valkey/instances/123' + method: GET + response: + body: '{"allow_list": ["203.0.113.1/32"], "available_restore_times": ["2018-01-02T03:04:05"], "cluster_size": + 1, "created": "2018-01-02T03:04:05", "encrypted": true, "engine": "valkey", "engine_config": {"frequent_snapshots": + true, "valkey_active_expire_effort": 1, "valkey_activedefrag": false, "valkey_lfu_decay_time": 1, "valkey_lfu_log_factor": + 10, "valkey_maxmemory_policy": "noeviction", "valkey_timeout": 300}, "hosts": {"endpoints": [{"address": + "valkey.example.com", "port": 27283, "public_access": true, "role": "primary"}], "primary": "valkey.example.com"}, + "id": 123, "label": "go-valkey-test-fixture-updated", "members": {"203.0.113.2": "primary"}, "port": + 27283, "private_network": null, "region": "au-mel", "ssl_connection": true, "status": "updating", "total_disk_size_gb": + 0, "type": "g7-dedicated-4-2", "updated": "2018-01-02T03:04:05", "updates": {"day_of_week": 2, "duration": + 4, "frequency": "weekly", "hour_of_day": 8, "pending": []}, "used_disk_size_gb": 0, "version": "8.1.10", + "platform": "rdbms-default"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 19:08:49 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - databases: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/databases/valkey/instances/123' + method: GET + response: + body: '{"allow_list": ["203.0.113.1/32"], "available_restore_times": ["2018-01-02T03:04:05"], "cluster_size": + 1, "created": "2018-01-02T03:04:05", "encrypted": true, "engine": "valkey", "engine_config": {"frequent_snapshots": + true, "valkey_active_expire_effort": 1, "valkey_activedefrag": false, "valkey_lfu_decay_time": 1, "valkey_lfu_log_factor": + 10, "valkey_maxmemory_policy": "noeviction", "valkey_timeout": 300}, "hosts": {"endpoints": [{"address": + "valkey.example.com", "port": 27283, "public_access": true, "role": "primary"}], "primary": "valkey.example.com"}, + "id": 123, "label": "go-valkey-test-fixture-updated", "members": {"203.0.113.2": "primary"}, "port": + 27283, "private_network": null, "region": "au-mel", "ssl_connection": true, "status": "active", "total_disk_size_gb": + 0, "type": "g7-dedicated-4-2", "updated": "2018-01-02T03:04:05", "updates": {"day_of_week": 2, "duration": + 4, "frequency": "weekly", "hour_of_day": 8, "pending": []}, "used_disk_size_gb": 0, "version": "8.1.10", + "platform": "rdbms-default"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 19:09:09 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - databases: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/databases/valkey/instances/123/suspend' + 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: + - Thu, 17 Sep 2026 19:09:12 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - databases: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/databases/valkey/instances/123' + method: GET + response: + body: '{"allow_list": ["203.0.113.1/32"], "available_restore_times": ["2018-01-02T03:04:05"], "cluster_size": + 1, "created": "2018-01-02T03:04:05", "encrypted": true, "engine": "valkey", "engine_config": {"frequent_snapshots": + true, "valkey_active_expire_effort": 1, "valkey_activedefrag": false, "valkey_lfu_decay_time": 1, "valkey_lfu_log_factor": + 10, "valkey_maxmemory_policy": "noeviction", "valkey_timeout": 300}, "hosts": {"endpoints": [{"address": + "valkey.example.com", "port": 27283, "public_access": true, "role": "primary"}], "primary": "valkey.example.com"}, + "id": 123, "label": "go-valkey-test-fixture-updated", "members": {"203.0.113.2": "primary"}, "port": + 27283, "private_network": null, "region": "au-mel", "ssl_connection": true, "status": "suspended", "total_disk_size_gb": + 0, "type": "g7-dedicated-4-2", "updated": "2018-01-02T03:04:05", "updates": {"day_of_week": 2, "duration": + 4, "frequency": "weekly", "hour_of_day": 8, "pending": []}, "used_disk_size_gb": 0, "version": "8.1.10", + "platform": "rdbms-default"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 19:09:29 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - databases: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/databases/valkey/instances/123/resume' + 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: + - Thu, 17 Sep 2026 19:09:32 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - databases: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/databases/valkey/instances/123' + method: GET + response: + body: '{"allow_list": ["203.0.113.1/32"], "available_restore_times": ["2018-01-02T03:04:05"], "cluster_size": + 1, "created": "2018-01-02T03:04:05", "encrypted": true, "engine": "valkey", "engine_config": {"frequent_snapshots": + true, "valkey_active_expire_effort": 1, "valkey_activedefrag": false, "valkey_lfu_decay_time": 1, "valkey_lfu_log_factor": + 10, "valkey_maxmemory_policy": "noeviction", "valkey_timeout": 300}, "hosts": {"endpoints": [{"address": + "valkey.example.com", "port": 27283, "public_access": true, "role": "primary"}], "primary": "valkey.example.com"}, + "id": 123, "label": "go-valkey-test-fixture-updated", "members": {"203.0.113.2": "primary"}, "port": + 27283, "private_network": null, "region": "au-mel", "ssl_connection": true, "status": "suspended", "total_disk_size_gb": + 0, "type": "g7-dedicated-4-2", "updated": "2018-01-02T03:04:05", "updates": {"day_of_week": 2, "duration": + 4, "frequency": "weekly", "hour_of_day": 8, "pending": []}, "used_disk_size_gb": 0, "version": "8.1.10", + "platform": "rdbms-default"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 19:09:49 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - databases: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/databases/valkey/instances/123' + method: GET + response: + body: '{"allow_list": ["203.0.113.1/32"], "available_restore_times": ["2018-01-02T03:04:05"], "cluster_size": + 1, "created": "2018-01-02T03:04:05", "encrypted": true, "engine": "valkey", "engine_config": {"frequent_snapshots": + true, "valkey_active_expire_effort": 1, "valkey_activedefrag": false, "valkey_lfu_decay_time": 1, "valkey_lfu_log_factor": + 10, "valkey_maxmemory_policy": "noeviction", "valkey_timeout": 300}, "hosts": {"endpoints": [{"address": + "valkey.example.com", "port": 27283, "public_access": true, "role": "primary"}], "primary": "valkey.example.com"}, + "id": 123, "label": "go-valkey-test-fixture-updated", "members": {"203.0.113.2": "primary"}, "port": + 27283, "private_network": null, "region": "au-mel", "ssl_connection": true, "status": "suspended", "total_disk_size_gb": + 0, "type": "g7-dedicated-4-2", "updated": "2018-01-02T03:04:05", "updates": {"day_of_week": 2, "duration": + 4, "frequency": "weekly", "hour_of_day": 8, "pending": []}, "used_disk_size_gb": 0, "version": "8.1.10", + "platform": "rdbms-default"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 19:10:05 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - databases: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/databases/valkey/instances/123' + method: GET + response: + body: '{"allow_list": ["203.0.113.1/32"], "available_restore_times": ["2018-01-02T03:04:05"], "cluster_size": + 1, "created": "2018-01-02T03:04:05", "encrypted": true, "engine": "valkey", "engine_config": {"frequent_snapshots": + true, "valkey_active_expire_effort": 1, "valkey_activedefrag": false, "valkey_lfu_decay_time": 1, "valkey_lfu_log_factor": + 10, "valkey_maxmemory_policy": "noeviction", "valkey_timeout": 300}, "hosts": {"endpoints": [{"address": + "valkey.example.com", "port": 27283, "public_access": true, "role": "primary"}], "primary": "valkey.example.com"}, + "id": 123, "label": "go-valkey-test-fixture-updated", "members": {"203.0.113.2": "primary"}, "port": + 27283, "private_network": null, "region": "au-mel", "ssl_connection": true, "status": "suspended", "total_disk_size_gb": + 0, "type": "g7-dedicated-4-2", "updated": "2018-01-02T03:04:05", "updates": {"day_of_week": 2, "duration": + 4, "frequency": "weekly", "hour_of_day": 8, "pending": []}, "used_disk_size_gb": 0, "version": "8.1.10", + "platform": "rdbms-default"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 19:10:19 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - databases: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/databases/valkey/instances/123' + method: GET + response: + body: '{"allow_list": ["203.0.113.1/32"], "available_restore_times": ["2018-01-02T03:04:05"], "cluster_size": + 1, "created": "2018-01-02T03:04:05", "encrypted": true, "engine": "valkey", "engine_config": {"frequent_snapshots": + true, "valkey_active_expire_effort": 1, "valkey_activedefrag": false, "valkey_lfu_decay_time": 1, "valkey_lfu_log_factor": + 10, "valkey_maxmemory_policy": "noeviction", "valkey_timeout": 300}, "hosts": {"endpoints": [{"address": + "valkey.example.com", "port": 27283, "public_access": true, "role": "primary"}], "primary": "valkey.example.com"}, + "id": 123, "label": "go-valkey-test-fixture-updated", "members": {}, "port": 27283, "private_network": + null, "region": "au-mel", "ssl_connection": true, "status": "suspended", "total_disk_size_gb": 0, "type": + "g7-dedicated-4-2", "updated": "2018-01-02T03:04:05", "updates": {"day_of_week": 2, "duration": 4, "frequency": + "weekly", "hour_of_day": 8, "pending": []}, "used_disk_size_gb": 0, "version": "8.1.10", "platform": + "rdbms-default"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 19:10:36 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - databases: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/databases/valkey/instances/123' + method: GET + response: + body: '{"allow_list": ["203.0.113.1/32"], "available_restore_times": ["2018-01-02T03:04:05"], "cluster_size": + 1, "created": "2018-01-02T03:04:05", "encrypted": true, "engine": "valkey", "engine_config": {"frequent_snapshots": + true, "valkey_active_expire_effort": 1, "valkey_activedefrag": false, "valkey_lfu_decay_time": 1, "valkey_lfu_log_factor": + 10, "valkey_maxmemory_policy": "noeviction", "valkey_timeout": 300}, "hosts": {"endpoints": [{"address": + "valkey.example.com", "port": 27283, "public_access": true, "role": "primary"}], "primary": "valkey.example.com"}, + "id": 123, "label": "go-valkey-test-fixture-updated", "members": {"203.0.113.2": "primary"}, "port": + 27283, "private_network": null, "region": "au-mel", "ssl_connection": true, "status": "resuming", "total_disk_size_gb": + 0, "type": "g7-dedicated-4-2", "updated": "2018-01-02T03:04:05", "updates": {"day_of_week": 2, "duration": + 4, "frequency": "weekly", "hour_of_day": 8, "pending": []}, "used_disk_size_gb": 0, "version": "8.1.10", + "platform": "rdbms-default"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 19:10:53 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - databases: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/databases/valkey/instances/123' + method: GET + response: + body: '{"allow_list": ["203.0.113.1/32"], "available_restore_times": ["2018-01-02T03:04:05"], "cluster_size": + 1, "created": "2018-01-02T03:04:05", "encrypted": true, "engine": "valkey", "engine_config": {"frequent_snapshots": + true, "valkey_active_expire_effort": 1, "valkey_activedefrag": false, "valkey_lfu_decay_time": 1, "valkey_lfu_log_factor": + 10, "valkey_maxmemory_policy": "noeviction", "valkey_timeout": 300}, "hosts": {"endpoints": [{"address": + "valkey.example.com", "port": 27283, "public_access": true, "role": "primary"}], "primary": "valkey.example.com"}, + "id": 123, "label": "go-valkey-test-fixture-updated", "members": {}, "port": 27283, "private_network": + null, "region": "au-mel", "ssl_connection": true, "status": "resuming", "total_disk_size_gb": 0, "type": + "g7-dedicated-4-2", "updated": "2018-01-02T03:04:05", "updates": {"day_of_week": 2, "duration": 4, "frequency": + "weekly", "hour_of_day": 8, "pending": []}, "used_disk_size_gb": 0, "version": "8.1.10", "platform": + "rdbms-default"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 19:11:05 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - databases: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/databases/valkey/instances/123' + method: GET + response: + body: '{"allow_list": ["203.0.113.1/32"], "available_restore_times": ["2018-01-02T03:04:05"], "cluster_size": + 1, "created": "2018-01-02T03:04:05", "encrypted": true, "engine": "valkey", "engine_config": {"frequent_snapshots": + true, "valkey_active_expire_effort": 1, "valkey_activedefrag": false, "valkey_lfu_decay_time": 1, "valkey_lfu_log_factor": + 10, "valkey_maxmemory_policy": "noeviction", "valkey_timeout": 300}, "hosts": {"endpoints": [{"address": + "valkey.example.com", "port": 27283, "public_access": true, "role": "primary"}], "primary": "valkey.example.com"}, + "id": 123, "label": "go-valkey-test-fixture-updated", "members": {}, "port": 27283, "private_network": + null, "region": "au-mel", "ssl_connection": true, "status": "resuming", "total_disk_size_gb": 0, "type": + "g7-dedicated-4-2", "updated": "2018-01-02T03:04:05", "updates": {"day_of_week": 2, "duration": 4, "frequency": + "weekly", "hour_of_day": 8, "pending": []}, "used_disk_size_gb": 0, "version": "8.1.10", "platform": + "rdbms-default"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 19:11:19 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - databases: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/databases/valkey/instances/123' + method: GET + response: + body: '{"allow_list": ["203.0.113.1/32"], "available_restore_times": ["2018-01-02T03:04:05"], "cluster_size": + 1, "created": "2018-01-02T03:04:05", "encrypted": true, "engine": "valkey", "engine_config": {"frequent_snapshots": + true, "valkey_active_expire_effort": 1, "valkey_activedefrag": false, "valkey_lfu_decay_time": 1, "valkey_lfu_log_factor": + 10, "valkey_maxmemory_policy": "noeviction", "valkey_timeout": 300}, "hosts": {"endpoints": [{"address": + "valkey.example.com", "port": 27283, "public_access": true, "role": "primary"}], "primary": "valkey.example.com"}, + "id": 123, "label": "go-valkey-test-fixture-updated", "members": {"203.0.113.2": "primary"}, "port": + 27283, "private_network": null, "region": "au-mel", "ssl_connection": true, "status": "resuming", "total_disk_size_gb": + 0, "type": "g7-dedicated-4-2", "updated": "2018-01-02T03:04:05", "updates": {"day_of_week": 2, "duration": + 4, "frequency": "weekly", "hour_of_day": 8, "pending": []}, "used_disk_size_gb": 0, "version": "8.1.10", + "platform": "rdbms-default"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 19:11:37 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - databases: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/databases/valkey/instances/123' + method: GET + response: + body: '{"allow_list": ["203.0.113.1/32"], "available_restore_times": ["2018-01-02T03:04:05"], "cluster_size": + 1, "created": "2018-01-02T03:04:05", "encrypted": true, "engine": "valkey", "engine_config": {"frequent_snapshots": + true, "valkey_active_expire_effort": 1, "valkey_activedefrag": false, "valkey_lfu_decay_time": 1, "valkey_lfu_log_factor": + 10, "valkey_maxmemory_policy": "noeviction", "valkey_timeout": 300}, "hosts": {"endpoints": [{"address": + "valkey.example.com", "port": 27283, "public_access": true, "role": "primary"}], "primary": "valkey.example.com"}, + "id": 123, "label": "go-valkey-test-fixture-updated", "members": {}, "port": 27283, "private_network": + null, "region": "au-mel", "ssl_connection": true, "status": "resuming", "total_disk_size_gb": 0, "type": + "g7-dedicated-4-2", "updated": "2018-01-02T03:04:05", "updates": {"day_of_week": 2, "duration": 4, "frequency": + "weekly", "hour_of_day": 8, "pending": []}, "used_disk_size_gb": 0, "version": "8.1.10", "platform": + "rdbms-default"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 19:11:51 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - databases: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/databases/valkey/instances/123' + method: GET + response: + body: '{"allow_list": ["203.0.113.1/32"], "available_restore_times": ["2018-01-02T03:04:05"], "cluster_size": + 1, "created": "2018-01-02T03:04:05", "encrypted": true, "engine": "valkey", "engine_config": {"frequent_snapshots": + true, "valkey_active_expire_effort": 1, "valkey_activedefrag": false, "valkey_lfu_decay_time": 1, "valkey_lfu_log_factor": + 10, "valkey_maxmemory_policy": "noeviction", "valkey_timeout": 300}, "hosts": {"endpoints": [{"address": + "valkey.example.com", "port": 27283, "public_access": true, "role": "primary"}], "primary": "valkey.example.com"}, + "id": 123, "label": "go-valkey-test-fixture-updated", "members": {}, "port": 27283, "private_network": + null, "region": "au-mel", "ssl_connection": true, "status": "resuming", "total_disk_size_gb": 0, "type": + "g7-dedicated-4-2", "updated": "2018-01-02T03:04:05", "updates": {"day_of_week": 2, "duration": 4, "frequency": + "weekly", "hour_of_day": 8, "pending": []}, "used_disk_size_gb": 0, "version": "8.1.10", "platform": + "rdbms-default"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 19:12:06 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - databases: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/databases/valkey/instances/123' + method: GET + response: + body: '{"allow_list": ["203.0.113.1/32"], "available_restore_times": ["2018-01-02T03:04:05"], "cluster_size": + 1, "created": "2018-01-02T03:04:05", "encrypted": true, "engine": "valkey", "engine_config": {"frequent_snapshots": + true, "valkey_active_expire_effort": 1, "valkey_activedefrag": false, "valkey_lfu_decay_time": 1, "valkey_lfu_log_factor": + 10, "valkey_maxmemory_policy": "noeviction", "valkey_timeout": 300}, "hosts": {"endpoints": [{"address": + "valkey.example.com", "port": 27283, "public_access": true, "role": "primary"}], "primary": "valkey.example.com"}, + "id": 123, "label": "go-valkey-test-fixture-updated", "members": {}, "port": 27283, "private_network": + null, "region": "au-mel", "ssl_connection": true, "status": "resuming", "total_disk_size_gb": 0, "type": + "g7-dedicated-4-2", "updated": "2018-01-02T03:04:05", "updates": {"day_of_week": 2, "duration": 4, "frequency": + "weekly", "hour_of_day": 8, "pending": []}, "used_disk_size_gb": 0, "version": "8.1.10", "platform": + "rdbms-default"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 19:12:20 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - databases: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/databases/valkey/instances/123' + method: GET + response: + body: '{"allow_list": ["203.0.113.1/32"], "available_restore_times": ["2018-01-02T03:04:05"], "cluster_size": + 1, "created": "2018-01-02T03:04:05", "encrypted": true, "engine": "valkey", "engine_config": {"frequent_snapshots": + true, "valkey_active_expire_effort": 1, "valkey_activedefrag": false, "valkey_lfu_decay_time": 1, "valkey_lfu_log_factor": + 10, "valkey_maxmemory_policy": "noeviction", "valkey_timeout": 300}, "hosts": {"endpoints": [{"address": + "valkey.example.com", "port": 27283, "public_access": true, "role": "primary"}], "primary": "valkey.example.com"}, + "id": 123, "label": "go-valkey-test-fixture-updated", "members": {}, "port": 27283, "private_network": + null, "region": "au-mel", "ssl_connection": true, "status": "resuming", "total_disk_size_gb": 0, "type": + "g7-dedicated-4-2", "updated": "2018-01-02T03:04:05", "updates": {"day_of_week": 2, "duration": 4, "frequency": + "weekly", "hour_of_day": 8, "pending": []}, "used_disk_size_gb": 0, "version": "8.1.10", "platform": + "rdbms-default"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 19:12:35 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - databases: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/databases/valkey/instances/123' + method: GET + response: + body: '{"allow_list": ["203.0.113.1/32"], "available_restore_times": ["2018-01-02T03:04:05"], "cluster_size": + 1, "created": "2018-01-02T03:04:05", "encrypted": true, "engine": "valkey", "engine_config": {"frequent_snapshots": + true, "valkey_active_expire_effort": 1, "valkey_activedefrag": false, "valkey_lfu_decay_time": 1, "valkey_lfu_log_factor": + 10, "valkey_maxmemory_policy": "noeviction", "valkey_timeout": 300}, "hosts": {"endpoints": [{"address": + "valkey.example.com", "port": 27283, "public_access": true, "role": "primary"}], "primary": "valkey.example.com"}, + "id": 123, "label": "go-valkey-test-fixture-updated", "members": {}, "port": 27283, "private_network": + null, "region": "au-mel", "ssl_connection": true, "status": "resuming", "total_disk_size_gb": 0, "type": + "g7-dedicated-4-2", "updated": "2018-01-02T03:04:05", "updates": {"day_of_week": 2, "duration": 4, "frequency": + "weekly", "hour_of_day": 8, "pending": []}, "used_disk_size_gb": 0, "version": "8.1.10", "platform": + "rdbms-default"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 19:12:49 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - databases: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/databases/valkey/instances/123' + method: GET + response: + body: '{"allow_list": ["203.0.113.1/32"], "available_restore_times": ["2018-01-02T03:04:05"], "cluster_size": + 1, "created": "2018-01-02T03:04:05", "encrypted": true, "engine": "valkey", "engine_config": {"frequent_snapshots": + true, "valkey_active_expire_effort": 1, "valkey_activedefrag": false, "valkey_lfu_decay_time": 1, "valkey_lfu_log_factor": + 10, "valkey_maxmemory_policy": "noeviction", "valkey_timeout": 300}, "hosts": {"endpoints": [{"address": + "valkey.example.com", "port": 27283, "public_access": true, "role": "primary"}], "primary": "valkey.example.com"}, + "id": 123, "label": "go-valkey-test-fixture-updated", "members": {}, "port": 27283, "private_network": + null, "region": "au-mel", "ssl_connection": true, "status": "resuming", "total_disk_size_gb": 0, "type": + "g7-dedicated-4-2", "updated": "2018-01-02T03:04:05", "updates": {"day_of_week": 2, "duration": 4, "frequency": + "weekly", "hour_of_day": 8, "pending": []}, "used_disk_size_gb": 0, "version": "8.1.10", "platform": + "rdbms-default"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 19:13:05 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - databases: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/databases/valkey/instances/123' + method: GET + response: + body: '{"allow_list": ["203.0.113.1/32"], "available_restore_times": ["2018-01-02T03:04:05"], "cluster_size": + 1, "created": "2018-01-02T03:04:05", "encrypted": true, "engine": "valkey", "engine_config": {"frequent_snapshots": + true, "valkey_active_expire_effort": 1, "valkey_activedefrag": false, "valkey_lfu_decay_time": 1, "valkey_lfu_log_factor": + 10, "valkey_maxmemory_policy": "noeviction", "valkey_timeout": 300}, "hosts": {"endpoints": [{"address": + "valkey.example.com", "port": 27283, "public_access": true, "role": "primary"}], "primary": "valkey.example.com"}, + "id": 123, "label": "go-valkey-test-fixture-updated", "members": {}, "port": 27283, "private_network": + null, "region": "au-mel", "ssl_connection": true, "status": "resuming", "total_disk_size_gb": 0, "type": + "g7-dedicated-4-2", "updated": "2018-01-02T03:04:05", "updates": {"day_of_week": 2, "duration": 4, "frequency": + "weekly", "hour_of_day": 8, "pending": []}, "used_disk_size_gb": 0, "version": "8.1.10", "platform": + "rdbms-default"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 19:13:20 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - databases: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/databases/valkey/instances/123' + method: GET + response: + body: '{"allow_list": ["203.0.113.1/32"], "available_restore_times": ["2018-01-02T03:04:05"], "cluster_size": + 1, "created": "2018-01-02T03:04:05", "encrypted": true, "engine": "valkey", "engine_config": {"frequent_snapshots": + true, "valkey_active_expire_effort": 1, "valkey_activedefrag": false, "valkey_lfu_decay_time": 1, "valkey_lfu_log_factor": + 10, "valkey_maxmemory_policy": "noeviction", "valkey_timeout": 300}, "hosts": {"endpoints": [{"address": + "valkey.example.com", "port": 27283, "public_access": true, "role": "primary"}], "primary": "valkey.example.com"}, + "id": 123, "label": "go-valkey-test-fixture-updated", "members": {}, "port": 27283, "private_network": + null, "region": "au-mel", "ssl_connection": true, "status": "resuming", "total_disk_size_gb": 0, "type": + "g7-dedicated-4-2", "updated": "2018-01-02T03:04:05", "updates": {"day_of_week": 2, "duration": 4, "frequency": + "weekly", "hour_of_day": 8, "pending": []}, "used_disk_size_gb": 0, "version": "8.1.10", "platform": + "rdbms-default"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 19:13:34 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - databases: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/databases/valkey/instances/123' + method: GET + response: + body: '{"allow_list": ["203.0.113.1/32"], "available_restore_times": ["2018-01-02T03:04:05"], "cluster_size": + 1, "created": "2018-01-02T03:04:05", "encrypted": true, "engine": "valkey", "engine_config": {"frequent_snapshots": + true, "valkey_active_expire_effort": 1, "valkey_activedefrag": false, "valkey_lfu_decay_time": 1, "valkey_lfu_log_factor": + 10, "valkey_maxmemory_policy": "noeviction", "valkey_timeout": 300}, "hosts": {"endpoints": [{"address": + "valkey.example.com", "port": 27283, "public_access": true, "role": "primary"}], "primary": "valkey.example.com"}, + "id": 123, "label": "go-valkey-test-fixture-updated", "members": {}, "port": 27283, "private_network": + null, "region": "au-mel", "ssl_connection": true, "status": "resuming", "total_disk_size_gb": 0, "type": + "g7-dedicated-4-2", "updated": "2018-01-02T03:04:05", "updates": {"day_of_week": 2, "duration": 4, "frequency": + "weekly", "hour_of_day": 8, "pending": []}, "used_disk_size_gb": 0, "version": "8.1.10", "platform": + "rdbms-default"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 19:13:49 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - databases: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/databases/valkey/instances/123' + method: GET + response: + body: '{"allow_list": ["203.0.113.1/32"], "available_restore_times": ["2018-01-02T03:04:05"], "cluster_size": + 1, "created": "2018-01-02T03:04:05", "encrypted": true, "engine": "valkey", "engine_config": {"frequent_snapshots": + true, "valkey_active_expire_effort": 1, "valkey_activedefrag": false, "valkey_lfu_decay_time": 1, "valkey_lfu_log_factor": + 10, "valkey_maxmemory_policy": "noeviction", "valkey_timeout": 300}, "hosts": {"endpoints": [{"address": + "valkey.example.com", "port": 27283, "public_access": true, "role": "primary"}], "primary": "valkey.example.com"}, + "id": 123, "label": "go-valkey-test-fixture-updated", "members": {}, "port": 27283, "private_network": + null, "region": "au-mel", "ssl_connection": true, "status": "resuming", "total_disk_size_gb": 0, "type": + "g7-dedicated-4-2", "updated": "2018-01-02T03:04:05", "updates": {"day_of_week": 2, "duration": 4, "frequency": + "weekly", "hour_of_day": 8, "pending": []}, "used_disk_size_gb": 0, "version": "8.1.10", "platform": + "rdbms-default"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 19:14:05 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - databases: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/databases/valkey/instances/123' + method: GET + response: + body: '{"allow_list": ["203.0.113.1/32"], "available_restore_times": ["2018-01-02T03:04:05"], "cluster_size": + 1, "created": "2018-01-02T03:04:05", "encrypted": true, "engine": "valkey", "engine_config": {"frequent_snapshots": + true, "valkey_active_expire_effort": 1, "valkey_activedefrag": false, "valkey_lfu_decay_time": 1, "valkey_lfu_log_factor": + 10, "valkey_maxmemory_policy": "noeviction", "valkey_timeout": 300}, "hosts": {"endpoints": [{"address": + "valkey.example.com", "port": 27283, "public_access": true, "role": "primary"}], "primary": "valkey.example.com"}, + "id": 123, "label": "go-valkey-test-fixture-updated", "members": {}, "port": 27283, "private_network": + null, "region": "au-mel", "ssl_connection": true, "status": "resuming", "total_disk_size_gb": 0, "type": + "g7-dedicated-4-2", "updated": "2018-01-02T03:04:05", "updates": {"day_of_week": 2, "duration": 4, "frequency": + "weekly", "hour_of_day": 8, "pending": []}, "used_disk_size_gb": 0, "version": "8.1.10", "platform": + "rdbms-default"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 19:14:19 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - databases: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/databases/valkey/instances/123' + method: GET + response: + body: '{"allow_list": ["203.0.113.1/32"], "available_restore_times": ["2018-01-02T03:04:05"], "cluster_size": + 1, "created": "2018-01-02T03:04:05", "encrypted": true, "engine": "valkey", "engine_config": {"frequent_snapshots": + true, "valkey_active_expire_effort": 1, "valkey_activedefrag": false, "valkey_lfu_decay_time": 1, "valkey_lfu_log_factor": + 10, "valkey_maxmemory_policy": "noeviction", "valkey_timeout": 300}, "hosts": {"endpoints": [{"address": + "valkey.example.com", "port": 27283, "public_access": true, "role": "primary"}], "primary": "valkey.example.com"}, + "id": 123, "label": "go-valkey-test-fixture-updated", "members": {}, "port": 27283, "private_network": + null, "region": "au-mel", "ssl_connection": true, "status": "resuming", "total_disk_size_gb": 0, "type": + "g7-dedicated-4-2", "updated": "2018-01-02T03:04:05", "updates": {"day_of_week": 2, "duration": 4, "frequency": + "weekly", "hour_of_day": 8, "pending": []}, "used_disk_size_gb": 0, "version": "8.1.10", "platform": + "rdbms-default"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 19:14:34 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - databases: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/databases/valkey/instances/123' + method: GET + response: + body: '{"allow_list": ["203.0.113.1/32"], "available_restore_times": ["2018-01-02T03:04:05"], "cluster_size": + 1, "created": "2018-01-02T03:04:05", "encrypted": true, "engine": "valkey", "engine_config": {"frequent_snapshots": + true, "valkey_active_expire_effort": 1, "valkey_activedefrag": false, "valkey_lfu_decay_time": 1, "valkey_lfu_log_factor": + 10, "valkey_maxmemory_policy": "noeviction", "valkey_timeout": 300}, "hosts": {"endpoints": [{"address": + "valkey.example.com", "port": 27283, "public_access": true, "role": "primary"}], "primary": "valkey.example.com"}, + "id": 123, "label": "go-valkey-test-fixture-updated", "members": {}, "port": 27283, "private_network": + null, "region": "au-mel", "ssl_connection": true, "status": "resuming", "total_disk_size_gb": 0, "type": + "g7-dedicated-4-2", "updated": "2018-01-02T03:04:05", "updates": {"day_of_week": 2, "duration": 4, "frequency": + "weekly", "hour_of_day": 8, "pending": []}, "used_disk_size_gb": 0, "version": "8.1.10", "platform": + "rdbms-default"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 19:14:49 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - databases: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/databases/valkey/instances/123' + method: GET + response: + body: '{"allow_list": ["203.0.113.1/32"], "available_restore_times": ["2018-01-02T03:04:05"], "cluster_size": + 1, "created": "2018-01-02T03:04:05", "encrypted": true, "engine": "valkey", "engine_config": {"frequent_snapshots": + true, "valkey_active_expire_effort": 1, "valkey_activedefrag": false, "valkey_lfu_decay_time": 1, "valkey_lfu_log_factor": + 10, "valkey_maxmemory_policy": "noeviction", "valkey_timeout": 300}, "hosts": {"endpoints": [{"address": + "valkey.example.com", "port": 27283, "public_access": true, "role": "primary"}], "primary": "valkey.example.com"}, + "id": 123, "label": "go-valkey-test-fixture-updated", "members": {}, "port": 27283, "private_network": + null, "region": "au-mel", "ssl_connection": true, "status": "resuming", "total_disk_size_gb": 0, "type": + "g7-dedicated-4-2", "updated": "2018-01-02T03:04:05", "updates": {"day_of_week": 2, "duration": 4, "frequency": + "weekly", "hour_of_day": 8, "pending": []}, "used_disk_size_gb": 0, "version": "8.1.10", "platform": + "rdbms-default"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 19:15:06 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - databases: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/databases/valkey/instances/123' + method: GET + response: + body: '{"allow_list": ["203.0.113.1/32"], "available_restore_times": ["2018-01-02T03:04:05"], "cluster_size": + 1, "created": "2018-01-02T03:04:05", "encrypted": true, "engine": "valkey", "engine_config": {"frequent_snapshots": + true, "valkey_active_expire_effort": 1, "valkey_activedefrag": false, "valkey_lfu_decay_time": 1, "valkey_lfu_log_factor": + 10, "valkey_maxmemory_policy": "noeviction", "valkey_timeout": 300}, "hosts": {"endpoints": [{"address": + "valkey.example.com", "port": 27283, "public_access": true, "role": "primary"}], "primary": "valkey.example.com"}, + "id": 123, "label": "go-valkey-test-fixture-updated", "members": {}, "port": 27283, "private_network": + null, "region": "au-mel", "ssl_connection": true, "status": "resuming", "total_disk_size_gb": 0, "type": + "g7-dedicated-4-2", "updated": "2018-01-02T03:04:05", "updates": {"day_of_week": 2, "duration": 4, "frequency": + "weekly", "hour_of_day": 8, "pending": []}, "used_disk_size_gb": 0, "version": "8.1.10", "platform": + "rdbms-default"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 19:15:20 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - databases: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/databases/valkey/instances/123' + method: GET + response: + body: '{"allow_list": ["203.0.113.1/32"], "available_restore_times": ["2018-01-02T03:04:05"], "cluster_size": + 1, "created": "2018-01-02T03:04:05", "encrypted": true, "engine": "valkey", "engine_config": {"frequent_snapshots": + true, "valkey_active_expire_effort": 1, "valkey_activedefrag": false, "valkey_lfu_decay_time": 1, "valkey_lfu_log_factor": + 10, "valkey_maxmemory_policy": "noeviction", "valkey_timeout": 300}, "hosts": {"endpoints": [{"address": + "valkey.example.com", "port": 27283, "public_access": true, "role": "primary"}], "primary": "valkey.example.com"}, + "id": 123, "label": "go-valkey-test-fixture-updated", "members": {}, "port": 27283, "private_network": + null, "region": "au-mel", "ssl_connection": true, "status": "resuming", "total_disk_size_gb": 0, "type": + "g7-dedicated-4-2", "updated": "2018-01-02T03:04:05", "updates": {"day_of_week": 2, "duration": 4, "frequency": + "weekly", "hour_of_day": 8, "pending": []}, "used_disk_size_gb": 0, "version": "8.1.10", "platform": + "rdbms-default"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 19:15:34 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - databases: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/databases/valkey/instances/123' + method: GET + response: + body: '{"allow_list": ["203.0.113.1/32"], "available_restore_times": ["2018-01-02T03:04:05"], "cluster_size": + 1, "created": "2018-01-02T03:04:05", "encrypted": true, "engine": "valkey", "engine_config": {"frequent_snapshots": + true, "valkey_active_expire_effort": 1, "valkey_activedefrag": false, "valkey_lfu_decay_time": 1, "valkey_lfu_log_factor": + 10, "valkey_maxmemory_policy": "noeviction", "valkey_timeout": 300}, "hosts": {"endpoints": [{"address": + "valkey.example.com", "port": 27283, "public_access": true, "role": "primary"}], "primary": "valkey.example.com"}, + "id": 123, "label": "go-valkey-test-fixture-updated", "members": {}, "port": 27283, "private_network": + null, "region": "au-mel", "ssl_connection": true, "status": "resuming", "total_disk_size_gb": 0, "type": + "g7-dedicated-4-2", "updated": "2018-01-02T03:04:05", "updates": {"day_of_week": 2, "duration": 4, "frequency": + "weekly", "hour_of_day": 8, "pending": []}, "used_disk_size_gb": 0, "version": "8.1.10", "platform": + "rdbms-default"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 19:15:50 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - databases: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/databases/valkey/instances/123' + method: GET + response: + body: '{"allow_list": ["203.0.113.1/32"], "available_restore_times": ["2018-01-02T03:04:05"], "cluster_size": + 1, "created": "2018-01-02T03:04:05", "encrypted": true, "engine": "valkey", "engine_config": {"frequent_snapshots": + true, "valkey_active_expire_effort": 1, "valkey_activedefrag": false, "valkey_lfu_decay_time": 1, "valkey_lfu_log_factor": + 10, "valkey_maxmemory_policy": "noeviction", "valkey_timeout": 300}, "hosts": {"endpoints": [{"address": + "valkey.example.com", "port": 27283, "public_access": true, "role": "primary"}], "primary": "valkey.example.com"}, + "id": 123, "label": "go-valkey-test-fixture-updated", "members": {}, "port": 27283, "private_network": + null, "region": "au-mel", "ssl_connection": true, "status": "resuming", "total_disk_size_gb": 0, "type": + "g7-dedicated-4-2", "updated": "2018-01-02T03:04:05", "updates": {"day_of_week": 2, "duration": 4, "frequency": + "weekly", "hour_of_day": 8, "pending": []}, "used_disk_size_gb": 0, "version": "8.1.10", "platform": + "rdbms-default"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 19:16:06 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - databases: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/databases/valkey/instances/123' + method: GET + response: + body: '{"allow_list": ["203.0.113.1/32"], "available_restore_times": ["2018-01-02T03:04:05"], "cluster_size": + 1, "created": "2018-01-02T03:04:05", "encrypted": true, "engine": "valkey", "engine_config": {"frequent_snapshots": + true, "valkey_active_expire_effort": 1, "valkey_activedefrag": false, "valkey_lfu_decay_time": 1, "valkey_lfu_log_factor": + 10, "valkey_maxmemory_policy": "noeviction", "valkey_timeout": 300}, "hosts": {"endpoints": [{"address": + "valkey.example.com", "port": 27283, "public_access": true, "role": "primary"}], "primary": "valkey.example.com"}, + "id": 123, "label": "go-valkey-test-fixture-updated", "members": {}, "port": 27283, "private_network": + null, "region": "au-mel", "ssl_connection": true, "status": "resuming", "total_disk_size_gb": 0, "type": + "g7-dedicated-4-2", "updated": "2018-01-02T03:04:05", "updates": {"day_of_week": 2, "duration": 4, "frequency": + "weekly", "hour_of_day": 8, "pending": []}, "used_disk_size_gb": 0, "version": "8.1.10", "platform": + "rdbms-default"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 19:16:19 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - databases: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/databases/valkey/instances/123' + method: GET + response: + body: '{"allow_list": ["203.0.113.1/32"], "available_restore_times": ["2018-01-02T03:04:05"], "cluster_size": + 1, "created": "2018-01-02T03:04:05", "encrypted": true, "engine": "valkey", "engine_config": {"frequent_snapshots": + true, "valkey_active_expire_effort": 1, "valkey_activedefrag": false, "valkey_lfu_decay_time": 1, "valkey_lfu_log_factor": + 10, "valkey_maxmemory_policy": "noeviction", "valkey_timeout": 300}, "hosts": {"endpoints": [{"address": + "valkey.example.com", "port": 27283, "public_access": true, "role": "primary"}], "primary": "valkey.example.com"}, + "id": 123, "label": "go-valkey-test-fixture-updated", "members": {}, "port": 27283, "private_network": + null, "region": "au-mel", "ssl_connection": true, "status": "resuming", "total_disk_size_gb": 0, "type": + "g7-dedicated-4-2", "updated": "2018-01-02T03:04:05", "updates": {"day_of_week": 2, "duration": 4, "frequency": + "weekly", "hour_of_day": 8, "pending": []}, "used_disk_size_gb": 0, "version": "8.1.10", "platform": + "rdbms-default"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 19:16:34 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - databases: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/databases/valkey/instances/123' + method: GET + response: + body: '{"allow_list": ["203.0.113.1/32"], "available_restore_times": ["2018-01-02T03:04:05", "2018-01-02T03:04:05"], + "cluster_size": 1, "created": "2018-01-02T03:04:05", "encrypted": true, "engine": "valkey", "engine_config": + {"frequent_snapshots": true, "valkey_active_expire_effort": 1, "valkey_activedefrag": false, "valkey_lfu_decay_time": + 1, "valkey_lfu_log_factor": 10, "valkey_maxmemory_policy": "noeviction", "valkey_timeout": 300}, "hosts": + {"endpoints": [{"address": "valkey.example.com", "port": 27283, "public_access": true, "role": "primary"}], + "primary": "valkey.example.com"}, "id": 123, "label": "go-valkey-test-fixture-updated", "members": {}, + "port": 27283, "private_network": null, "region": "au-mel", "ssl_connection": true, "status": "resuming", + "total_disk_size_gb": 0, "type": "g7-dedicated-4-2", "updated": "2018-01-02T03:04:05", "updates": {"day_of_week": + 2, "duration": 4, "frequency": "weekly", "hour_of_day": 8, "pending": []}, "used_disk_size_gb": 0, "version": + "8.1.10", "platform": "rdbms-default"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 19:16:49 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - databases: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/databases/valkey/instances/123' + method: GET + response: + body: '{"allow_list": ["203.0.113.1/32"], "available_restore_times": ["2018-01-02T03:04:05", "2018-01-02T03:04:05"], + "cluster_size": 1, "created": "2018-01-02T03:04:05", "encrypted": true, "engine": "valkey", "engine_config": + {"frequent_snapshots": true, "valkey_active_expire_effort": 1, "valkey_activedefrag": false, "valkey_lfu_decay_time": + 1, "valkey_lfu_log_factor": 10, "valkey_maxmemory_policy": "noeviction", "valkey_timeout": 300}, "hosts": + {"endpoints": [{"address": "valkey.example.com", "port": 27283, "public_access": true, "role": "primary"}], + "primary": "valkey.example.com"}, "id": 123, "label": "go-valkey-test-fixture-updated", "members": {}, + "port": 27283, "private_network": null, "region": "au-mel", "ssl_connection": true, "status": "resuming", + "total_disk_size_gb": 0, "type": "g7-dedicated-4-2", "updated": "2018-01-02T03:04:05", "updates": {"day_of_week": + 2, "duration": 4, "frequency": "weekly", "hour_of_day": 8, "pending": []}, "used_disk_size_gb": 0, "version": + "8.1.10", "platform": "rdbms-default"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 19:17:04 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - databases: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/databases/valkey/instances/123' + method: GET + response: + body: '{"allow_list": ["203.0.113.1/32"], "available_restore_times": ["2018-01-02T03:04:05", "2018-01-02T03:04:05"], + "cluster_size": 1, "created": "2018-01-02T03:04:05", "encrypted": true, "engine": "valkey", "engine_config": + {"frequent_snapshots": true, "valkey_active_expire_effort": 1, "valkey_activedefrag": false, "valkey_lfu_decay_time": + 1, "valkey_lfu_log_factor": 10, "valkey_maxmemory_policy": "noeviction", "valkey_timeout": 300}, "hosts": + {"endpoints": [{"address": "valkey.example.com", "port": 27283, "public_access": true, "role": "primary"}], + "primary": "valkey.example.com"}, "id": 123, "label": "go-valkey-test-fixture-updated", "members": {}, + "port": 27283, "private_network": null, "region": "au-mel", "ssl_connection": true, "status": "resuming", + "total_disk_size_gb": 0, "type": "g7-dedicated-4-2", "updated": "2018-01-02T03:04:05", "updates": {"day_of_week": + 2, "duration": 4, "frequency": "weekly", "hour_of_day": 8, "pending": []}, "used_disk_size_gb": 0, "version": + "8.1.10", "platform": "rdbms-default"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 19:17:20 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - databases: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/databases/valkey/instances/123' + method: GET + response: + body: '{"allow_list": ["203.0.113.1/32"], "available_restore_times": ["2018-01-02T03:04:05", "2018-01-02T03:04:05"], + "cluster_size": 1, "created": "2018-01-02T03:04:05", "encrypted": true, "engine": "valkey", "engine_config": + {"frequent_snapshots": true, "valkey_active_expire_effort": 1, "valkey_activedefrag": false, "valkey_lfu_decay_time": + 1, "valkey_lfu_log_factor": 10, "valkey_maxmemory_policy": "noeviction", "valkey_timeout": 300}, "hosts": + {"endpoints": [{"address": "valkey.example.com", "port": 27283, "public_access": true, "role": "primary"}], + "primary": "valkey.example.com"}, "id": 123, "label": "go-valkey-test-fixture-updated", "members": {}, + "port": 27283, "private_network": null, "region": "au-mel", "ssl_connection": true, "status": "resuming", + "total_disk_size_gb": 0, "type": "g7-dedicated-4-2", "updated": "2018-01-02T03:04:05", "updates": {"day_of_week": + 2, "duration": 4, "frequency": "weekly", "hour_of_day": 8, "pending": []}, "used_disk_size_gb": 0, "version": + "8.1.10", "platform": "rdbms-default"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 19:17:34 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - databases: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/databases/valkey/instances/123' + method: GET + response: + body: '{"allow_list": ["203.0.113.1/32"], "available_restore_times": ["2018-01-02T03:04:05", "2018-01-02T03:04:05"], + "cluster_size": 1, "created": "2018-01-02T03:04:05", "encrypted": true, "engine": "valkey", "engine_config": + {"frequent_snapshots": true, "valkey_active_expire_effort": 1, "valkey_activedefrag": false, "valkey_lfu_decay_time": + 1, "valkey_lfu_log_factor": 10, "valkey_maxmemory_policy": "noeviction", "valkey_timeout": 300}, "hosts": + {"endpoints": [{"address": "valkey.example.com", "port": 27283, "public_access": true, "role": "primary"}], + "primary": "valkey.example.com"}, "id": 123, "label": "go-valkey-test-fixture-updated", "members": {}, + "port": 27283, "private_network": null, "region": "au-mel", "ssl_connection": true, "status": "active", + "total_disk_size_gb": 0, "type": "g7-dedicated-4-2", "updated": "2018-01-02T03:04:05", "updates": {"day_of_week": + 2, "duration": 4, "frequency": "weekly", "hour_of_day": 8, "pending": []}, "used_disk_size_gb": 0, "version": + "8.1.10", "platform": "rdbms-default"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 19:17:49 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - databases: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/databases/valkey/instances/123' + method: DELETE + response: + body: '{}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Length: + - "2" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 17 Sep 2026 19:17:55 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - databases: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/valkey_db_config_test.go b/test/integration/valkey_db_config_test.go new file mode 100644 index 000000000..a0a9e7cc1 --- /dev/null +++ b/test/integration/valkey_db_config_test.go @@ -0,0 +1,34 @@ +package integration + +import ( + "context" + "testing" + + "github.com/linode/linodego/v2" + "github.com/stretchr/testify/assert" +) + +func TestDatabaseValkey_EngineConfig_Get(t *testing.T) { + client, teardown := createTestClient(t, "fixtures/TestDatabaseValkey_EngineConfig_Get") + defer teardown() + + config, err := client.GetValkeyDatabaseConfig(context.Background()) + if err != nil { + t.Fatalf("error getting Valkey database config: %v", err) + } + + assert.Equal(t, linodego.DatabaseConfigParamType{"integer", "null"}, config.BackupHour.Type) + assert.Equal(t, linodego.DatabaseConfigParamType{"integer", "null"}, config.BackupMinute.Type) + assert.Equal(t, linodego.DatabaseConfigParamType{"boolean"}, config.FrequentSnapshots.Type) + assert.Equal(t, linodego.DatabaseConfigParamType{"string"}, config.ValkeyACLChannelsDefault.Type) + assert.NotEmpty(t, config.ValkeyACLChannelsDefault.Enum) + assert.Equal(t, linodego.DatabaseConfigParamType{"integer"}, config.ValkeyActiveExpireEffort.Type) + assert.Equal(t, linodego.DatabaseConfigParamType{"boolean"}, config.ValkeyActiveDefrag.Type) + assert.Equal(t, linodego.DatabaseConfigParamType{"integer"}, config.ValkeyLFUDecayTime.Type) + assert.Equal(t, linodego.DatabaseConfigParamType{"integer"}, config.ValkeyLFULogFactor.Type) + assert.Equal(t, linodego.DatabaseConfigParamType{"string", "null"}, config.ValkeyMaxmemoryPolicy.Type) + assert.Equal(t, linodego.DatabaseConfigParamType{"integer"}, config.ValkeyNumberOfDatabases.Type) + assert.Equal(t, linodego.DatabaseConfigParamType{"string"}, config.ValkeyPersistence.Type) + assert.Equal(t, linodego.DatabaseConfigParamType{"integer"}, config.ValkeyPubsubClientOutputBufferLimit.Type) + assert.Equal(t, linodego.DatabaseConfigParamType{"integer"}, config.ValkeyTimeout.Type) +} diff --git a/test/integration/valkey_test.go b/test/integration/valkey_test.go new file mode 100644 index 000000000..c96279f4e --- /dev/null +++ b/test/integration/valkey_test.go @@ -0,0 +1,143 @@ +package integration + +import ( + "context" + "testing" + "time" + + "github.com/dnaeon/go-vcr/recorder" + "github.com/linode/linodego/v2" +) + +func TestDatabase_Valkey_Suite(t *testing.T) { + ctx := waitContext(t, 12000*time.Second) + client, database, teardown, err := setupValkeyDatabase(t, ctx, "fixtures/TestDatabase_Valkey_Suite") + if err != nil { + t.Fatal(err) + } + defer teardown() + + databases, err := client.ListValkeyDatabases(context.Background(), nil) + if err != nil { + t.Fatalf("error listing Valkey databases: %v", err) + } + if len(databases) == 0 { + t.Fatal("expected Valkey database list to be non-empty") + } + + db, err := client.GetValkeyDatabase(context.Background(), database.ID) + if err != nil { + t.Fatalf("error getting Valkey database: %v", err) + } + if db.ID != database.ID { + t.Fatalf("got database %d, expected %d", db.ID, database.ID) + } + + updatedLabel := database.Label + "-updated" + db, err = client.UpdateValkeyDatabase(context.Background(), database.ID, linodego.ValkeyUpdateOptions{ + Label: new(updatedLabel), + }) + if err != nil { + t.Fatalf("error updating Valkey database: %v", err) + } + waitForDatabaseUpdated(t, ctx, client, db.ID, linodego.DatabaseEngineTypeValkey, db.Created) + if db.Label != updatedLabel { + t.Fatalf("got label %q, expected %q", db.Label, updatedLabel) + } + + if _, err := client.GetValkeyDatabaseSSL(context.Background(), database.ID); err != nil { + t.Fatalf("error getting Valkey SSL certificate: %v", err) + } + credentials, err := client.GetValkeyDatabaseCredentials(context.Background(), database.ID) + if err != nil { + t.Fatalf("error getting Valkey credentials: %v", err) + } + if credentials.Username == "" || credentials.Password == "" { + t.Fatal("Valkey credentials were empty") + } + + if testingMode == recorder.ModeRecording { + time.Sleep(5 * time.Minute) + } + if err := client.ResetValkeyDatabaseCredentials(context.Background(), database.ID); err != nil { + t.Fatalf("error resetting Valkey credentials: %v", err) + } + if testingMode == recorder.ModeRecording { + time.Sleep(15 * time.Second) + } + newCredentials, err := client.GetValkeyDatabaseCredentials(context.Background(), database.ID) + if err != nil { + t.Fatalf("error getting reset Valkey credentials: %v", err) + } + if credentials.Password == newCredentials.Password { + t.Fatal("Valkey credentials did not change after reset") + } + + if err := client.PatchValkeyDatabase(context.Background(), database.ID); err != nil { + t.Fatalf("error patching Valkey database: %v", err) + } + waitForValkeyStatus(t, ctx, client, database.ID, linodego.DatabaseStatusUpdating) + waitForValkeyStatus(t, ctx, client, database.ID, linodego.DatabaseStatusActive) + + if err := client.SuspendValkeyDatabase(context.Background(), database.ID); err != nil { + t.Fatalf("error suspending Valkey database: %v", err) + } + waitForValkeyStatus(t, ctx, client, database.ID, linodego.DatabaseStatusSuspended) + + if err := client.ResumeValkeyDatabase(context.Background(), database.ID); err != nil { + t.Fatalf("error resuming Valkey database: %v", err) + } + waitForValkeyStatus(t, ctx, client, database.ID, linodego.DatabaseStatusActive) +} + +func setupValkeyDatabase(t *testing.T, ctx context.Context, fixturesYAML string) (*linodego.Client, *linodego.ValkeyDatabase, func(), error) { + t.Helper() + now := time.Now() + client, fixtureTeardown := createTestClient(t, fixturesYAML) + regions := getRegionsWithCaps(t, client, []linodego.RegionCapability{linodego.CapabilityDBAAS}) + database, err := client.CreateValkeyDatabase(context.Background(), linodego.ValkeyCreateOptions{ + Label: "go-valkey-test-" + randLabel(), + Region: regions[0], + Type: "g7-dedicated-4-2", + Engine: "valkey/8.1", + ClusterSize: new(1), + AllowList: []string{"203.0.113.1"}, + }) + if err != nil { + fixtureTeardown() + return nil, nil, nil, err + } + + if _, err := client.WaitForEventFinished(ctx, database.ID, linodego.EntityDatabase, linodego.ActionDatabaseCreate, now); err != nil { + deleteCtx, cancel := context.WithTimeout(context.Background(), 180*time.Second) + defer cancel() + _ = client.DeleteValkeyDatabase(deleteCtx, database.ID) + fixtureTeardown() + return nil, nil, nil, err + } + + if err := client.WaitForDatabaseStatus(ctx, database.ID, linodego.DatabaseEngineTypeValkey, linodego.DatabaseStatusActive); err != nil { + deleteCtx, cancel := context.WithTimeout(context.Background(), 180*time.Second) + defer cancel() + _ = client.DeleteValkeyDatabase(deleteCtx, database.ID) + fixtureTeardown() + return nil, nil, nil, err + } + + teardown := func() { + deleteCtx, cancel := context.WithTimeout(context.Background(), 180*time.Second) + defer cancel() + if err := client.DeleteValkeyDatabase(deleteCtx, database.ID); err != nil { + t.Errorf("failed to delete Valkey database: %v", err) + } + fixtureTeardown() + } + return client, database, teardown, nil +} + +func waitForValkeyStatus(t *testing.T, ctx context.Context, client *linodego.Client, databaseID int, status linodego.DatabaseStatus) { + t.Helper() + if err := client.WaitForDatabaseStatus(ctx, databaseID, linodego.DatabaseEngineTypeValkey, status); err != nil { + t.Fatalf("failed waiting for Valkey status %q: %v", status, err) + } +} diff --git a/test/unit/database_test.go b/test/unit/database_test.go index 1455c97cb..6135bea61 100644 --- a/test/unit/database_test.go +++ b/test/unit/database_test.go @@ -6,6 +6,7 @@ import ( "fmt" "slices" "testing" + "time" "github.com/linode/linodego/v2" "github.com/stretchr/testify/assert" @@ -82,6 +83,39 @@ func TestUnmarshalDatabase(t *testing.T) { assert.Equal(t, "mysql", db.Engine, "Expected MySQL engine") assert.Equal(t, 3, db.ClusterSize, "Expected cluster size 3") assert.NotNil(t, db.Created, "Expected Created timestamp to be set") + assert.Nil(t, db.OldestRestoreTime, "Expected OldestRestoreTime to be nil") + assert.Equal(t, []time.Time{ + time.Date(2025, time.December, 29, 20, 40, 15, 0, time.UTC), + }, db.AvailableRestoreTimes, "Expected available restore times to be parsed") +} + +func TestUnmarshalDatabaseWithOldestRestoreTime(t *testing.T) { + fixtureData, err := fixtures.GetFixture("database_unmarshal_oldest_restore_time") + assert.NoError(t, err) + + var data []byte + switch v := fixtureData.(type) { + case []byte: + data = v + case string: + data = []byte(v) + case map[string]interface{}: + data, err = json.Marshal(v) + assert.NoError(t, err, "Failed to marshal fixtureData") + default: + assert.Fail(t, "Unexpected fixtureData type") + } + + var db linodego.Database + err = json.Unmarshal(data, &db) + assert.NoError(t, err) + assert.NotNil(t, db.OldestRestoreTime, "Expected OldestRestoreTime to be set") + assert.Equal(t, + time.Date(2025, time.December, 29, 20, 40, 15, 0, time.UTC), + *db.OldestRestoreTime, + "Expected OldestRestoreTime to be parsed", + ) + assert.Nil(t, db.AvailableRestoreTimes, "Expected AvailableRestoreTimes to be nil") } func TestDatabaseMaintenanceWindowUnmarshal(t *testing.T) { diff --git a/test/unit/fixtures/database_unmarshal.json b/test/unit/fixtures/database_unmarshal.json index 7742bf7f5..914b80cff 100644 --- a/test/unit/fixtures/database_unmarshal.json +++ b/test/unit/fixtures/database_unmarshal.json @@ -8,6 +8,10 @@ "version": "8.0", "cluster_size": 3, "platform": "rdbms-default", - "created": "2023-01-01T12:00:00" + "created": "2023-01-01T12:00:00", + "oldest_restore_time": null, + "available_restore_times": [ + "2025-12-29T20:40:15" + ] } \ No newline at end of file diff --git a/test/unit/fixtures/database_unmarshal_oldest_restore_time.json b/test/unit/fixtures/database_unmarshal_oldest_restore_time.json new file mode 100644 index 000000000..c8af08f48 --- /dev/null +++ b/test/unit/fixtures/database_unmarshal_oldest_restore_time.json @@ -0,0 +1,14 @@ +{ + "id": 456, + "status": "active", + "label": "postgres-db", + "region": "us-east", + "type": "g6-standard-1", + "engine": "postgresql", + "version": "16", + "cluster_size": 3, + "platform": "rdbms-default", + "created": "2023-01-01T12:00:00", + "oldest_restore_time": "2025-12-29T20:40:15", + "available_restore_times": null +} diff --git a/test/unit/fixtures/valkey_database_config_get.json b/test/unit/fixtures/valkey_database_config_get.json new file mode 100644 index 000000000..248c7e5f9 --- /dev/null +++ b/test/unit/fixtures/valkey_database_config_get.json @@ -0,0 +1,15 @@ +{ + "backup_hour": {"description": "The hour of day (in UTC) when backup for the service is started. New backup is only started if previous backup has already completed.", "example": 3, "maximum": 23, "minimum": 0, "requires_restart": false, "type": ["integer", "null"]}, + "backup_minute": {"description": "The minute of an hour when backup for the service is started. New backup is only started if previous backup has already completed.", "example": 30, "maximum": 59, "minimum": 0, "requires_restart": false, "type": ["integer", "null"]}, + "frequent_snapshots": {"default": true, "description": "When enabled, Valkey will create frequent local RDB snapshots. When disabled, Valkey will only take RDB snapshots when a backup is created, based on the backup schedule. This setting is ignored when valkey_persistence is set to off.", "requires_restart": false, "type": "boolean"}, + "valkey_acl_channels_default": {"description": "Determines default pub/sub channels ACL for new users if ACL is not supplied. When this option is not defined, all_channels is assumed to keep backward compatibility. This option doesn't affect Valkey configuration acl-pubsub-default.", "enum": ["allchannels", "resetchannels"], "requires_restart": false, "type": "string"}, + "valkey_active_expire_effort": {"default": 1, "description": "Valkey reclaims expired keys both when accessed and in the background. The background process scans for expired keys to free memory. Increasing the active-expire-effort setting (default 1, max 10) uses more CPU to reclaim expired keys faster, reducing memory usage but potentially increasing latency.", "maximum": 10, "minimum": 1, "requires_restart": false, "type": "integer"}, + "valkey_activedefrag": {"default": false, "description": "Enable active memory defragmentation. When enabled, Valkey relocates objects off sparsely-used memory pages to reduce fragmentation and return memory to the operating system. Defragmentation runs on the main thread and consumes CPU, so it may increase latency under load.", "requires_restart": false, "type": "boolean"}, + "valkey_lfu_decay_time": {"default": 1, "description": "LFU maxmemory-policy counter decay time in minutes", "maximum": 120, "minimum": 1, "requires_restart": false, "type": "integer"}, + "valkey_lfu_log_factor": {"default": 10, "description": "Counter logarithm factor for volatile-lfu and allkeys-lfu maxmemory-policies", "maximum": 100, "minimum": 0, "requires_restart": false, "type": "integer"}, + "valkey_maxmemory_policy": {"default": "noeviction", "description": "Valkey maxmemory-policy", "enum": ["noeviction", "allkeys-lru", "volatile-lru", "allkeys-random", "volatile-random", "volatile-ttl", "volatile-lfu", "allkeys-lfu"], "requires_restart": false, "type": ["string", "null"]}, + "valkey_number_of_databases": {"description": "Set number of Valkey databases. Changing this will cause a restart of the Valkey service.", "example": 16, "maximum": 128, "minimum": 1, "requires_restart": true, "type": "integer"}, + "valkey_persistence": {"description": "When persistence is rdb, Valkey does RDB dumps each 10 minutes if any key is changed. Also RDB dumps are done according to backup schedule for backup purposes. When persistence is off, no RDB dumps and backups are done, so data can be lost at any moment if service is restarted for any reason, or if service is powered off. Also service can't be forked.", "enum": ["off", "rdb"], "requires_restart": true, "type": "string"}, + "valkey_pubsub_client_output_buffer_limit": {"description": "Set output buffer limit for pub / sub clients in MB. The value is the hard limit, the soft limit is 1/4 of the hard limit. When setting the limit, be mindful of the available memory in the selected service plan.", "example": 64, "maximum": 262144, "minimum": 32, "requires_restart": false, "type": "integer"}, + "valkey_timeout": {"default": 300, "description": "Valkey idle connection timeout in seconds", "maximum": 2073600, "minimum": 0, "requires_restart": false, "type": "integer"} +} \ No newline at end of file diff --git a/test/unit/fixtures/valkey_database_create.json b/test/unit/fixtures/valkey_database_create.json new file mode 100644 index 000000000..64f5074a0 --- /dev/null +++ b/test/unit/fixtures/valkey_database_create.json @@ -0,0 +1,26 @@ +{ + "allow_list": ["203.0.113.1/32"], + "cluster_size": 3, + "created": "2022-01-01T00:01:01", + "encrypted": true, + "engine": "valkey", + "engine_config": {"backup_hour": 3, "backup_minute": 30, "frequent_snapshots": true, "valkey_acl_channels_default": "resetchannels", "valkey_active_expire_effort": 1, "valkey_activedefrag": true, "valkey_lfu_decay_time": 1, "valkey_lfu_log_factor": 10, "valkey_maxmemory_policy": "noeviction", "valkey_number_of_databases": 32, "valkey_persistence": "off", "valkey_pubsub_client_output_buffer_limit": 64, "valkey_timeout": 300}, + "fork": null, + "hosts": {"primary": "lin-123-456-valkey-primary.servers.linodedb.net", "standby": "lin-123-456-valkey-standby.servers.linodedb.net"}, + "id": 123, + "label": "example-db-created", + "members": {"45.56.110.70": "primary", "45.79.159.239": "failover"}, + "platform": "rdbms-default", + "port": 6379, + "private_network": {"vpc_id": 1234, "subnet_id": 5678, "public_access": true}, + "region": "us-east", + "ssl_connection": true, + "status": "active", + "total_disk_size_gb": 15, + "type": "g6-dedicated-2", + "updated": "2022-01-01T00:01:01", + "updates": {"day_of_week": 1, "duration": 3, "frequency": "weekly", "hour_of_day": 0, "pending": []}, + "used_disk_size_gb": 2, + "version": "8.1.9", + "available_restore_times": ["2024-10-14T19:55:12"] +} \ No newline at end of file diff --git a/test/unit/fixtures/valkey_database_credentials_get.json b/test/unit/fixtures/valkey_database_credentials_get.json new file mode 100644 index 000000000..d070c8032 --- /dev/null +++ b/test/unit/fixtures/valkey_database_credentials_get.json @@ -0,0 +1,4 @@ +{ + "username": "linroot", + "password": "s3cur3P@ssw0rd" +} \ No newline at end of file diff --git a/test/unit/fixtures/valkey_database_get.json b/test/unit/fixtures/valkey_database_get.json new file mode 100644 index 000000000..5debae456 --- /dev/null +++ b/test/unit/fixtures/valkey_database_get.json @@ -0,0 +1,26 @@ +{ + "allow_list": ["203.0.113.1/32"], + "cluster_size": 3, + "created": "2022-01-01T00:01:01", + "encrypted": true, + "engine": "valkey", + "engine_config": {"backup_hour": 3, "backup_minute": 30, "frequent_snapshots": true, "valkey_acl_channels_default": "resetchannels", "valkey_active_expire_effort": 1, "valkey_activedefrag": true, "valkey_lfu_decay_time": 1, "valkey_lfu_log_factor": 10, "valkey_maxmemory_policy": "noeviction", "valkey_number_of_databases": 32, "valkey_persistence": "off", "valkey_pubsub_client_output_buffer_limit": 64, "valkey_timeout": 300}, + "fork": {"restore_time": "2024-10-14T19:55:12", "source": 176881}, + "hosts": {"primary": "lin-123-456-valkey-primary.servers.linodedb.net", "standby": "lin-123-456-valkey-standby.servers.linodedb.net"}, + "id": 123, + "label": "example-db", + "members": {"45.56.110.70": "primary", "45.79.159.239": "failover"}, + "platform": "rdbms-default", + "port": 6379, + "region": "us-east", + "ssl_connection": true, + "status": "active", + "total_disk_size_gb": 15, + "type": "g6-dedicated-2", + "updated": "2022-01-01T00:01:01", + "updates": {"day_of_week": 1, "duration": 3, "frequency": "weekly", "hour_of_day": 0, "pending": []}, + "used_disk_size_gb": 2, + "version": "8.1.9", + "available_restore_times": ["2024-10-14T19:55:12"], + "private_network": {"vpc_id": 1234, "subnet_id": 5678, "public_access": true} +} \ No newline at end of file diff --git a/test/unit/fixtures/valkey_database_ssl_get.json b/test/unit/fixtures/valkey_database_ssl_get.json new file mode 100644 index 000000000..6a473699b --- /dev/null +++ b/test/unit/fixtures/valkey_database_ssl_get.json @@ -0,0 +1,3 @@ +{ + "ca_certificate": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tClRoaXMgaXMgYSB0ZXN0IGNlcnRpZmljYXRlCi0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K" +} \ No newline at end of file diff --git a/test/unit/fixtures/valkey_database_unmarshal.json b/test/unit/fixtures/valkey_database_unmarshal.json new file mode 100644 index 000000000..267c69c18 --- /dev/null +++ b/test/unit/fixtures/valkey_database_unmarshal.json @@ -0,0 +1,52 @@ +{ + "id": 495395, + "status": "active", + "label": "tes-valkey2-2026-07-13T18-31-20", + "region": "us-ord", + "type": "g7-dedicated-4-2", + "engine": "valkey", + "version": "8.1.9", + "cluster_size": 3, + "platform": "rdbms-default", + "ssl_connection": true, + "encrypted": true, + "allow_list": [], + "created": "2026-07-13T18:42:04", + "updated": "2026-09-11T07:54:54", + "used_disk_size_gb": 0, + "total_disk_size_gb": 0, + "port": 27283, + "members": { + "10.0.0.32": "primary", + "10.0.0.33": "failover" + }, + "hosts": { + "primary": "private-a495395-akamai-prod-5951780-default.g2a.akamaidb.net", + "standby": "private-replica-a495395-akamai-prod-5951780-default.g2a.akamaidb.net" + }, + "updates": { + "day_of_week": 5, + "duration": 4, + "frequency": "weekly", + "hour_of_day": 16, + "pending": [] + }, + "engine_config": { + "frequent_snapshots": true, + "valkey_active_expire_effort": 1, + "valkey_lfu_decay_time": 1, + "valkey_lfu_log_factor": 10, + "valkey_maxmemory_policy": "noeviction", + "valkey_timeout": 300 + }, + "private_network": { + "public_access": true, + "subnet_id": 798429, + "vpc_id": 570237 + }, + "fork": null, + "available_restore_times": [ + "2026-08-28T19:37:09", + "2026-09-11T07:54:23" + ] +} \ No newline at end of file diff --git a/test/unit/fixtures/valkey_database_unmarshal_engine_config.json b/test/unit/fixtures/valkey_database_unmarshal_engine_config.json new file mode 100644 index 000000000..00c9489ab --- /dev/null +++ b/test/unit/fixtures/valkey_database_unmarshal_engine_config.json @@ -0,0 +1,50 @@ +{ + "id": 495396, + "status": "active", + "label": "tes-valkey1-2026-07-13T18-26-24", + "region": "us-ord", + "type": "g8-dedicated-4-2", + "engine": "valkey", + "version": "9.0.5", + "cluster_size": 1, + "platform": "rdbms-default", + "ssl_connection": true, + "encrypted": true, + "allow_list": [], + "created": "2026-07-13T18:51:09", + "updated": "2026-09-11T08:05:02", + "used_disk_size_gb": 0, + "total_disk_size_gb": 0, + "port": 27283, + "members": { + "203.0.113.2": "primary" + }, + "hosts": { + "primary": "a495396-akamai-prod-5951780-default.g2a.akamaidb.net" + }, + "updates": { + "day_of_week": 3, + "duration": 4, + "frequency": "weekly", + "hour_of_day": 22, + "pending": [] + }, + "engine_config": { + "backup_hour": 3, + "backup_minute": 30, + "frequent_snapshots": false, + "valkey_acl_channels_default": "resetchannels", + "valkey_active_expire_effort": 5, + "valkey_activedefrag": true, + "valkey_lfu_decay_time": 10, + "valkey_lfu_log_factor": 20, + "valkey_maxmemory_policy": null, + "valkey_number_of_databases": 32, + "valkey_persistence": "off", + "valkey_pubsub_client_output_buffer_limit": 64, + "valkey_timeout": 600 + }, + "private_network": null, + "fork": null, + "available_restore_times": [] +} \ No newline at end of file diff --git a/test/unit/fixtures/valkey_database_update.json b/test/unit/fixtures/valkey_database_update.json new file mode 100644 index 000000000..adf0d7d7b --- /dev/null +++ b/test/unit/fixtures/valkey_database_update.json @@ -0,0 +1,6 @@ +{ + "allow_list": ["203.0.113.1/32"], "cluster_size": 3, "created": "2022-01-01T00:01:01", "encrypted": true, "engine": "valkey", + "engine_config": {"backup_hour": 3, "backup_minute": 30, "frequent_snapshots": true, "valkey_acl_channels_default": "resetchannels", "valkey_active_expire_effort": 1, "valkey_activedefrag": true, "valkey_lfu_decay_time": 1, "valkey_lfu_log_factor": 10, "valkey_maxmemory_policy": "noeviction", "valkey_number_of_databases": 32, "valkey_persistence": "off", "valkey_pubsub_client_output_buffer_limit": 64, "valkey_timeout": 300}, + "fork": null, "hosts": {"primary": "lin-123-456-valkey-primary.servers.linodedb.net", "standby": "lin-123-456-valkey-standby.servers.linodedb.net"}, "id": 123, "label": "example-db-updated", "members": {"45.56.110.70": "primary", "45.79.159.239": "failover"}, "platform": "rdbms-default", "port": 6379, + "private_network": {"vpc_id": 1234, "subnet_id": 5678, "public_access": true}, "region": "us-east", "ssl_connection": true, "status": "active", "total_disk_size_gb": 15, "type": "g6-dedicated-2", "updated": "2022-01-01T00:01:01", "updates": {"day_of_week": 1, "duration": 3, "frequency": "weekly", "hour_of_day": 0, "pending": []}, "used_disk_size_gb": 2, "version": "8.1.9", "available_restore_times": ["2024-10-14T19:55:12"] +} \ No newline at end of file diff --git a/test/unit/fixtures/valkey_databases_list.json b/test/unit/fixtures/valkey_databases_list.json new file mode 100644 index 000000000..886a8232f --- /dev/null +++ b/test/unit/fixtures/valkey_databases_list.json @@ -0,0 +1,6 @@ +{ + "data": [{"allow_list": ["203.0.113.1/32"], "cluster_size": 3, "created": "2022-01-01T00:01:01", "encrypted": true, "engine": "valkey", "engine_config": {"backup_hour": 3, "backup_minute": 30, "frequent_snapshots": true, "valkey_acl_channels_default": "resetchannels", "valkey_active_expire_effort": 1, "valkey_activedefrag": true, "valkey_lfu_decay_time": 1, "valkey_lfu_log_factor": 10, "valkey_maxmemory_policy": "noeviction", "valkey_number_of_databases": 32, "valkey_persistence": "off", "valkey_pubsub_client_output_buffer_limit": 64, "valkey_timeout": 300}, "fork": null, "hosts": {"primary": "lin-123-456-valkey-primary.servers.linodedb.net", "standby": "lin-123-456-valkey-standby.servers.linodedb.net"}, "id": 123, "label": "example-db", "members": {"45.56.110.70": "primary", "45.79.159.239": "failover"}, "platform": "rdbms-default", "port": 6379, "private_network": {"vpc_id": 1234, "subnet_id": 5678, "public_access": true}, "region": "us-east", "ssl_connection": true, "status": "active", "total_disk_size_gb": 15, "type": "g6-dedicated-2", "updated": "2022-01-01T00:01:01", "updates": {"day_of_week": 1, "duration": 3, "frequency": "weekly", "hour_of_day": 0, "pending": []}, "used_disk_size_gb": 2, "version": "8.1.9", "available_restore_times": ["2024-10-14T19:55:12"]}], + "page": 1, + "pages": 1, + "results": 1 +} \ No newline at end of file diff --git a/test/unit/valkey_test.go b/test/unit/valkey_test.go new file mode 100644 index 000000000..8508137ef --- /dev/null +++ b/test/unit/valkey_test.go @@ -0,0 +1,664 @@ +package unit + +import ( + "context" + "encoding/json" + "testing" + "time" + + "github.com/jarcoal/httpmock" + "github.com/linode/linodego/v2" + "github.com/stretchr/testify/assert" +) + +func getFixtureBytes(t *testing.T, name string) []byte { + t.Helper() + + fixtureData, err := fixtures.GetFixture(name) + assert.NoError(t, err) + + var data []byte + switch v := fixtureData.(type) { + case []byte: + data = v + case string: + data = []byte(v) + case map[string]interface{}: + data, err = json.Marshal(v) + assert.NoError(t, err, "Failed to marshal fixtureData") + default: + assert.Fail(t, "Unexpected fixtureData type") + } + + return data +} + +func TestUnmarshalValkeyDatabase(t *testing.T) { + data := getFixtureBytes(t, "valkey_database_unmarshal") + + var db linodego.ValkeyDatabase + err := json.Unmarshal(data, &db) + assert.NoError(t, err) + + assert.Equal(t, 495395, db.ID) + assert.Equal(t, linodego.DatabaseStatusActive, db.Status) + assert.Equal(t, "valkey", db.Engine) + assert.Equal(t, 3, db.ClusterSize) + assert.Equal(t, linodego.DatabasePlatformRDBMSDefault, db.Platform) + assert.NotNil(t, db.Created) + assert.NotNil(t, db.Updated) + assert.Equal(t, []time.Time{ + time.Date(2026, time.August, 28, 19, 37, 9, 0, time.UTC), + time.Date(2026, time.September, 11, 7, 54, 23, 0, time.UTC), + }, db.AvailableRestoreTimes) + assert.Nil(t, db.Fork) + assert.NotNil(t, db.PrivateNetwork) + assert.Equal(t, 570237, db.PrivateNetwork.VPCID) + + assert.NotNil(t, db.EngineConfig.ValkeyMaxmemoryPolicy) + assert.Equal(t, "noeviction", **db.EngineConfig.ValkeyMaxmemoryPolicy) + assert.NotNil(t, db.EngineConfig.FrequentSnapshots) + assert.True(t, *db.EngineConfig.FrequentSnapshots) + assert.Nil(t, db.EngineConfig.BackupHour) + assert.Nil(t, db.EngineConfig.BackupMinute) +} + +func TestUnmarshalValkeyDatabase_UsedDiskSizeGB(t *testing.T) { + testCases := []struct { + name string + payload string + expected *int + }{ + {name: "omitted", payload: `{}`}, + {name: "null", payload: `{"used_disk_size_gb":null}`}, + {name: "zero", payload: `{"used_disk_size_gb":0}`, expected: new(0)}, + {name: "nonzero", payload: `{"used_disk_size_gb":2}`, expected: new(2)}, + } + + for _, testCase := range testCases { + t.Run(testCase.name, func(t *testing.T) { + var database linodego.ValkeyDatabase + if !assert.NoError(t, json.Unmarshal([]byte(testCase.payload), &database)) { + return + } + assert.Equal(t, testCase.expected, database.UsedDiskSizeGB) + }) + } + + t.Run("null clears reused value", func(t *testing.T) { + database := linodego.ValkeyDatabase{UsedDiskSizeGB: new(2)} + if !assert.NoError(t, json.Unmarshal([]byte(`{"used_disk_size_gb":null}`), &database)) { + return + } + assert.Nil(t, database.UsedDiskSizeGB) + }) +} + +func TestUnmarshalValkeyDatabase_EngineConfigEdgeCases(t *testing.T) { + data := getFixtureBytes(t, "valkey_database_unmarshal_engine_config") + + var db linodego.ValkeyDatabase + err := json.Unmarshal(data, &db) + assert.NoError(t, err) + + assert.NotNil(t, db.AvailableRestoreTimes) + assert.Empty(t, db.AvailableRestoreTimes) + assert.Nil(t, db.PrivateNetwork) + + cfg := db.EngineConfig + assert.Equal(t, 3, **cfg.BackupHour) + assert.Equal(t, 30, **cfg.BackupMinute) + assert.False(t, *cfg.FrequentSnapshots) + assert.Equal(t, "resetchannels", *cfg.ValkeyACLChannelsDefault) + assert.Equal(t, 5, *cfg.ValkeyActiveExpireEffort) + assert.True(t, *cfg.ValkeyActiveDefrag) + assert.Equal(t, 10, *cfg.ValkeyLFUDecayTime) + assert.Equal(t, 20, *cfg.ValkeyLFULogFactor) + // An explicit JSON null for a nullable field is indistinguishable from an + // absent field once unmarshaled; both leave the outer pointer nil. + assert.Nil(t, cfg.ValkeyMaxmemoryPolicy) + assert.Equal(t, 32, *cfg.ValkeyNumberOfDatabases) + assert.Equal(t, "off", *cfg.ValkeyPersistence) + assert.Equal(t, 64, *cfg.ValkeyPubsubClientOutputBufferLimit) + assert.Equal(t, 600, *cfg.ValkeyTimeout) +} + +func TestMarshalValkeyCreateOptionsWithForkRestoreTime(t *testing.T) { + restoreTime := time.Date(2026, time.January, 2, 3, 4, 5, 0, time.UTC) + + payload, err := json.Marshal(linodego.ValkeyCreateOptions{ + Label: "forked-valkey", + Region: "us-ord", + Type: "g7-dedicated-4-2", + Engine: "valkey/8.1", + Fork: &linodego.DatabaseFork{ + Source: 123, + RestoreTime: &restoreTime, + }, + }) + assert.NoError(t, err) + assert.JSONEq( + t, + `{"label":"forked-valkey","region":"us-ord","type":"g7-dedicated-4-2","engine":"valkey/8.1","fork":{"source":123,"restore_time":"2026-01-02T03:04:05Z"}}`, + string(payload), + ) +} + +func TestUnmarshalValkeyDatabaseConfigInfo(t *testing.T) { + payload := []byte(`{ + "backup_hour": { + "description": "Hour of day for backups", + "example": 3, + "minimum": 0, + "maximum": 23, + "requires_restart": false, + "type": ["integer", "null"] + }, + "valkey_acl_channels_default": { + "description": "Determines default pub/sub channels ACL for new users if ACL is not supplied.", + "enum": ["allchannels", "resetchannels"], + "requires_restart": false, + "type": "string" + } + }`) + + var config linodego.ValkeyDatabaseConfigInfo + err := json.Unmarshal(payload, &config) + assert.NoError(t, err) + + assert.Equal(t, linodego.DatabaseConfigParamType{"integer", "null"}, config.BackupHour.Type) + assert.Equal(t, 23, config.BackupHour.Maximum) + assert.Equal(t, 0, config.BackupHour.Minimum) + assert.Equal(t, "string", config.ValkeyACLChannelsDefault.Type[0]) + assert.Equal(t, []string{"allchannels", "resetchannels"}, config.ValkeyACLChannelsDefault.Enum) +} + +func TestListDatabaseValkey_List(t *testing.T) { + fixtureData, err := fixtures.GetFixture("valkey_databases_list") + assert.NoError(t, err) + + var base ClientBaseCase + base.SetUp(t) + defer base.TearDown(t) + + base.MockGet("databases/valkey/instances", fixtureData) + databases, err := base.Client.ListValkeyDatabases(context.Background(), &linodego.ListOptions{}) + assert.NoError(t, err) + assert.NotEmpty(t, databases, "Expected non-empty valkey database list") +} + +func TestDatabaseValkey_Get(t *testing.T) { + fixtureData, err := fixtures.GetFixture("valkey_database_get") + assert.NoError(t, err) + + var base ClientBaseCase + base.SetUp(t) + defer base.TearDown(t) + + base.MockGet("databases/valkey/instances/123", fixtureData) + + db, err := base.Client.GetValkeyDatabase(context.Background(), 123) + assert.NoError(t, err) + + assert.Equal(t, 3, db.ClusterSize) + assert.Equal(t, "valkey", db.Engine) + assert.Equal(t, 123, db.ID) + assert.Equal(t, "example-db", db.Label) + assert.Equal(t, linodego.DatabasePlatform("rdbms-default"), db.Platform) + assert.Equal(t, 6379, db.Port) + assert.Equal(t, "us-east", db.Region) + assert.Equal(t, linodego.DatabaseStatus("active"), db.Status) + assert.Equal(t, 15, db.TotalDiskSizeGB) + assert.Equal(t, "g6-dedicated-2", db.Type) + assert.Equal(t, 3, db.Updates.Duration) + assert.Equal(t, linodego.DatabaseDayOfWeek(1), db.Updates.DayOfWeek) + assert.Equal(t, linodego.DatabaseMaintenanceFrequency("weekly"), db.Updates.Frequency) + assert.Equal(t, 0, db.Updates.HourOfDay) + assert.Equal(t, new(2), db.UsedDiskSizeGB) + assert.Equal(t, "8.1.9", db.Version) + assert.Equal(t, 300, *db.EngineConfig.ValkeyTimeout) + assert.Equal(t, "resetchannels", *db.EngineConfig.ValkeyACLChannelsDefault) + assert.Equal(t, true, *db.EngineConfig.FrequentSnapshots) + assert.Equal(t, "noeviction", **db.EngineConfig.ValkeyMaxmemoryPolicy) + assert.Equal(t, 1234, db.PrivateNetwork.VPCID) + assert.Equal(t, 5678, db.PrivateNetwork.SubnetID) + assert.Equal(t, true, db.PrivateNetwork.PublicAccess) +} + +func TestDatabaseValkey_Update(t *testing.T) { + fixtureData, err := fixtures.GetFixture("valkey_database_update") + assert.NoError(t, err) + + var base ClientBaseCase + base.SetUp(t) + defer base.TearDown(t) + + requestData := linodego.ValkeyUpdateOptions{ + Label: new("example-db-updated"), + EngineConfig: &linodego.ValkeyDatabaseEngineConfig{ + ValkeyTimeout: new(600), + }, + PrivateNetwork: linodego.DoublePointer( + linodego.DatabasePrivateNetwork{ + VPCID: 1234, + SubnetID: 5678, + PublicAccess: true, + }, + ), + } + + base.MockPut("databases/valkey/instances/123", fixtureData) + + db, err := base.Client.UpdateValkeyDatabase(context.Background(), 123, requestData) + assert.NoError(t, err) + + assert.Equal(t, 3, db.ClusterSize) + assert.Equal(t, "valkey", db.Engine) + assert.Equal(t, 123, db.ID) + assert.Equal(t, "example-db-updated", db.Label) + assert.Equal(t, linodego.DatabasePlatform("rdbms-default"), db.Platform) + assert.Equal(t, 6379, db.Port) + assert.Equal(t, "us-east", db.Region) + assert.Equal(t, linodego.DatabaseStatus("active"), db.Status) + assert.Equal(t, 15, db.TotalDiskSizeGB) + assert.Equal(t, "g6-dedicated-2", db.Type) + assert.Equal(t, 3, db.Updates.Duration) + assert.Equal(t, linodego.DatabaseDayOfWeek(1), db.Updates.DayOfWeek) + assert.Equal(t, linodego.DatabaseMaintenanceFrequency("weekly"), db.Updates.Frequency) + assert.Equal(t, 0, db.Updates.HourOfDay) + assert.Equal(t, new(2), db.UsedDiskSizeGB) + assert.Equal(t, "8.1.9", db.Version) + assert.Equal(t, 300, *db.EngineConfig.ValkeyTimeout) + assert.Equal(t, "resetchannels", *db.EngineConfig.ValkeyACLChannelsDefault) + assert.Equal(t, true, *db.EngineConfig.FrequentSnapshots) + assert.Equal(t, "noeviction", **db.EngineConfig.ValkeyMaxmemoryPolicy) + assert.Equal(t, 1234, db.PrivateNetwork.VPCID) + assert.Equal(t, 5678, db.PrivateNetwork.SubnetID) + assert.Equal(t, true, db.PrivateNetwork.PublicAccess) +} + +func TestDatabaseValkey_Create(t *testing.T) { + fixtureData, err := fixtures.GetFixture("valkey_database_create") + assert.NoError(t, err) + + var base ClientBaseCase + base.SetUp(t) + defer base.TearDown(t) + + requestData := linodego.ValkeyCreateOptions{ + Label: "example-db-created", + Region: "us-east", + Type: "g6-dedicated-2", + Engine: "valkey", + EngineConfig: &linodego.ValkeyDatabaseEngineConfig{ + ValkeyTimeout: new(300), + }, + PrivateNetwork: &linodego.DatabasePrivateNetwork{ + VPCID: 1234, + SubnetID: 5678, + PublicAccess: true, + }, + } + + base.MockPost("databases/valkey/instances", fixtureData) + + db, err := base.Client.CreateValkeyDatabase(context.Background(), requestData) + assert.NoError(t, err) + + assert.Equal(t, 3, db.ClusterSize) + assert.Equal(t, "valkey", db.Engine) + assert.Equal(t, 123, db.ID) + assert.Equal(t, "example-db-created", db.Label) + assert.Equal(t, linodego.DatabasePlatform("rdbms-default"), db.Platform) + assert.Equal(t, 6379, db.Port) + assert.Equal(t, "us-east", db.Region) + assert.Equal(t, linodego.DatabaseStatus("active"), db.Status) + assert.Equal(t, 15, db.TotalDiskSizeGB) + assert.Equal(t, "g6-dedicated-2", db.Type) + assert.Equal(t, 3, db.Updates.Duration) + assert.Equal(t, linodego.DatabaseDayOfWeek(1), db.Updates.DayOfWeek) + assert.Equal(t, linodego.DatabaseMaintenanceFrequency("weekly"), db.Updates.Frequency) + assert.Equal(t, 0, db.Updates.HourOfDay) + assert.Equal(t, new(2), db.UsedDiskSizeGB) + assert.Equal(t, "8.1.9", db.Version) + assert.Equal(t, 300, *db.EngineConfig.ValkeyTimeout) + assert.Equal(t, "resetchannels", *db.EngineConfig.ValkeyACLChannelsDefault) + assert.Equal(t, true, *db.EngineConfig.FrequentSnapshots) + assert.Equal(t, "noeviction", **db.EngineConfig.ValkeyMaxmemoryPolicy) + assert.Equal(t, 1234, db.PrivateNetwork.VPCID) + assert.Equal(t, 5678, db.PrivateNetwork.SubnetID) + assert.Equal(t, true, db.PrivateNetwork.PublicAccess) +} + +func TestDatabaseValkey_Delete(t *testing.T) { + client := createMockClient(t) + + httpmock.RegisterRegexpResponder("DELETE", mockRequestURL(t, "databases/valkey/instances/123"), httpmock.NewStringResponder(200, "{}")) + + if err := client.DeleteValkeyDatabase(context.Background(), 123); err != nil { + t.Fatal(err) + } +} + +func TestDatabaseValkey_SSL_Get(t *testing.T) { + fixtureData, err := fixtures.GetFixture("valkey_database_ssl_get") + assert.NoError(t, err) + + var base ClientBaseCase + base.SetUp(t) + defer base.TearDown(t) + + base.MockGet("databases/valkey/instances/123/ssl", fixtureData) + + ssl, err := base.Client.GetValkeyDatabaseSSL(context.Background(), 123) + if assert.NoError(t, err) { + expectedCACertificate := []byte("-----BEGIN CERTIFICATE-----\nThis is a test certificate\n-----END CERTIFICATE-----\n") + assert.Equal(t, expectedCACertificate, ssl.CACertificate) + } +} + +func TestDatabaseValkey_Credentials_Get(t *testing.T) { + fixtureData, err := fixtures.GetFixture("valkey_database_credentials_get") + assert.NoError(t, err) + + var base ClientBaseCase + base.SetUp(t) + defer base.TearDown(t) + + base.MockGet("databases/valkey/instances/123/credentials", fixtureData) + + creds, err := base.Client.GetValkeyDatabaseCredentials(context.Background(), 123) + assert.NoError(t, err) + assert.Equal(t, "linroot", creds.Username) + assert.Equal(t, "s3cur3P@ssw0rd", creds.Password) +} + +func TestDatabaseValkey_Credentials_Reset(t *testing.T) { + client := createMockClient(t) + + httpmock.RegisterRegexpResponder("POST", mockRequestURL(t, "databases/valkey/instances/123/credentials/reset"), httpmock.NewStringResponder(200, "{}")) + + if err := client.ResetValkeyDatabaseCredentials(context.Background(), 123); err != nil { + t.Fatal(err) + } +} + +func TestDatabaseValkey_Patch(t *testing.T) { + client := createMockClient(t) + + httpmock.RegisterRegexpResponder("POST", mockRequestURL(t, "databases/valkey/instances/123/patch"), httpmock.NewStringResponder(200, "{}")) + + if err := client.PatchValkeyDatabase(context.Background(), 123); err != nil { + t.Fatal(err) + } +} + +func TestDatabaseValkey_Suspend(t *testing.T) { + client := createMockClient(t) + + httpmock.RegisterRegexpResponder("POST", mockRequestURL(t, "databases/valkey/instances/123/suspend"), httpmock.NewStringResponder(200, "{}")) + + if err := client.SuspendValkeyDatabase(context.Background(), 123); err != nil { + t.Fatal(err) + } +} + +func TestDatabaseValkey_Resume(t *testing.T) { + client := createMockClient(t) + + httpmock.RegisterRegexpResponder("POST", mockRequestURL(t, "databases/valkey/instances/123/resume"), httpmock.NewStringResponder(200, "{}")) + + if err := client.ResumeValkeyDatabase(context.Background(), 123); err != nil { + t.Fatal(err) + } +} + +func TestDatabaseValkeyConfig_Get(t *testing.T) { + fixtureData, err := fixtures.GetFixture("valkey_database_config_get") + assert.NoError(t, err) + + var base ClientBaseCase + base.SetUp(t) + defer base.TearDown(t) + + base.MockGet("databases/valkey/config", fixtureData) + + config, err := base.Client.GetValkeyDatabaseConfig(context.Background()) + assert.NoError(t, err) + + assert.Equal( + t, + "The hour of day (in UTC) when backup for the service is started. New backup is only started if previous backup has already completed.", + config.BackupHour.Description, + ) + assert.Equal(t, 3, config.BackupHour.Example) + assert.Equal(t, 23, config.BackupHour.Maximum) + assert.Equal(t, 0, config.BackupHour.Minimum) + assert.False(t, config.BackupHour.RequiresRestart) + assert.Equal(t, linodego.DatabaseConfigParamType{"integer", "null"}, config.BackupHour.Type) + + assert.Equal(t, 30, config.BackupMinute.Example) + assert.Equal(t, 59, config.BackupMinute.Maximum) + assert.Equal(t, 0, config.BackupMinute.Minimum) + assert.Equal(t, linodego.DatabaseConfigParamType{"integer", "null"}, config.BackupMinute.Type) + + assert.Equal( + t, + "Determines default pub/sub channels ACL for new users if ACL is not supplied. When this option is not defined, all_channels is assumed to keep backward compatibility. This option doesn't affect Valkey configuration acl-pubsub-default.", + config.ValkeyACLChannelsDefault.Description, + ) + assert.Equal(t, []string{"allchannels", "resetchannels"}, config.ValkeyACLChannelsDefault.Enum) + assert.False(t, config.ValkeyACLChannelsDefault.RequiresRestart) + assert.Equal(t, linodego.DatabaseConfigParamType{"string"}, config.ValkeyACLChannelsDefault.Type) + + assert.True(t, config.FrequentSnapshots.Default) + assert.False(t, config.FrequentSnapshots.RequiresRestart) + assert.Equal(t, linodego.DatabaseConfigParamType{"boolean"}, config.FrequentSnapshots.Type) + + assert.Equal(t, 1, config.ValkeyActiveExpireEffort.Default) + assert.Equal(t, 10, config.ValkeyActiveExpireEffort.Maximum) + assert.Equal(t, 1, config.ValkeyActiveExpireEffort.Minimum) + assert.Equal(t, linodego.DatabaseConfigParamType{"integer"}, config.ValkeyActiveExpireEffort.Type) + + assert.False(t, config.ValkeyActiveDefrag.Default) + assert.Equal(t, linodego.DatabaseConfigParamType{"boolean"}, config.ValkeyActiveDefrag.Type) + + assert.Equal(t, 1, config.ValkeyLFUDecayTime.Default) + assert.Equal(t, 120, config.ValkeyLFUDecayTime.Maximum) + assert.Equal(t, 1, config.ValkeyLFUDecayTime.Minimum) + assert.Equal(t, linodego.DatabaseConfigParamType{"integer"}, config.ValkeyLFUDecayTime.Type) + assert.Equal(t, 10, config.ValkeyLFULogFactor.Default) + assert.Equal(t, 100, config.ValkeyLFULogFactor.Maximum) + assert.Equal(t, 0, config.ValkeyLFULogFactor.Minimum) + assert.Equal(t, linodego.DatabaseConfigParamType{"integer"}, config.ValkeyLFULogFactor.Type) + + assert.Equal(t, "Valkey maxmemory-policy", config.ValkeyMaxmemoryPolicy.Description) + assert.Equal(t, "noeviction", config.ValkeyMaxmemoryPolicy.Default) + assert.Equal( + t, + []string{"noeviction", "allkeys-lru", "volatile-lru", "allkeys-random", "volatile-random", "volatile-ttl", "volatile-lfu", "allkeys-lfu"}, + config.ValkeyMaxmemoryPolicy.Enum, + ) + assert.False(t, config.ValkeyMaxmemoryPolicy.RequiresRestart) + assert.Equal(t, linodego.DatabaseConfigParamType{"string", "null"}, config.ValkeyMaxmemoryPolicy.Type) + + assert.Equal(t, 16, config.ValkeyNumberOfDatabases.Example) + assert.Equal(t, 128, config.ValkeyNumberOfDatabases.Maximum) + assert.Equal(t, 1, config.ValkeyNumberOfDatabases.Minimum) + assert.True(t, config.ValkeyNumberOfDatabases.RequiresRestart) + assert.Equal(t, linodego.DatabaseConfigParamType{"integer"}, config.ValkeyNumberOfDatabases.Type) + + assert.Equal(t, []string{"off", "rdb"}, config.ValkeyPersistence.Enum) + assert.True(t, config.ValkeyPersistence.RequiresRestart) + assert.Equal(t, linodego.DatabaseConfigParamType{"string"}, config.ValkeyPersistence.Type) + + assert.Equal(t, 64, config.ValkeyPubsubClientOutputBufferLimit.Example) + assert.Equal(t, 262144, config.ValkeyPubsubClientOutputBufferLimit.Maximum) + assert.Equal(t, 32, config.ValkeyPubsubClientOutputBufferLimit.Minimum) + assert.Equal(t, linodego.DatabaseConfigParamType{"integer"}, config.ValkeyPubsubClientOutputBufferLimit.Type) + + assert.Equal(t, 300, config.ValkeyTimeout.Default) + assert.Equal(t, 2073600, config.ValkeyTimeout.Maximum) + assert.Equal(t, 0, config.ValkeyTimeout.Minimum) + assert.Equal(t, linodego.DatabaseConfigParamType{"integer"}, config.ValkeyTimeout.Type) +} + +func TestMarshalValkeyCreateOptions(t *testing.T) { + opts := linodego.ValkeyCreateOptions{ + Label: "example-db", + Region: "us-east", + Type: "g6-standard-2", + Engine: "valkey/8", + } + + data, err := json.Marshal(opts) + assert.NoError(t, err) + + var m map[string]interface{} + assert.NoError(t, json.Unmarshal(data, &m)) + + assert.Equal(t, "example-db", m["label"]) + assert.Equal(t, "us-east", m["region"]) + assert.Equal(t, "g6-standard-2", m["type"]) + assert.Equal(t, "valkey/8", m["engine"]) + + // Optional, unset fields should be omitted entirely + assert.NotContains(t, m, "allow_list") + assert.NotContains(t, m, "cluster_size") + assert.NotContains(t, m, "fork") + assert.NotContains(t, m, "engine_config") + assert.NotContains(t, m, "private_network") +} + +func TestMarshalValkeyUpdateOptions_ClearsPrivateNetwork(t *testing.T) { + var nilNetwork *linodego.DatabasePrivateNetwork + opts := linodego.ValkeyUpdateOptions{ + Label: new("renamed-db"), + PrivateNetwork: &nilNetwork, + } + + data, err := json.Marshal(opts) + assert.NoError(t, err) + + var m map[string]interface{} + assert.NoError(t, json.Unmarshal(data, &m)) + + assert.Equal(t, "renamed-db", m["label"]) + assert.Contains(t, m, "private_network") + assert.Nil(t, m["private_network"]) + + // Unset optional fields should still be omitted + assert.NotContains(t, m, "region") + assert.NotContains(t, m, "type") + assert.NotContains(t, m, "version") + assert.NotContains(t, m, "cluster_size") + assert.NotContains(t, m, "updates") + assert.NotContains(t, m, "engine_config") + assert.NotContains(t, m, "allow_list") +} + +func TestMarshalValkeyCreateOptions_ExplicitZeroClusterSize(t *testing.T) { + opts := linodego.ValkeyCreateOptions{ClusterSize: new(0)} + + data, err := json.Marshal(opts) + assert.NoError(t, err) + + var m map[string]interface{} + assert.NoError(t, json.Unmarshal(data, &m)) + assert.Equal(t, float64(0), m["cluster_size"]) +} + +func TestMarshalValkeyUpdateOptions_ExplicitZeroValues(t *testing.T) { + opts := linodego.ValkeyUpdateOptions{ + Label: new(""), + Region: new(""), + Type: new(""), + ClusterSize: new(0), + Version: new(""), + } + + data, err := json.Marshal(opts) + assert.NoError(t, err) + + var m map[string]interface{} + assert.NoError(t, json.Unmarshal(data, &m)) + assert.Equal(t, "", m["label"]) + assert.Equal(t, "", m["region"]) + assert.Equal(t, "", m["type"]) + assert.Equal(t, float64(0), m["cluster_size"]) + assert.Equal(t, "", m["version"]) +} + +func TestMarshalValkeyUpdateOptions_NullableBackupFields(t *testing.T) { + var nullInt *int + nullIntPointer := &nullInt + + testCases := []struct { + name string + engineConfig *linodego.ValkeyDatabaseEngineConfig + expectedJSON string + }{ + { + name: "backup hour omitted", + engineConfig: &linodego.ValkeyDatabaseEngineConfig{}, + expectedJSON: `{"engine_config":{}}`, + }, + { + name: "backup hour null", + engineConfig: &linodego.ValkeyDatabaseEngineConfig{ + BackupHour: nullIntPointer, + }, + expectedJSON: `{"engine_config":{"backup_hour":null}}`, + }, + { + name: "backup hour zero", + engineConfig: &linodego.ValkeyDatabaseEngineConfig{ + BackupHour: new(new(0)), + }, + expectedJSON: `{"engine_config":{"backup_hour":0}}`, + }, + { + name: "backup hour nonzero", + engineConfig: &linodego.ValkeyDatabaseEngineConfig{ + BackupHour: new(new(3)), + }, + expectedJSON: `{"engine_config":{"backup_hour":3}}`, + }, + { + name: "backup minute omitted", + engineConfig: &linodego.ValkeyDatabaseEngineConfig{}, + expectedJSON: `{"engine_config":{}}`, + }, + { + name: "backup minute null", + engineConfig: &linodego.ValkeyDatabaseEngineConfig{ + BackupMinute: nullIntPointer, + }, + expectedJSON: `{"engine_config":{"backup_minute":null}}`, + }, + { + name: "backup minute zero", + engineConfig: &linodego.ValkeyDatabaseEngineConfig{ + BackupMinute: new(new(0)), + }, + expectedJSON: `{"engine_config":{"backup_minute":0}}`, + }, + { + name: "backup minute nonzero", + engineConfig: &linodego.ValkeyDatabaseEngineConfig{ + BackupMinute: new(new(30)), + }, + expectedJSON: `{"engine_config":{"backup_minute":30}}`, + }, + } + + for _, testCase := range testCases { + t.Run(testCase.name, func(t *testing.T) { + data, err := json.Marshal(linodego.ValkeyUpdateOptions{ + EngineConfig: testCase.engineConfig, + }) + assert.NoError(t, err) + assert.JSONEq(t, testCase.expectedJSON, string(data)) + }) + } +} diff --git a/valkey.go b/valkey.go new file mode 100644 index 000000000..abfc42a69 --- /dev/null +++ b/valkey.go @@ -0,0 +1,341 @@ +package linodego + +import ( + "context" + "encoding/json" + "time" + + "github.com/linode/linodego/v2/internal/parseabletime" +) + +// A ValkeyDatabase is an instance of Linode Valkey Managed Databases +type ValkeyDatabase struct { + ID int `json:"id"` + Status DatabaseStatus `json:"status"` + Label string `json:"label"` + Hosts DatabaseHost `json:"hosts"` + Region string `json:"region"` + Type string `json:"type"` + Engine string `json:"engine"` + Version string `json:"version"` + ClusterSize int `json:"cluster_size"` + Platform DatabasePlatform `json:"platform"` + + // Members has dynamic keys so it is a map + Members map[string]DatabaseMemberType `json:"members"` + + SSLConnection bool `json:"ssl_connection"` + Encrypted bool `json:"encrypted"` + AllowList []string `json:"allow_list"` + Created *time.Time `json:"-"` + Updated *time.Time `json:"-"` + Updates DatabaseMaintenanceWindow `json:"updates"` + Fork *DatabaseFork `json:"fork"` + AvailableRestoreTimes []time.Time `json:"-"` + UsedDiskSizeGB *int `json:"used_disk_size_gb"` + TotalDiskSizeGB int `json:"total_disk_size_gb"` + Port int `json:"port"` + + EngineConfig ValkeyDatabaseEngineConfig `json:"engine_config"` + PrivateNetwork *DatabasePrivateNetwork `json:"private_network,omitzero"` +} + +type ValkeyDatabaseEngineConfig struct { + BackupHour **int `json:"backup_hour,omitzero"` + BackupMinute **int `json:"backup_minute,omitzero"` + FrequentSnapshots *bool `json:"frequent_snapshots,omitzero"` + ValkeyACLChannelsDefault *string `json:"valkey_acl_channels_default,omitzero"` + ValkeyActiveExpireEffort *int `json:"valkey_active_expire_effort,omitzero"` + ValkeyActiveDefrag *bool `json:"valkey_activedefrag,omitzero"` + ValkeyLFUDecayTime *int `json:"valkey_lfu_decay_time,omitzero"` + ValkeyLFULogFactor *int `json:"valkey_lfu_log_factor,omitzero"` + ValkeyMaxmemoryPolicy **string `json:"valkey_maxmemory_policy,omitzero"` + ValkeyNumberOfDatabases *int `json:"valkey_number_of_databases,omitzero"` + ValkeyPersistence *string `json:"valkey_persistence,omitzero"` + ValkeyPubsubClientOutputBufferLimit *int `json:"valkey_pubsub_client_output_buffer_limit,omitzero"` + ValkeyTimeout *int `json:"valkey_timeout,omitzero"` +} + +func (d *ValkeyDatabase) UnmarshalJSON(b []byte) error { + type Mask ValkeyDatabase + + p := struct { + *Mask + + Created *parseabletime.ParseableTime `json:"created"` + Updated *parseabletime.ParseableTime `json:"updated"` + AvailableRestoreTimes []parseabletime.ParseableTime `json:"available_restore_times"` + }{ + Mask: (*Mask)(d), + } + + if err := json.Unmarshal(b, &p); err != nil { + return err + } + + d.Created = (*time.Time)(p.Created) + d.Updated = (*time.Time)(p.Updated) + + d.AvailableRestoreTimes = nil + if p.AvailableRestoreTimes != nil { + d.AvailableRestoreTimes = make([]time.Time, len(p.AvailableRestoreTimes)) + for i, t := range p.AvailableRestoreTimes { + d.AvailableRestoreTimes[i] = time.Time(t) + } + } + + return nil +} + +// ValkeyCreateOptions fields are used when creating a new Valkey Database +type ValkeyCreateOptions struct { + Label string `json:"label"` + Region string `json:"region"` + Type string `json:"type"` + Engine string `json:"engine"` + AllowList []string `json:"allow_list,omitzero"` + ClusterSize *int `json:"cluster_size,omitzero"` + + Fork *DatabaseFork `json:"fork,omitzero"` + EngineConfig *ValkeyDatabaseEngineConfig `json:"engine_config,omitzero"` + PrivateNetwork *DatabasePrivateNetwork `json:"private_network,omitzero"` +} + +// ValkeyUpdateOptions fields are used when altering the existing Valkey Database +type ValkeyUpdateOptions struct { + Label *string `json:"label,omitzero"` + Region *string `json:"region,omitzero"` + AllowList []string `json:"allow_list,omitzero"` + Updates *DatabaseMaintenanceWindow `json:"updates,omitzero"` + Type *string `json:"type,omitzero"` + ClusterSize *int `json:"cluster_size,omitzero"` + Version *string `json:"version,omitzero"` + EngineConfig *ValkeyDatabaseEngineConfig `json:"engine_config,omitzero"` + PrivateNetwork **DatabasePrivateNetwork `json:"private_network,omitzero"` +} + +// ValkeyDatabaseCredential is the Root Credentials to access the Linode Managed Database +type ValkeyDatabaseCredential struct { + Username string `json:"username"` + Password string `json:"password"` +} + +// ValkeyDatabaseSSL is the SSL Certificate to access the Linode Managed Valkey Database +type ValkeyDatabaseSSL struct { + CACertificate []byte `json:"ca_certificate"` +} + +// DatabaseConfigParamType handles API metadata "type" values that may be either a single +// string or an array of strings. +type DatabaseConfigParamType []string + +func (t *DatabaseConfigParamType) UnmarshalJSON(b []byte) error { + var single string + if err := json.Unmarshal(b, &single); err == nil { + *t = DatabaseConfigParamType{single} + return nil + } + + var multi []string + if err := json.Unmarshal(b, &multi); err != nil { + return err + } + + *t = DatabaseConfigParamType(multi) + + return nil +} + +type ValkeyDatabaseConfigInfo struct { + BackupHour ValkeyDatabaseConfigInfoBackupHour `json:"backup_hour"` + BackupMinute ValkeyDatabaseConfigInfoBackupMinute `json:"backup_minute"` + FrequentSnapshots ValkeyDatabaseConfigInfoFrequentSnapshots `json:"frequent_snapshots"` + ValkeyACLChannelsDefault ValkeyDatabaseConfigInfoACLChannelsDefault `json:"valkey_acl_channels_default"` + ValkeyActiveExpireEffort ValkeyDatabaseConfigInfoActiveExpireEffort `json:"valkey_active_expire_effort"` + ValkeyActiveDefrag ValkeyDatabaseConfigInfoActiveDefrag `json:"valkey_activedefrag"` + ValkeyLFUDecayTime ValkeyDatabaseConfigInfoLFUDecayTime `json:"valkey_lfu_decay_time"` + ValkeyLFULogFactor ValkeyDatabaseConfigInfoLFULogFactor `json:"valkey_lfu_log_factor"` + ValkeyMaxmemoryPolicy ValkeyDatabaseConfigInfoMaxmemoryPolicy `json:"valkey_maxmemory_policy"` + ValkeyNumberOfDatabases ValkeyDatabaseConfigInfoNumberOfDatabases `json:"valkey_number_of_databases"` + ValkeyPersistence ValkeyDatabaseConfigInfoPersistence `json:"valkey_persistence"` + ValkeyPubsubClientOutputBufferLimit ValkeyDatabaseConfigInfoPubsubClientOutputBufferLimit `json:"valkey_pubsub_client_output_buffer_limit"` + ValkeyTimeout ValkeyDatabaseConfigInfoTimeout `json:"valkey_timeout"` +} + +type ValkeyDatabaseConfigInfoBackupHour struct { + Description string `json:"description"` + Example int `json:"example"` + Maximum int `json:"maximum"` + Minimum int `json:"minimum"` + RequiresRestart bool `json:"requires_restart"` + Type DatabaseConfigParamType `json:"type"` +} + +type ValkeyDatabaseConfigInfoBackupMinute struct { + Description string `json:"description"` + Example int `json:"example"` + Maximum int `json:"maximum"` + Minimum int `json:"minimum"` + RequiresRestart bool `json:"requires_restart"` + Type DatabaseConfigParamType `json:"type"` +} + +type ValkeyDatabaseConfigInfoFrequentSnapshots struct { + Description string `json:"description"` + Default bool `json:"default"` + RequiresRestart bool `json:"requires_restart"` + Type DatabaseConfigParamType `json:"type"` +} + +type ValkeyDatabaseConfigInfoACLChannelsDefault struct { + Description string `json:"description"` + Enum []string `json:"enum"` + RequiresRestart bool `json:"requires_restart"` + Type DatabaseConfigParamType `json:"type"` +} + +type ValkeyDatabaseConfigInfoActiveExpireEffort struct { + Description string `json:"description"` + Default int `json:"default"` + Maximum int `json:"maximum"` + Minimum int `json:"minimum"` + RequiresRestart bool `json:"requires_restart"` + Type DatabaseConfigParamType `json:"type"` +} + +type ValkeyDatabaseConfigInfoActiveDefrag struct { + Description string `json:"description"` + Default bool `json:"default"` + RequiresRestart bool `json:"requires_restart"` + Type DatabaseConfigParamType `json:"type"` +} + +type ValkeyDatabaseConfigInfoLFUDecayTime struct { + Description string `json:"description"` + Default int `json:"default"` + Maximum int `json:"maximum"` + Minimum int `json:"minimum"` + RequiresRestart bool `json:"requires_restart"` + Type DatabaseConfigParamType `json:"type"` +} + +type ValkeyDatabaseConfigInfoLFULogFactor struct { + Description string `json:"description"` + Default int `json:"default"` + Maximum int `json:"maximum"` + Minimum int `json:"minimum"` + RequiresRestart bool `json:"requires_restart"` + Type DatabaseConfigParamType `json:"type"` +} + +type ValkeyDatabaseConfigInfoMaxmemoryPolicy struct { + Description string `json:"description"` + Default string `json:"default"` + Enum []string `json:"enum"` + RequiresRestart bool `json:"requires_restart"` + Type DatabaseConfigParamType `json:"type"` +} + +type ValkeyDatabaseConfigInfoNumberOfDatabases struct { + Description string `json:"description"` + Example int `json:"example"` + Maximum int `json:"maximum"` + Minimum int `json:"minimum"` + RequiresRestart bool `json:"requires_restart"` + Type DatabaseConfigParamType `json:"type"` +} + +type ValkeyDatabaseConfigInfoPersistence struct { + Description string `json:"description"` + Enum []string `json:"enum"` + RequiresRestart bool `json:"requires_restart"` + Type DatabaseConfigParamType `json:"type"` +} + +type ValkeyDatabaseConfigInfoPubsubClientOutputBufferLimit struct { + Description string `json:"description"` + Example int `json:"example"` + Maximum int `json:"maximum"` + Minimum int `json:"minimum"` + RequiresRestart bool `json:"requires_restart"` + Type DatabaseConfigParamType `json:"type"` +} + +type ValkeyDatabaseConfigInfoTimeout struct { + Description string `json:"description"` + Default int `json:"default"` + Maximum int `json:"maximum"` + Minimum int `json:"minimum"` + RequiresRestart bool `json:"requires_restart"` + Type DatabaseConfigParamType `json:"type"` +} + +// GetValkeyDatabaseConfig returns the catalog of configuration options for Valkey databases. +func (c *Client) GetValkeyDatabaseConfig(ctx context.Context) (*ValkeyDatabaseConfigInfo, error) { + return doGETRequest[ValkeyDatabaseConfigInfo](ctx, c, "databases/valkey/config") +} + +// ListValkeyDatabases lists all Valkey Databases associated with the account +func (c *Client) ListValkeyDatabases(ctx context.Context, opts *ListOptions) ([]ValkeyDatabase, error) { + return getPaginatedResults[ValkeyDatabase](ctx, c, "databases/valkey/instances", opts) +} + +// GetValkeyDatabase returns a single Valkey Database matching the id +func (c *Client) GetValkeyDatabase(ctx context.Context, databaseID int) (*ValkeyDatabase, error) { + e := formatAPIPath("databases/valkey/instances/%d", databaseID) + return doGETRequest[ValkeyDatabase](ctx, c, e) +} + +// CreateValkeyDatabase creates a new Valkey Database using the createOpts as configuration, returns the new Valkey Database +func (c *Client) CreateValkeyDatabase(ctx context.Context, opts ValkeyCreateOptions) (*ValkeyDatabase, error) { + return doPOSTRequest[ValkeyDatabase](ctx, c, "databases/valkey/instances", opts) +} + +// DeleteValkeyDatabase deletes an existing Valkey Database with the given id +func (c *Client) DeleteValkeyDatabase(ctx context.Context, databaseID int) error { + e := formatAPIPath("databases/valkey/instances/%d", databaseID) + return doDELETERequest(ctx, c, e) +} + +// UpdateValkeyDatabase updates the given Valkey Database with the provided opts, returns the ValkeyDatabase with the new settings +func (c *Client) UpdateValkeyDatabase(ctx context.Context, databaseID int, opts ValkeyUpdateOptions) (*ValkeyDatabase, error) { + e := formatAPIPath("databases/valkey/instances/%d", databaseID) + return doPUTRequest[ValkeyDatabase](ctx, c, e, opts) +} + +// GetValkeyDatabaseSSL returns the SSL Certificate for the given Valkey Database +func (c *Client) GetValkeyDatabaseSSL(ctx context.Context, databaseID int) (*ValkeyDatabaseSSL, error) { + e := formatAPIPath("databases/valkey/instances/%d/ssl", databaseID) + return doGETRequest[ValkeyDatabaseSSL](ctx, c, e) +} + +// GetValkeyDatabaseCredentials returns the Root Credentials for the given Valkey Database +func (c *Client) GetValkeyDatabaseCredentials(ctx context.Context, databaseID int) (*ValkeyDatabaseCredential, error) { + e := formatAPIPath("databases/valkey/instances/%d/credentials", databaseID) + return doGETRequest[ValkeyDatabaseCredential](ctx, c, e) +} + +// ResetValkeyDatabaseCredentials resets the Root Credentials for the given Valkey Database +func (c *Client) ResetValkeyDatabaseCredentials(ctx context.Context, databaseID int) error { + e := formatAPIPath("databases/valkey/instances/%d/credentials/reset", databaseID) + return doPOSTRequestNoRequestResponseBody(ctx, c, e) +} + +// PatchValkeyDatabase applies security patches and updates to the underlying operating system of the Managed Valkey Database +func (c *Client) PatchValkeyDatabase(ctx context.Context, databaseID int) error { + e := formatAPIPath("databases/valkey/instances/%d/patch", databaseID) + return doPOSTRequestNoRequestResponseBody(ctx, c, e) +} + +// SuspendValkeyDatabase suspends a Valkey Managed Database, releasing idle resources and keeping only necessary data. +// All service data is lost if there are no backups available. +func (c *Client) SuspendValkeyDatabase(ctx context.Context, databaseID int) error { + e := formatAPIPath("databases/valkey/instances/%d/suspend", databaseID) + return doPOSTRequestNoRequestResponseBody(ctx, c, e) +} + +// ResumeValkeyDatabase resumes a suspended Valkey Managed Database +func (c *Client) ResumeValkeyDatabase(ctx context.Context, databaseID int) error { + e := formatAPIPath("databases/valkey/instances/%d/resume", databaseID) + return doPOSTRequestNoRequestResponseBody(ctx, c, e) +} diff --git a/waitfor.go b/waitfor.go index 0d41e59f9..929671a9c 100644 --- a/waitfor.go +++ b/waitfor.go @@ -426,6 +426,14 @@ var databaseStatusHandlers = map[DatabaseEngineType]databaseStatusFunc{ return "", err } + return db.Status, nil + }, + DatabaseEngineTypeValkey: func(ctx context.Context, client Client, dbID int) (DatabaseStatus, error) { + db, err := client.GetValkeyDatabase(ctx, dbID) + if err != nil { + return "", err + } + return db.Status, nil }, }