From 0236dffdc2a0fea7caf79b36869bd0b6a510e972 Mon Sep 17 00:00:00 2001 From: akrzyszt Date: Tue, 21 Apr 2026 15:11:57 +0200 Subject: [PATCH 01/21] [DPS-42278] added support for log destinations api + unit tests --- internal/parseabletime/parseable_time.go | 16 +- monitor_log_destinations.go | 125 ++++++++++++ .../monitor_log_destinations_get.json | 17 ++ .../monitor_log_destinations_list.json | 24 +++ test/unit/monitor_log_destinations_test.go | 180 ++++++++++++++++++ 5 files changed, 355 insertions(+), 7 deletions(-) create mode 100644 monitor_log_destinations.go create mode 100644 test/unit/fixtures/monitor_log_destinations_get.json create mode 100644 test/unit/fixtures/monitor_log_destinations_list.json create mode 100644 test/unit/monitor_log_destinations_test.go diff --git a/internal/parseabletime/parseable_time.go b/internal/parseabletime/parseable_time.go index c471442db..16578b60a 100644 --- a/internal/parseabletime/parseable_time.go +++ b/internal/parseabletime/parseable_time.go @@ -11,12 +11,14 @@ const ( type ParseableTime time.Time func (p *ParseableTime) UnmarshalJSON(b []byte) error { - t, err := time.Parse(`"`+dateLayout+`"`, string(b)) - if err != nil { - return err + var err error + for _, layout := range []string{time.RFC3339, dateLayout} { + var t time.Time + if t, err = time.Parse(`"`+layout+`"`, string(b)); err == nil { + *p = ParseableTime(t) + return nil + } } - - *p = ParseableTime(t) - - return nil + return err } + diff --git a/monitor_log_destinations.go b/monitor_log_destinations.go new file mode 100644 index 000000000..8d2ffcf4e --- /dev/null +++ b/monitor_log_destinations.go @@ -0,0 +1,125 @@ +package linodego + +import ( + "context" + "encoding/json" + "time" + + "github.com/linode/linodego/internal/parseabletime" +) + +// LogsDestinationType represents the type of a logs destination. +type LogsDestinationType string + +const ( + LogsDestinationTypeAkamaiObjectStorage LogsDestinationType = "akamai_object_storage" +) + +// LogsDestinationStatus represents the status of a logs destination. +type LogsDestinationStatus string + +const ( + LogsDestinationStatusActive LogsDestinationStatus = "active" + LogsDestinationStatusInactive LogsDestinationStatus = "inactive" +) + +// LogsDestinationDetails represents the details block returned in a LogsDestination response. +type LogsDestinationDetails struct { + AccessKeyID string `json:"access_key_id"` + BucketName string `json:"bucket_name"` + Host string `json:"host"` + Path string `json:"path"` +} + +// LogsDestinationDetailsCreateOptions represents the details block used when creating a LogsDestination. +type LogsDestinationDetailsCreateOptions struct { + AccessKeyID string `json:"access_key_id"` + AccessKeySecret string `json:"access_key_secret"` + BucketName string `json:"bucket_name"` + Host string `json:"host"` + Path *string `json:"path,omitempty"` +} + +// LogsDestination represents a logs destination object. +type LogsDestination struct { + Created *time.Time `json:"-"` + CreatedBy string `json:"created_by"` + Details LogsDestinationDetails `json:"details"` + ID int `json:"id"` + Label string `json:"label"` + Status LogsDestinationStatus `json:"status"` + Type LogsDestinationType `json:"type"` + Updated *time.Time `json:"-"` + UpdatedBy string `json:"updated_by"` + Version int `json:"version"` +} + +// UnmarshalJSON implements the json.Unmarshaler interface for LogsDestination. +func (i *LogsDestination) UnmarshalJSON(b []byte) error { + type Mask LogsDestination + + p := struct { + *Mask + + Created *parseabletime.ParseableTime `json:"created"` + Updated *parseabletime.ParseableTime `json:"updated"` + }{ + Mask: (*Mask)(i), + } + + if err := json.Unmarshal(b, &p); err != nil { + return err + } + + i.Created = (*time.Time)(p.Created) + i.Updated = (*time.Time)(p.Updated) + + return nil +} + +// LogsDestinationCreateOptions are the options used to create a new logs destination. +type LogsDestinationCreateOptions struct { + Label string `json:"label"` + Type LogsDestinationType `json:"type"` + Details LogsDestinationDetailsCreateOptions `json:"details"` +} + +// LogsDestinationUpdateOptions are the options used to update a logs destination. +type LogsDestinationUpdateOptions struct { + Label string `json:"label,omitempty"` + Details *LogsDestinationDetails `json:"details,omitempty"` +} + +// ListLogsDestinations returns a paginated list of logs destinations. +func (c *Client) ListLogsDestinations(ctx context.Context, opts *ListOptions) ([]LogsDestination, error) { + return getPaginatedResults[LogsDestination](ctx, c, "monitor/streams/destinations", opts) +} + +// GetLogsDestination gets a single logs destination by ID. +func (c *Client) GetLogsDestination(ctx context.Context, destinationID int) (*LogsDestination, error) { + e := formatAPIPath("monitor/streams/destinations/%d", destinationID) + return doGETRequest[LogsDestination](ctx, c, e) +} + +// CreateLogsDestination creates a new logs destination. +func (c *Client) CreateLogsDestination(ctx context.Context, opts LogsDestinationCreateOptions) (*LogsDestination, error) { + return doPOSTRequest[LogsDestination](ctx, c, "monitor/streams/destinations", opts) +} + +// UpdateLogsDestination updates a logs destination. +func (c *Client) UpdateLogsDestination(ctx context.Context, destinationID int, opts LogsDestinationUpdateOptions) (*LogsDestination, error) { + e := formatAPIPath("monitor/streams/destinations/%d", destinationID) + return doPUTRequest[LogsDestination](ctx, c, e, opts) +} + +// DeleteLogsDestination deletes a logs destination. +func (c *Client) DeleteLogsDestination(ctx context.Context, destinationID int) error { + e := formatAPIPath("monitor/streams/destinations/%d", destinationID) + return doDELETERequest(ctx, c, e) +} + +// ListLogsDestinationHistory returns the version history for a logs destination. +func (c *Client) ListLogsDestinationHistory(ctx context.Context, destinationID int, opts *ListOptions) ([]LogsDestination, error) { + e := formatAPIPath("monitor/streams/destinations/%d/history", destinationID) + return getPaginatedResults[LogsDestination](ctx, c, e, opts) +} diff --git a/test/unit/fixtures/monitor_log_destinations_get.json b/test/unit/fixtures/monitor_log_destinations_get.json new file mode 100644 index 000000000..fb528e8f7 --- /dev/null +++ b/test/unit/fixtures/monitor_log_destinations_get.json @@ -0,0 +1,17 @@ +{ + "created": "2025-07-20T09:45:13Z", + "created_by": "John Q. Linode", + "details": { + "access_key_id": "123", + "bucket_name": "primary-bucket", + "host": "primary-bucket-1.us-iad-12.linodeobjects.com", + "path": "audit-logs" + }, + "id": 12345, + "label": "OBJ_logs_destination", + "status": "active", + "type": "akamai_object_storage", + "updated": "2025-07-21T12:41:09Z", + "updated_by": "Jane Q. Linode", + "version": 1 +} \ No newline at end of file diff --git a/test/unit/fixtures/monitor_log_destinations_list.json b/test/unit/fixtures/monitor_log_destinations_list.json new file mode 100644 index 000000000..b6b469216 --- /dev/null +++ b/test/unit/fixtures/monitor_log_destinations_list.json @@ -0,0 +1,24 @@ +{ + "data":[ + { + "created": "2025-07-20T09:45:13Z", + "created_by": "John Q. Linode", + "details": { + "access_key_id": "123", + "bucket_name": "primary-bucket", + "host": "primary-bucket-1.us-iad-12.linodeobjects.com", + "path": "audit-logs" + }, + "id": 12345, + "label": "OBJ_logs_destination", + "status": "active", + "type": "akamai_object_storage", + "updated": "2025-07-21T12:41:09Z", + "updated_by": "Jane Q. Linode", + "version": 1 + } + ], + "page":1, + "pages":1, + "results":1 +} \ No newline at end of file diff --git a/test/unit/monitor_log_destinations_test.go b/test/unit/monitor_log_destinations_test.go new file mode 100644 index 000000000..1361ae7ae --- /dev/null +++ b/test/unit/monitor_log_destinations_test.go @@ -0,0 +1,180 @@ +package unit + +import ( + "context" + "testing" + + "github.com/linode/linodego" + "github.com/stretchr/testify/assert" +) + +const ( + testLogsDestinationID = 12345 +) + +func TestCreateLogsDestination(t *testing.T) { + fixtureData, err := fixtures.GetFixture("monitor_log_destinations_get") + assert.NoError(t, err) + + var base ClientBaseCase + base.SetUp(t) + defer base.TearDown(t) + + base.MockPost("monitor/streams/destinations", fixtureData) + + path := "audit-logs" + opts := linodego.LogsDestinationCreateOptions{ + Label: "my-logs-destination", + Type: linodego.LogsDestinationTypeAkamaiObjectStorage, + Details: linodego.LogsDestinationDetailsCreateOptions{ + AccessKeyID: "123", + BucketName: "primary-bucket", + Host: "primary-bucket-1.us-east-12.linodeobjects.com", + Path: &path, + }, + } + + dest, err := base.Client.CreateLogsDestination(context.Background(), opts) + assert.NoError(t, err) + assert.NotNil(t, dest) + assert.Equal(t, testLogsDestinationID, dest.ID) + assert.Equal(t, "OBJ_logs_destination", dest.Label) + assert.Equal(t, linodego.LogsDestinationStatusActive, dest.Status) + assert.Equal(t, linodego.LogsDestinationTypeAkamaiObjectStorage, dest.Type) + assert.Equal(t, "123", string(dest.Details.AccessKeyID)) + assert.Equal(t, "primary-bucket", dest.Details.BucketName) + assert.Equal(t, "primary-bucket-1.us-iad-12.linodeobjects.com", dest.Details.Host) + assert.Equal(t, "audit-logs", dest.Details.Path) + assert.NotNil(t, dest.Created) + assert.NotNil(t, dest.Updated) +} + +func TestCreateLogsDestination_NoPath(t *testing.T) { + fixtureData, err := fixtures.GetFixture("monitor_log_destinations_get") + assert.NoError(t, err) + + var base ClientBaseCase + base.SetUp(t) + defer base.TearDown(t) + + base.MockPost("monitor/streams/destinations", fixtureData) + + opts := linodego.LogsDestinationCreateOptions{ + Label: "my-logs-destination", + Type: linodego.LogsDestinationTypeAkamaiObjectStorage, + Details: linodego.LogsDestinationDetailsCreateOptions{ + AccessKeyID: "1ABCD23EFG4HIJKLMNO5", + AccessKeySecret: "1aB2CD3e4fgHi5JK6lmnop7qR8STU9VxYzabcdefHh", + BucketName: "primary-bucket", + Host: "primary-bucket-1.us-east-12.linodeobjects.com", + // Path intentionally omitted + }, + } + + dest, err := base.Client.CreateLogsDestination(context.Background(), opts) + assert.NoError(t, err) + assert.NotNil(t, dest) + assert.Equal(t, testLogsDestinationID, dest.ID) +} + +func TestGetLogsDestination(t *testing.T) { + fixtureData, err := fixtures.GetFixture("monitor_log_destinations_get") + assert.NoError(t, err) + + var base ClientBaseCase + base.SetUp(t) + defer base.TearDown(t) + + base.MockGet("monitor/streams/destinations/12345", fixtureData) + + dest, err := base.Client.GetLogsDestination(context.Background(), testLogsDestinationID) + assert.NoError(t, err) + assert.NotNil(t, dest) + assert.Equal(t, testLogsDestinationID, dest.ID) + assert.Equal(t, "OBJ_logs_destination", dest.Label) + assert.Equal(t, linodego.LogsDestinationStatusActive, dest.Status) + assert.Equal(t, linodego.LogsDestinationTypeAkamaiObjectStorage, dest.Type) + assert.Equal(t, "John Q. Linode", dest.CreatedBy) + assert.Equal(t, "Jane Q. Linode", dest.UpdatedBy) + assert.Equal(t, 1, dest.Version) + assert.Equal(t, "123", string(dest.Details.AccessKeyID)) + assert.Equal(t, "primary-bucket", dest.Details.BucketName) + assert.Equal(t, "primary-bucket-1.us-iad-12.linodeobjects.com", dest.Details.Host) + assert.Equal(t, "audit-logs", dest.Details.Path) + assert.NotNil(t, dest.Created) + assert.NotNil(t, dest.Updated) +} + +func TestListLogsDestinations(t *testing.T) { + fixtureData, err := fixtures.GetFixture("monitor_log_destinations_list") + assert.NoError(t, err) + + var base ClientBaseCase + base.SetUp(t) + defer base.TearDown(t) + + base.MockGet("monitor/streams/destinations", fixtureData) + + dests, err := base.Client.ListLogsDestinations(context.Background(), nil) + assert.NoError(t, err) + assert.Len(t, dests, 1) + assert.Equal(t, testLogsDestinationID, dests[0].ID) + assert.Equal(t, "OBJ_logs_destination", dests[0].Label) + assert.Equal(t, linodego.LogsDestinationStatusActive, dests[0].Status) + assert.Equal(t, linodego.LogsDestinationTypeAkamaiObjectStorage, dests[0].Type) + assert.Equal(t, "123", string(dests[0].Details.AccessKeyID)) +} + +func TestUpdateLogsDestination(t *testing.T) { + fixtureData, err := fixtures.GetFixture("monitor_log_destinations_get") + assert.NoError(t, err) + + var base ClientBaseCase + base.SetUp(t) + defer base.TearDown(t) + + base.MockPut("monitor/streams/destinations/12345", fixtureData) + + opts := linodego.LogsDestinationUpdateOptions{ + Label: "my-logs-destination-renamed", + } + + dest, err := base.Client.UpdateLogsDestination(context.Background(), testLogsDestinationID, opts) + assert.NoError(t, err) + assert.NotNil(t, dest) +} + +func TestDeleteLogsDestination(t *testing.T) { + var base ClientBaseCase + base.SetUp(t) + defer base.TearDown(t) + + base.MockDelete("monitor/streams/destinations/12345", nil) + + err := base.Client.DeleteLogsDestination(context.Background(), testLogsDestinationID) + assert.NoError(t, err) +} + +func TestListLogsDestinationHistory(t *testing.T) { + fixtureData, err := fixtures.GetFixture("monitor_log_destinations_list") + assert.NoError(t, err) + + var base ClientBaseCase + base.SetUp(t) + defer base.TearDown(t) + + base.MockGet("monitor/streams/destinations/12345/history", fixtureData) + + history, err := base.Client.ListLogsDestinationHistory(context.Background(), testLogsDestinationID, nil) + assert.NoError(t, err) + assert.Len(t, history, 1) + assert.Equal(t, testLogsDestinationID, history[0].ID) + assert.Equal(t, "OBJ_logs_destination", history[0].Label) + assert.Equal(t, linodego.LogsDestinationStatusActive, history[0].Status) + assert.Equal(t, linodego.LogsDestinationTypeAkamaiObjectStorage, history[0].Type) + assert.Equal(t, 1, history[0].Version) + assert.Equal(t, "123", string(history[0].Details.AccessKeyID)) + assert.Equal(t, "primary-bucket", history[0].Details.BucketName) + assert.NotNil(t, history[0].Created) + assert.NotNil(t, history[0].Updated) +} From 1b6d151d89565e9704fc81242a759e1178b444ae Mon Sep 17 00:00:00 2001 From: akrzyszt Date: Wed, 22 Apr 2026 18:09:09 +0200 Subject: [PATCH 02/21] [DPS-42278] integration tests + review tweaks --- monitor_log_destinations.go | 4 +- ...tLogsDestination_Create_InvalidSecret.yaml | 369 +++++++++ ...estLogsDestination_Create_InvalidType.yaml | 369 +++++++++ .../fixtures/TestLogsDestination_Delete.yaml | 614 ++++++++++++++ .../fixtures/TestLogsDestination_Get.yaml | 648 +++++++++++++++ .../fixtures/TestLogsDestination_List.yaml | 648 +++++++++++++++ .../TestLogsDestination_UpdateAndHistory.yaml | 782 ++++++++++++++++++ .../monitor_log_destinations_test.go | 262 ++++++ 8 files changed, 3694 insertions(+), 2 deletions(-) create mode 100644 test/integration/fixtures/TestLogsDestination_Create_InvalidSecret.yaml create mode 100644 test/integration/fixtures/TestLogsDestination_Create_InvalidType.yaml create mode 100644 test/integration/fixtures/TestLogsDestination_Delete.yaml create mode 100644 test/integration/fixtures/TestLogsDestination_Get.yaml create mode 100644 test/integration/fixtures/TestLogsDestination_List.yaml create mode 100644 test/integration/fixtures/TestLogsDestination_UpdateAndHistory.yaml create mode 100644 test/integration/monitor_log_destinations_test.go diff --git a/monitor_log_destinations.go b/monitor_log_destinations.go index 8d2ffcf4e..e6ac86d8b 100644 --- a/monitor_log_destinations.go +++ b/monitor_log_destinations.go @@ -86,8 +86,8 @@ type LogsDestinationCreateOptions struct { // LogsDestinationUpdateOptions are the options used to update a logs destination. type LogsDestinationUpdateOptions struct { - Label string `json:"label,omitempty"` - Details *LogsDestinationDetails `json:"details,omitempty"` + Label string `json:"label,omitempty"` + Details *LogsDestinationDetailsCreateOptions `json:"details,omitempty"` } // ListLogsDestinations returns a paginated list of logs destinations. diff --git a/test/integration/fixtures/TestLogsDestination_Create_InvalidSecret.yaml b/test/integration/fixtures/TestLogsDestination_Create_InvalidSecret.yaml new file mode 100644 index 000000000..8b6bec83b --- /dev/null +++ b/test/integration/fixtures/TestLogsDestination_Create_InvalidSecret.yaml @@ -0,0 +1,369 @@ +--- +version: 1 +interactions: +- request: + body: '{"region":"us-southeast","label":"go-test-logs-destination-1776935214535455000","acl":"private","cors_enabled":false}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets + method: POST + response: + body: '{"hostname": "go-test-logs-destination-1776935214535455000.us-southeast-1.linodeobjects.com", + "label": "go-test-logs-destination-1776935214535455000", "created": "2018-01-02T03:04:05", + "region": "us-southeast", "cluster": "us-southeast-1", "size": 0, "objects": + 0, "endpoint_type": "E0", "s3_endpoint": "us-southeast-1.linodeobjects.com"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "338" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 23 Apr 2026 09:06:55 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "60" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" +- request: + body: '{"label":"go-test-logs-destination-1776935215819212000"}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/keys + method: POST + response: + body: '{"id": 3392840, "label": "go-test-logs-destination-1776935215819212000", + "access_key": "[SANITIZED]", "secret_key": "[SANITIZED]", + "limited": false, "bucket_access": null, "regions": [{"id": "us-east", "s3_endpoint": + "us-east-1.linodeobjects.com", "endpoint_type": "E0"}, {"id": "us-iad", "s3_endpoint": + "us-iad-10.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-lax", "s3_endpoint": + "us-lax-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-lax", "s3_endpoint": + "us-lax-4.linodeobjects.com", "endpoint_type": "E3"}, {"id": "us-mia", "s3_endpoint": + "us-mia-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-ord", "s3_endpoint": + "us-ord-10.linodeobjects.com", "endpoint_type": "E3"}, {"id": "us-ord", "s3_endpoint": + "us-ord-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-sea", "s3_endpoint": + "us-sea-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-southeast", + "s3_endpoint": "us-southeast-1.linodeobjects.com", "endpoint_type": "E0"}]}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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, 23 Apr 2026 09:06:58 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - object_storage:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "60" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" +- request: + body: '{"label":"go-test-logs-destination-1776935218797837000","type":"akamai_object_storage","details":{"access_key_id":"1","access_key_secret":"1","bucket_name":"go-test-logs-destination-1776935214535455000","host":"go-test-logs-destination-1776935214535455000.us-southeast-1.linodeobjects.com"}}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/monitor/streams/destinations + method: POST + response: + body: '{"errors": [{"reason": "Invalid access key id or secret key", "field": + "access_key_id/access_secret_key"}]}' + headers: + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Content-Length: + - "107" + Content-Type: + - application/json + Expires: + - Thu, 23 Apr 2026 09:06:59 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + X-Accepted-Oauth-Scopes: + - monitor:read_write + X-Frame-Options: + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "1840" + status: 400 Bad Request + code: 400 + duration: "" +- request: + body: "" + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/keys/3392840 + 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, 23 Apr 2026 09:07:00 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "60" + 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/object-storage/buckets/us-southeast/go-test-logs-destination-1776935214535455000/object-list + method: GET + response: + body: '{"data": [], "next_marker": null, "is_truncated": false}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "56" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 23 Apr 2026 09:07:01 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage: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/object-storage/buckets/us-southeast/go-test-logs-destination-1776935214535455000 + 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, 23 Apr 2026 09:07:05 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "1840" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" diff --git a/test/integration/fixtures/TestLogsDestination_Create_InvalidType.yaml b/test/integration/fixtures/TestLogsDestination_Create_InvalidType.yaml new file mode 100644 index 000000000..358bd43bc --- /dev/null +++ b/test/integration/fixtures/TestLogsDestination_Create_InvalidType.yaml @@ -0,0 +1,369 @@ +--- +version: 1 +interactions: +- request: + body: '{"region":"us-southeast","label":"go-test-logs-destination-1776935225070012000","acl":"private","cors_enabled":false}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets + method: POST + response: + body: '{"hostname": "go-test-logs-destination-1776935225070012000.us-southeast-1.linodeobjects.com", + "label": "go-test-logs-destination-1776935225070012000", "created": "2018-01-02T03:04:05", + "region": "us-southeast", "cluster": "us-southeast-1", "size": 0, "objects": + 0, "endpoint_type": "E0", "s3_endpoint": "us-southeast-1.linodeobjects.com"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "338" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 23 Apr 2026 09:07:07 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "60" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" +- request: + body: '{"label":"go-test-logs-destination-1776935227025993000"}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/keys + method: POST + response: + body: '{"id": 3392842, "label": "go-test-logs-destination-1776935227025993000", + "access_key": "[SANITIZED]", "secret_key": "[SANITIZED]", + "limited": false, "bucket_access": null, "regions": [{"id": "us-east", "s3_endpoint": + "us-east-1.linodeobjects.com", "endpoint_type": "E0"}, {"id": "us-iad", "s3_endpoint": + "us-iad-10.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-lax", "s3_endpoint": + "us-lax-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-lax", "s3_endpoint": + "us-lax-4.linodeobjects.com", "endpoint_type": "E3"}, {"id": "us-mia", "s3_endpoint": + "us-mia-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-ord", "s3_endpoint": + "us-ord-10.linodeobjects.com", "endpoint_type": "E3"}, {"id": "us-ord", "s3_endpoint": + "us-ord-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-sea", "s3_endpoint": + "us-sea-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-southeast", + "s3_endpoint": "us-southeast-1.linodeobjects.com", "endpoint_type": "E0"}]}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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, 23 Apr 2026 09:07:09 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - object_storage:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "60" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" +- request: + body: '{"label":"go-test-logs-destination-1776935229407727000","type":"invalid_type","details":{"access_key_id":"7YJAWT8024PHAT0JP158","access_key_secret":"SvXbo4kaCGZvNOlWdij0nKkZbyQus2Z0kpxHE1bK","bucket_name":"go-test-logs-destination-1776935225070012000","host":"go-test-logs-destination-1776935225070012000.us-southeast-1.linodeobjects.com"}}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/monitor/streams/destinations + method: POST + response: + body: '{"errors": [{"reason": "Must be one of akamai_object_storage, custom_https", + "field": "type"}]}' + headers: + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Content-Length: + - "95" + Content-Type: + - application/json + Expires: + - Thu, 23 Apr 2026 09:07:09 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + X-Accepted-Oauth-Scopes: + - monitor:read_write + X-Frame-Options: + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "1840" + status: 400 Bad Request + code: 400 + duration: "" +- request: + body: "" + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/keys/3392842 + 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, 23 Apr 2026 09:07:10 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "60" + 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/object-storage/buckets/us-southeast/go-test-logs-destination-1776935225070012000/object-list + method: GET + response: + body: '{"data": [], "next_marker": null, "is_truncated": false}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "56" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 23 Apr 2026 09:07:11 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage: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/object-storage/buckets/us-southeast/go-test-logs-destination-1776935225070012000 + 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, 23 Apr 2026 09:07:15 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "1840" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" diff --git a/test/integration/fixtures/TestLogsDestination_Delete.yaml b/test/integration/fixtures/TestLogsDestination_Delete.yaml new file mode 100644 index 000000000..8b8ab5eff --- /dev/null +++ b/test/integration/fixtures/TestLogsDestination_Delete.yaml @@ -0,0 +1,614 @@ +--- +version: 1 +interactions: +- request: + body: '{"region":"us-southeast","label":"go-test-logs-destination-1776935168925089000","acl":"private","cors_enabled":false}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets + method: POST + response: + body: '{"hostname": "go-test-logs-destination-1776935168925089000.us-southeast-1.linodeobjects.com", + "label": "go-test-logs-destination-1776935168925089000", "created": "2018-01-02T03:04:05", + "region": "us-southeast", "cluster": "us-southeast-1", "size": 0, "objects": + 0, "endpoint_type": "E0", "s3_endpoint": "us-southeast-1.linodeobjects.com"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "338" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 23 Apr 2026 09:06:11 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "60" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" +- request: + body: '{"label":"go-test-logs-destination-1776935170909766000"}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/keys + method: POST + response: + body: '{"id": 3392832, "label": "go-test-logs-destination-1776935170909766000", + "access_key": "[SANITIZED]", "secret_key": "[SANITIZED]", + "limited": false, "bucket_access": null, "regions": [{"id": "us-east", "s3_endpoint": + "us-east-1.linodeobjects.com", "endpoint_type": "E0"}, {"id": "us-iad", "s3_endpoint": + "us-iad-10.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-lax", "s3_endpoint": + "us-lax-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-lax", "s3_endpoint": + "us-lax-4.linodeobjects.com", "endpoint_type": "E3"}, {"id": "us-mia", "s3_endpoint": + "us-mia-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-ord", "s3_endpoint": + "us-ord-10.linodeobjects.com", "endpoint_type": "E3"}, {"id": "us-ord", "s3_endpoint": + "us-ord-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-sea", "s3_endpoint": + "us-sea-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-southeast", + "s3_endpoint": "us-southeast-1.linodeobjects.com", "endpoint_type": "E0"}]}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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, 23 Apr 2026 09:06:13 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - object_storage:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "60" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" +- request: + body: '{"label":"go-test-logs-destination-1776935173787849000","type":"akamai_object_storage","details":{"access_key_id":"HJCUA2PW2RBVQ65NJ80G","access_key_secret":"6ZCgt2eLnuvBkrpmZYPXg4QkZDY7a6gjUrzQQsnh","bucket_name":"go-test-logs-destination-1776935168925089000","host":"go-test-logs-destination-1776935168925089000.us-southeast-1.linodeobjects.com"}}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/monitor/streams/destinations + method: POST + response: + body: '{"id": 288, "label": "go-test-logs-destination-1776935173787849000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-destination-1776935168925089000.us-southeast-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1776935168925089000", "access_key_id": + "HJCUA2PW2RBVQ65NJ80G"}, "version": 1, "status": "active", "created_by": "akrzyszt_dola_testnet_admin", + "created": "2018-01-02T03:04:05Z", "updated_by": "akrzyszt_dola_testnet_admin", + "updated": "2018-01-02T03:04:05Z"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "501" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 23 Apr 2026 09:06:14 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - monitor: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/monitor/streams/destinations/288 + 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, 23 Apr 2026 09:06:14 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - monitor: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/monitor/streams/destinations/288 + method: GET + response: + body: '{"errors": [{"reason": "Destination not found"}]}' + headers: + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Length: + - "49" + Content-Type: + - application/json + Expires: + - Thu, 23 Apr 2026 09:06:15 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - monitor:read_only + X-Frame-Options: + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "1840" + status: 404 Not Found + code: 404 + 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/monitor/streams/destinations/288 + method: GET + response: + body: '{"errors": [{"reason": "Destination not found"}]}' + headers: + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Length: + - "49" + Content-Type: + - application/json + Expires: + - Thu, 23 Apr 2026 09:06:15 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - monitor:read_only + X-Frame-Options: + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "1840" + status: 404 Not Found + code: 404 + 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/object-storage/keys/3392832 + 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, 23 Apr 2026 09:06:16 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "60" + 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/object-storage/buckets/us-southeast/go-test-logs-destination-1776935168925089000/object-list + method: GET + response: + body: '{"data": [{"name": "cloud-logs-test-connection-20260423T090614", "size": + 9, "last_modified": "2018-01-02T03:04:05.385Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}], "next_marker": null, "is_truncated": + false}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "259" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 23 Apr 2026 09:06:18 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage: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: '{"name":"cloud-logs-test-connection-20260423T090614","method":"DELETE","expires_in":360}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1776935168925089000/object-url + method: POST + response: + body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1776935168925089000/cloud-logs-test-connection-20260423T090614?Signature=La29qMBPrSnTNf%2BaF%2B4u%2BvEiWvw%3D&Expires=1776935539&AWSAccessKeyID=SANITIZED", + "exists": true}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "261" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 23 Apr 2026 09:06:19 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage: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/object-storage/buckets/us-southeast/go-test-logs-destination-1776935168925089000 + 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, 23 Apr 2026 09:06:23 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "1840" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" diff --git a/test/integration/fixtures/TestLogsDestination_Get.yaml b/test/integration/fixtures/TestLogsDestination_Get.yaml new file mode 100644 index 000000000..81303b94c --- /dev/null +++ b/test/integration/fixtures/TestLogsDestination_Get.yaml @@ -0,0 +1,648 @@ +--- +version: 1 +interactions: +- request: + body: '{"region":"us-southeast","label":"go-test-logs-destination-1776935183515044000","acl":"private","cors_enabled":false}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets + method: POST + response: + body: '{"hostname": "go-test-logs-destination-1776935183515044000.us-southeast-1.linodeobjects.com", + "label": "go-test-logs-destination-1776935183515044000", "created": "2018-01-02T03:04:05", + "region": "us-southeast", "cluster": "us-southeast-1", "size": 0, "objects": + 0, "endpoint_type": "E0", "s3_endpoint": "us-southeast-1.linodeobjects.com"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "338" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 23 Apr 2026 09:06:25 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "60" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" +- request: + body: '{"label":"go-test-logs-destination-1776935185523240000"}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/keys + method: POST + response: + body: '{"id": 3392834, "label": "go-test-logs-destination-1776935185523240000", + "access_key": "[SANITIZED]", "secret_key": "[SANITIZED]", + "limited": false, "bucket_access": null, "regions": [{"id": "us-east", "s3_endpoint": + "us-east-1.linodeobjects.com", "endpoint_type": "E0"}, {"id": "us-iad", "s3_endpoint": + "us-iad-10.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-lax", "s3_endpoint": + "us-lax-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-lax", "s3_endpoint": + "us-lax-4.linodeobjects.com", "endpoint_type": "E3"}, {"id": "us-mia", "s3_endpoint": + "us-mia-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-ord", "s3_endpoint": + "us-ord-10.linodeobjects.com", "endpoint_type": "E3"}, {"id": "us-ord", "s3_endpoint": + "us-ord-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-sea", "s3_endpoint": + "us-sea-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-southeast", + "s3_endpoint": "us-southeast-1.linodeobjects.com", "endpoint_type": "E0"}]}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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, 23 Apr 2026 09:06:28 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - object_storage:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "60" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" +- request: + body: '{"label":"go-test-logs-destination-1776935187952980000","type":"akamai_object_storage","details":{"access_key_id":"Z08WJ4808OLDVKQQC2WQ","access_key_secret":"jPeKCLARMxLZ6yjhqsQj5HU85PQKqHVytvZjS3ak","bucket_name":"go-test-logs-destination-1776935183515044000","host":"go-test-logs-destination-1776935183515044000.us-southeast-1.linodeobjects.com"}}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/monitor/streams/destinations + method: POST + response: + body: '{"id": 289, "label": "go-test-logs-destination-1776935187952980000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-destination-1776935183515044000.us-southeast-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1776935183515044000", "access_key_id": + "Z08WJ4808OLDVKQQC2WQ"}, "version": 1, "status": "active", "created_by": "akrzyszt_dola_testnet_admin", + "created": "2018-01-02T03:04:05Z", "updated_by": "akrzyszt_dola_testnet_admin", + "updated": "2018-01-02T03:04:05Z"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "501" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 23 Apr 2026 09:06:28 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - monitor: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/monitor/streams/destinations/289 + method: GET + response: + body: '{"id": 289, "label": "go-test-logs-destination-1776935187952980000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-destination-1776935183515044000.us-southeast-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1776935183515044000", "access_key_id": + "Z08WJ4808OLDVKQQC2WQ"}, "version": 1, "status": "active", "created_by": "akrzyszt_dola_testnet_admin", + "created": "2018-01-02T03:04:05Z", "updated_by": "akrzyszt_dola_testnet_admin", + "updated": "2018-01-02T03:04:05Z"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "501" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 23 Apr 2026 09:06:29 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - monitor: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/monitor/streams/destinations/289 + method: GET + response: + body: '{"id": 289, "label": "go-test-logs-destination-1776935187952980000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-destination-1776935183515044000.us-southeast-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1776935183515044000", "access_key_id": + "Z08WJ4808OLDVKQQC2WQ"}, "version": 1, "status": "active", "created_by": "akrzyszt_dola_testnet_admin", + "created": "2018-01-02T03:04:05Z", "updated_by": "akrzyszt_dola_testnet_admin", + "updated": "2018-01-02T03:04:05Z"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "501" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 23 Apr 2026 09:06:29 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - monitor: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/monitor/streams/destinations/289 + 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, 23 Apr 2026 09:06:29 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - monitor: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/object-storage/keys/3392834 + 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, 23 Apr 2026 09:06:30 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "60" + 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/object-storage/buckets/us-southeast/go-test-logs-destination-1776935183515044000/object-list + method: GET + response: + body: '{"data": [{"name": "cloud-logs-test-connection-20260423T090628", "size": + 9, "last_modified": "2018-01-02T03:04:05.576Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}], "next_marker": null, "is_truncated": + false}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "259" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 23 Apr 2026 09:06:31 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage: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: '{"name":"cloud-logs-test-connection-20260423T090628","method":"DELETE","expires_in":360}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1776935183515044000/object-url + method: POST + response: + body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1776935183515044000/cloud-logs-test-connection-20260423T090628?Signature=RQ%2FMxFwUCSnFctDtZFiWxO4Aw0k%3D&Expires=1776935553&AWSAccessKeyID=SANITIZED", + "exists": true}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "257" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 23 Apr 2026 09:06:33 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage: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/object-storage/buckets/us-southeast/go-test-logs-destination-1776935183515044000 + 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, 23 Apr 2026 09:06:37 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "1840" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" diff --git a/test/integration/fixtures/TestLogsDestination_List.yaml b/test/integration/fixtures/TestLogsDestination_List.yaml new file mode 100644 index 000000000..c94552470 --- /dev/null +++ b/test/integration/fixtures/TestLogsDestination_List.yaml @@ -0,0 +1,648 @@ +--- +version: 1 +interactions: +- request: + body: '{"region":"us-southeast","label":"go-test-logs-destination-1776935154478233000","acl":"private","cors_enabled":false}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets + method: POST + response: + body: '{"hostname": "go-test-logs-destination-1776935154478233000.us-southeast-1.linodeobjects.com", + "label": "go-test-logs-destination-1776935154478233000", "created": "2018-01-02T03:04:05", + "region": "us-southeast", "cluster": "us-southeast-1", "size": 0, "objects": + 0, "endpoint_type": "E0", "s3_endpoint": "us-southeast-1.linodeobjects.com"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "338" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 23 Apr 2026 09:05:57 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "60" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" +- request: + body: '{"label":"go-test-logs-destination-1776935157161258000"}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/keys + method: POST + response: + body: '{"id": 3392828, "label": "go-test-logs-destination-1776935157161258000", + "access_key": "[SANITIZED]", "secret_key": "[SANITIZED]", + "limited": false, "bucket_access": null, "regions": [{"id": "us-east", "s3_endpoint": + "us-east-1.linodeobjects.com", "endpoint_type": "E0"}, {"id": "us-iad", "s3_endpoint": + "us-iad-10.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-lax", "s3_endpoint": + "us-lax-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-lax", "s3_endpoint": + "us-lax-4.linodeobjects.com", "endpoint_type": "E3"}, {"id": "us-mia", "s3_endpoint": + "us-mia-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-ord", "s3_endpoint": + "us-ord-10.linodeobjects.com", "endpoint_type": "E3"}, {"id": "us-ord", "s3_endpoint": + "us-ord-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-sea", "s3_endpoint": + "us-sea-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-southeast", + "s3_endpoint": "us-southeast-1.linodeobjects.com", "endpoint_type": "E0"}]}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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, 23 Apr 2026 09:06:00 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - object_storage:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "60" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" +- request: + body: '{"label":"go-test-logs-destination-1776935160092372000","type":"akamai_object_storage","details":{"access_key_id":"14IYT7KPO6CY94X9U19D","access_key_secret":"rECdcvgNTWhHnatv926l5YkkDr3lMMuL02lvsE1q","bucket_name":"go-test-logs-destination-1776935154478233000","host":"go-test-logs-destination-1776935154478233000.us-southeast-1.linodeobjects.com"}}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/monitor/streams/destinations + method: POST + response: + body: '{"id": 287, "label": "go-test-logs-destination-1776935160092372000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-destination-1776935154478233000.us-southeast-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1776935154478233000", "access_key_id": + "14IYT7KPO6CY94X9U19D"}, "version": 1, "status": "active", "created_by": "akrzyszt_dola_testnet_admin", + "created": "2018-01-02T03:04:05Z", "updated_by": "akrzyszt_dola_testnet_admin", + "updated": "2018-01-02T03:04:05Z"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "501" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 23 Apr 2026 09:06:00 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - monitor: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/monitor/streams/destinations?page=1 + method: GET + response: + body: '{"pages": 1, "page": 1, "results": 1, "data": [{"id": 287, "label": "go-test-logs-destination-1776935160092372000", + "type": "akamai_object_storage", "details": {"host": "go-test-logs-destination-1776935154478233000.us-southeast-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1776935154478233000", "access_key_id": + "14IYT7KPO6CY94X9U19D"}, "version": 1, "status": "active", "created_by": "akrzyszt_dola_testnet_admin", + "created": "2018-01-02T03:04:05Z", "updated_by": "akrzyszt_dola_testnet_admin", + "updated": "2018-01-02T03:04:05Z"}]}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "550" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 23 Apr 2026 09:06:01 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - monitor: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/monitor/streams/destinations/287 + method: GET + response: + body: '{"id": 287, "label": "go-test-logs-destination-1776935160092372000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-destination-1776935154478233000.us-southeast-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1776935154478233000", "access_key_id": + "14IYT7KPO6CY94X9U19D"}, "version": 1, "status": "active", "created_by": "akrzyszt_dola_testnet_admin", + "created": "2018-01-02T03:04:05Z", "updated_by": "akrzyszt_dola_testnet_admin", + "updated": "2018-01-02T03:04:05Z"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "501" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 23 Apr 2026 09:06:01 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - monitor: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/monitor/streams/destinations/287 + 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, 23 Apr 2026 09:06:02 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - monitor: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/object-storage/keys/3392828 + 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, 23 Apr 2026 09:06:02 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "60" + 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/object-storage/buckets/us-southeast/go-test-logs-destination-1776935154478233000/object-list + method: GET + response: + body: '{"data": [{"name": "cloud-logs-test-connection-20260423T090600", "size": + 9, "last_modified": "2018-01-02T03:04:05.688Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}], "next_marker": null, "is_truncated": + false}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "259" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 23 Apr 2026 09:06:03 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage: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: '{"name":"cloud-logs-test-connection-20260423T090600","method":"DELETE","expires_in":360}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1776935154478233000/object-url + method: POST + response: + body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1776935154478233000/cloud-logs-test-connection-20260423T090600?Signature=umkG%2BYIYn511Q083xVUFv70tq%2Fk%3D&Expires=1776935524&AWSAccessKeyID=SANITIZED", + "exists": true}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "259" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 23 Apr 2026 09:06:04 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage: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/object-storage/buckets/us-southeast/go-test-logs-destination-1776935154478233000 + 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, 23 Apr 2026 09:06:09 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "1840" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" diff --git a/test/integration/fixtures/TestLogsDestination_UpdateAndHistory.yaml b/test/integration/fixtures/TestLogsDestination_UpdateAndHistory.yaml new file mode 100644 index 000000000..9ebb4089a --- /dev/null +++ b/test/integration/fixtures/TestLogsDestination_UpdateAndHistory.yaml @@ -0,0 +1,782 @@ +--- +version: 1 +interactions: +- request: + body: '{"region":"us-southeast","label":"go-test-logs-destination-1776935197455018000","acl":"private","cors_enabled":false}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets + method: POST + response: + body: '{"hostname": "go-test-logs-destination-1776935197455018000.us-southeast-1.linodeobjects.com", + "label": "go-test-logs-destination-1776935197455018000", "created": "2018-01-02T03:04:05", + "region": "us-southeast", "cluster": "us-southeast-1", "size": 0, "objects": + 0, "endpoint_type": "E0", "s3_endpoint": "us-southeast-1.linodeobjects.com"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "338" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 23 Apr 2026 09:06:38 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "60" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" +- request: + body: '{"label":"go-test-logs-destination-1776935198633001000"}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/keys + method: POST + response: + body: '{"id": 3392837, "label": "go-test-logs-destination-1776935198633001000", + "access_key": "[SANITIZED]", "secret_key": "[SANITIZED]", + "limited": false, "bucket_access": null, "regions": [{"id": "us-east", "s3_endpoint": + "us-east-1.linodeobjects.com", "endpoint_type": "E0"}, {"id": "us-iad", "s3_endpoint": + "us-iad-10.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-lax", "s3_endpoint": + "us-lax-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-lax", "s3_endpoint": + "us-lax-4.linodeobjects.com", "endpoint_type": "E3"}, {"id": "us-mia", "s3_endpoint": + "us-mia-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-ord", "s3_endpoint": + "us-ord-10.linodeobjects.com", "endpoint_type": "E3"}, {"id": "us-ord", "s3_endpoint": + "us-ord-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-sea", "s3_endpoint": + "us-sea-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-southeast", + "s3_endpoint": "us-southeast-1.linodeobjects.com", "endpoint_type": "E0"}]}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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, 23 Apr 2026 09:06:41 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - object_storage:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "60" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" +- request: + body: '{"label":"go-test-logs-destination-1776935201441637000","type":"akamai_object_storage","details":{"access_key_id":"C69TET90S1S6AS5S91UM","access_key_secret":"hovvXOq9Oe4MGNZoq7OliUGZ5L7xQByYEDxiwyFy","bucket_name":"go-test-logs-destination-1776935197455018000","host":"go-test-logs-destination-1776935197455018000.us-southeast-1.linodeobjects.com"}}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/monitor/streams/destinations + method: POST + response: + body: '{"id": 290, "label": "go-test-logs-destination-1776935201441637000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-destination-1776935197455018000.us-southeast-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1776935197455018000", "access_key_id": + "C69TET90S1S6AS5S91UM"}, "version": 1, "status": "active", "created_by": "akrzyszt_dola_testnet_admin", + "created": "2018-01-02T03:04:05Z", "updated_by": "akrzyszt_dola_testnet_admin", + "updated": "2018-01-02T03:04:05Z"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "501" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 23 Apr 2026 09:06:42 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - monitor: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: '{"label":"go-test-logs-destination-1776935201441637000-upd","details":{"access_key_id":"C69TET90S1S6AS5S91UM","access_key_secret":"hovvXOq9Oe4MGNZoq7OliUGZ5L7xQByYEDxiwyFy","bucket_name":"go-test-logs-destination-1776935197455018000","host":"go-test-logs-destination-1776935197455018000.us-southeast-1.linodeobjects.com"}}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/monitor/streams/destinations/290 + method: PUT + response: + body: '{"id": 290, "label": "go-test-logs-destination-1776935201441637000-upd", + "type": "akamai_object_storage", "details": {"host": "go-test-logs-destination-1776935197455018000.us-southeast-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1776935197455018000", "access_key_id": + "C69TET90S1S6AS5S91UM"}, "version": 2, "status": "active", "created_by": "akrzyszt_dola_testnet_admin", + "created": "2018-01-02T03:04:05Z", "updated_by": "akrzyszt_dola_testnet_admin", + "updated": "2018-01-02T03:04:05Z"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "505" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 23 Apr 2026 09:06:43 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - monitor: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/monitor/streams/destinations/290/history?page=1 + method: GET + response: + body: '{"pages": 1, "page": 1, "results": 2, "data": [{"id": 290, "label": "go-test-logs-destination-1776935201441637000-upd", + "type": "akamai_object_storage", "details": {"host": "go-test-logs-destination-1776935197455018000.us-southeast-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1776935197455018000", "access_key_id": + "C69TET90S1S6AS5S91UM"}, "version": 2, "status": "active", "created_by": "akrzyszt_dola_testnet_admin", + "created": "2018-01-02T03:04:05Z", "updated_by": "akrzyszt_dola_testnet_admin", + "updated": "2018-01-02T03:04:05Z"}, {"id": 290, "label": "go-test-logs-destination-1776935201441637000", + "type": "akamai_object_storage", "details": {"host": "go-test-logs-destination-1776935197455018000.us-southeast-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1776935197455018000", "access_key_id": + "C69TET90S1S6AS5S91UM"}, "version": 1, "status": "inactive", "created_by": "akrzyszt_dola_testnet_admin", + "created": "2018-01-02T03:04:05Z", "updated_by": "akrzyszt_dola_testnet_admin", + "updated": "2018-01-02T03:04:05Z"}]}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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, 23 Apr 2026 09:06:43 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - monitor: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/monitor/streams/destinations/290 + method: GET + response: + body: '{"id": 290, "label": "go-test-logs-destination-1776935201441637000-upd", + "type": "akamai_object_storage", "details": {"host": "go-test-logs-destination-1776935197455018000.us-southeast-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1776935197455018000", "access_key_id": + "C69TET90S1S6AS5S91UM"}, "version": 2, "status": "active", "created_by": "akrzyszt_dola_testnet_admin", + "created": "2018-01-02T03:04:05Z", "updated_by": "akrzyszt_dola_testnet_admin", + "updated": "2018-01-02T03:04:05Z"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "505" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 23 Apr 2026 09:06:43 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - monitor: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/monitor/streams/destinations/290 + 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, 23 Apr 2026 09:06:44 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - monitor: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/object-storage/keys/3392837 + 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, 23 Apr 2026 09:06:44 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "60" + 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/object-storage/buckets/us-southeast/go-test-logs-destination-1776935197455018000/object-list + method: GET + response: + body: '{"data": [{"name": "cloud-logs-test-connection-20260423T090641", "size": + 9, "last_modified": "2018-01-02T03:04:05.043Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "cloud-logs-test-connection-20260423T090642", + "size": 9, "last_modified": "2018-01-02T03:04:05.912Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}], "next_marker": null, "is_truncated": + false}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "464" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 23 Apr 2026 09:06:45 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage: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: '{"name":"cloud-logs-test-connection-20260423T090641","method":"DELETE","expires_in":360}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1776935197455018000/object-url + method: POST + response: + body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1776935197455018000/cloud-logs-test-connection-20260423T090641?Signature=wx4Ocqt0a%2FU5rZS5K7hgFPciPNg%3D&Expires=1776935568&AWSAccessKeyID=SANITIZED", + "exists": true}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "257" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 23 Apr 2026 09:06:48 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage: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: '{"name":"cloud-logs-test-connection-20260423T090642","method":"DELETE","expires_in":360}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1776935197455018000/object-url + method: POST + response: + body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1776935197455018000/cloud-logs-test-connection-20260423T090642?Signature=flUMkyKPdSPw8m%2Bewd3bDMLfLIk%3D&Expires=1776935569&AWSAccessKeyID=SANITIZED", + "exists": true}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "257" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 23 Apr 2026 09:06:50 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage: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/object-storage/buckets/us-southeast/go-test-logs-destination-1776935197455018000 + 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, 23 Apr 2026 09:06:54 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage: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/monitor_log_destinations_test.go b/test/integration/monitor_log_destinations_test.go new file mode 100644 index 000000000..7a00d5ed7 --- /dev/null +++ b/test/integration/monitor_log_destinations_test.go @@ -0,0 +1,262 @@ +package integration + +import ( + "context" + "net/http" + "testing" + + "github.com/dnaeon/go-vcr/recorder" + "github.com/linode/linodego" + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" +) + +// creates a object storage and access keys for use in tests +func setupObjectStorageForLogs(t *testing.T, client *linodego.Client) (*linodego.ObjectStorageBucket, *linodego.ObjectStorageKey, func()) { + t.Helper() + + bucket, err := client.CreateObjectStorageBucket(context.Background(), linodego.ObjectStorageBucketCreateOptions{ + Region: "us-southeast", + Label: testLabel(), + ACL: "private", + CorsEnabled: linodego.Pointer(false), + }) + if err != nil { + t.Fatalf("Error creating storage bucket, got error %v", err) + } + + storageKey, err := client.CreateObjectStorageKey(context.Background(), linodego.ObjectStorageKeyCreateOptions{ + Label: testLabel(), + }) + if err != nil { + _ = client.DeleteObjectStorageBucket(context.Background(), bucket.Region, bucket.Label) + t.Fatalf("Error creating storage key, got error %v", err) + } + + teardown := func() { + if terr := client.DeleteObjectStorageKey(context.Background(), storageKey.ID); terr != nil { + t.Errorf("Expected to delete a storage key, but got %v", terr) + } + + bucketObjects, terr := client.ListObjectStorageBucketContents(context.Background(), bucket.Region, bucket.Label, nil) + if terr == nil { + for _, obj := range bucketObjects.Data { + url, err := client.CreateObjectStorageObjectURL(context.TODO(), bucket.Cluster, bucket.Label, linodego.ObjectStorageObjectURLCreateOptions{ + Name: obj.Name, + Method: http.MethodDelete, + ExpiresIn: &objectStorageObjectURLExpirySeconds, + }) + + if err != nil { + t.Errorf("failed to get object DELETE url: %s", err) + continue + } + + if testingMode == recorder.ModeReplaying { + continue + } + + req, err := http.NewRequest(http.MethodDelete, url.URL, nil) + if err != nil { + t.Errorf("failed to build request: %s", err) + continue + } + + res, err := http.DefaultClient.Do(req) + if err != nil { + t.Errorf("failed to delete object: %s", err) + continue + } + if res.StatusCode != 204 { + t.Errorf("expected status code to be 204; got %d", res.StatusCode) + } + } + } + + if terr := client.DeleteObjectStorageBucket(context.Background(), bucket.Region, bucket.Label); terr != nil { + t.Errorf("Expected to delete object storage bucket, but got %v", terr) + } + } + + return bucket, storageKey, teardown +} + +// creates a LogsDestination for use in tests +func setupLogsDestination(t *testing.T, fixturesYaml string) (*linodego.Client, *linodego.LogsDestination, *linodego.ObjectStorageKey, func()) { + t.Helper() + + client, fixtureTeardown := createTestClient(t, fixturesYaml) + + bucket, storageKey, storageTeardown := setupObjectStorageForLogs(t, client) + + dest, err := client.CreateLogsDestination(context.Background(), linodego.LogsDestinationCreateOptions{ + Label: testLabel(), + Type: linodego.LogsDestinationTypeAkamaiObjectStorage, + Details: linodego.LogsDestinationDetailsCreateOptions{ + AccessKeyID: storageKey.AccessKey, + AccessKeySecret: storageKey.SecretKey, + BucketName: bucket.Label, + Host: bucket.Hostname, + }, + }) + if err != nil { + storageTeardown() + fixtureTeardown() + t.Fatalf("Error creating logs destination, got error %v", err) + } + + teardown := func() { + // Only delete if it still exists (e.g. not already deleted by the test itself). + if _, terr := client.GetLogsDestination(context.Background(), dest.ID); terr == nil { + if terr := client.DeleteLogsDestination(context.Background(), dest.ID); terr != nil { + t.Errorf("Expected to delete a logs destination, but got %v", terr) + } + } + storageTeardown() + fixtureTeardown() + } + + return client, dest, storageKey, teardown +} + +func testLabel() string { + return "go-test-logs-destination-" + getUniqueText() +} + +func TestLogsDestination_List(t *testing.T) { + client, dest, _, teardown := setupLogsDestination(t, "fixtures/TestLogsDestination_List") + defer teardown() + + destinations, err := client.ListLogsDestinations(context.Background(), nil) + assert.NoError(t, err) + assert.NotEmpty(t, destinations) + + for _, d := range destinations { + assert.NotZero(t, d.ID) + assert.NotEmpty(t, d.Label) + assert.NotEmpty(t, d.Type) + assert.NotEmpty(t, d.Status) + } + + ids := make([]int, len(destinations)) + for i, d := range destinations { + ids[i] = d.ID + } + + assert.Contains(t, ids, dest.ID) +} + +func TestLogsDestination_Delete(t *testing.T) { + client, dest, _, teardown := setupLogsDestination(t, "fixtures/TestLogsDestination_Delete") + defer teardown() + + err := client.DeleteLogsDestination(context.Background(), dest.ID) + assert.NoError(t, err) + + // Verify it's gone + _, err = client.GetLogsDestination(context.Background(), dest.ID) + assert.Error(t, err, "expected error fetching deleted destination") +} + +func TestLogsDestination_Get(t *testing.T) { + client, dest, _, teardown := setupLogsDestination(t, "fixtures/TestLogsDestination_Get") + defer teardown() + + fetched, err := client.GetLogsDestination(context.Background(), dest.ID) + assert.NoError(t, err) + assert.NotNil(t, fetched) + assert.Equal(t, dest.ID, fetched.ID) + assert.Equal(t, dest.Label, fetched.Label) + assert.Equal(t, dest.Type, fetched.Type) +} + +func TestLogsDestination_UpdateAndHistory(t *testing.T) { + client, dest, storageKey, teardown := setupLogsDestination(t, "fixtures/TestLogsDestination_UpdateAndHistory") + defer teardown() + + newLabel := dest.Label + "-upd" + + // should update logs destination + updated, err := client.UpdateLogsDestination(context.Background(), dest.ID, linodego.LogsDestinationUpdateOptions{ + Label: newLabel, + Details: &linodego.LogsDestinationDetailsCreateOptions{ + AccessKeyID: dest.Details.AccessKeyID, + AccessKeySecret: storageKey.SecretKey, + BucketName: dest.Details.BucketName, + Host: dest.Details.Host, + }, + }) + assert.NoError(t, err) + require.NotNil(t, updated) + assert.Equal(t, newLabel, updated.Label) + + // history should contain both versions + history, err := client.ListLogsDestinationHistory(context.Background(), dest.ID, nil) + assert.NoError(t, err) + assert.GreaterOrEqual(t, len(history), 2) + + var v1, v2 *linodego.LogsDestination + for i := range history { + switch history[i].Version { + case 1: + v1 = &history[i] + case 2: + v2 = &history[i] + } + } + + require.NotNil(t, v1, "expected version 1 in history") + require.NotNil(t, v2, "expected version 2 in history") + + assert.Equal(t, dest.Label, v1.Label) + assert.Equal(t, newLabel, v2.Label) +} + +func TestLogsDestination_Create_InvalidSecret(t *testing.T) { + client, teardown := createTestClient(t, "fixtures/TestLogsDestination_Create_InvalidSecret") + defer teardown() + + bucket, _, storageTeardown := setupObjectStorageForLogs(t, client) + defer storageTeardown() + + _, err := client.CreateLogsDestination(context.Background(), linodego.LogsDestinationCreateOptions{ + Label: testLabel(), + Type: linodego.LogsDestinationTypeAkamaiObjectStorage, + Details: linodego.LogsDestinationDetailsCreateOptions{ + AccessKeyID: "1", + AccessKeySecret: "1", + BucketName: bucket.Label, + Host: bucket.Hostname, + }, + }) + require.Error(t, err) + + apiErr, ok := err.(*linodego.Error) + require.True(t, ok, "expected linodego.Error") + assert.Equal(t, 400, apiErr.Code) + assert.Contains(t, apiErr.Message, "Invalid access key id or secret key") +} + +func TestLogsDestination_Create_InvalidType(t *testing.T) { + client, teardown := createTestClient(t, "fixtures/TestLogsDestination_Create_InvalidType") + defer teardown() + + bucket, storageKey, storageTeardown := setupObjectStorageForLogs(t, client) + defer storageTeardown() + + _, err := client.CreateLogsDestination(context.Background(), linodego.LogsDestinationCreateOptions{ + Label: testLabel(), + Type: "invalid_type", + Details: linodego.LogsDestinationDetailsCreateOptions{ + AccessKeyID: storageKey.AccessKey, + AccessKeySecret: storageKey.SecretKey, + BucketName: bucket.Label, + Host: bucket.Hostname, + }, + }) + require.Error(t, err) + + apiErr, ok := err.(*linodego.Error) + require.True(t, ok, "expected linodego.Error") + assert.Equal(t, 400, apiErr.Code) +} From 163246117aa8ba03efa51c0c39044ec114db83f8 Mon Sep 17 00:00:00 2001 From: akrzyszt Date: Wed, 29 Apr 2026 17:32:55 +0200 Subject: [PATCH 03/21] [DPS-42278] review tweaks --- monitor_log_destinations.go | 27 ++- .../TestLogsDestination_UpdateAndHistory.yaml | 197 ++++++++++++------ .../monitor_log_destinations_test.go | 37 +++- .../monitor_log_destinations_get.json | 2 +- test/unit/monitor_log_destinations_test.go | 13 +- 5 files changed, 189 insertions(+), 87 deletions(-) diff --git a/monitor_log_destinations.go b/monitor_log_destinations.go index e6ac86d8b..27c66d2c3 100644 --- a/monitor_log_destinations.go +++ b/monitor_log_destinations.go @@ -77,6 +77,8 @@ func (i *LogsDestination) UnmarshalJSON(b []byte) error { return nil } +const logsDestinationBaseEndpoint = "monitor/streams/destinations" + // LogsDestinationCreateOptions are the options used to create a new logs destination. type LogsDestinationCreateOptions struct { Label string `json:"label"` @@ -84,42 +86,51 @@ type LogsDestinationCreateOptions struct { Details LogsDestinationDetailsCreateOptions `json:"details"` } -// LogsDestinationUpdateOptions are the options used to update a logs destination. +// LogsDestinationDetailsUpdateOptions represents the details block used when updating a LogsDestination. +type LogsDestinationDetailsUpdateOptions struct { + AccessKeyID string `json:"access_key_id,omitempty"` + AccessKeySecret string `json:"access_key_secret,omitempty"` + BucketName string `json:"bucket_name,omitempty"` + Host string `json:"host,omitempty"` + Path *string `json:"path,omitempty"` +} + +// LogsDestinationUpdateOptions are the options used to update a LogsDestination. type LogsDestinationUpdateOptions struct { Label string `json:"label,omitempty"` - Details *LogsDestinationDetailsCreateOptions `json:"details,omitempty"` + Details *LogsDestinationDetailsUpdateOptions `json:"details,omitempty"` } // ListLogsDestinations returns a paginated list of logs destinations. func (c *Client) ListLogsDestinations(ctx context.Context, opts *ListOptions) ([]LogsDestination, error) { - return getPaginatedResults[LogsDestination](ctx, c, "monitor/streams/destinations", opts) + return getPaginatedResults[LogsDestination](ctx, c, logsDestinationBaseEndpoint, opts) } // GetLogsDestination gets a single logs destination by ID. func (c *Client) GetLogsDestination(ctx context.Context, destinationID int) (*LogsDestination, error) { - e := formatAPIPath("monitor/streams/destinations/%d", destinationID) + e := formatAPIPath(logsDestinationBaseEndpoint+"/%d", destinationID) return doGETRequest[LogsDestination](ctx, c, e) } // CreateLogsDestination creates a new logs destination. func (c *Client) CreateLogsDestination(ctx context.Context, opts LogsDestinationCreateOptions) (*LogsDestination, error) { - return doPOSTRequest[LogsDestination](ctx, c, "monitor/streams/destinations", opts) + return doPOSTRequest[LogsDestination](ctx, c, logsDestinationBaseEndpoint, opts) } // UpdateLogsDestination updates a logs destination. func (c *Client) UpdateLogsDestination(ctx context.Context, destinationID int, opts LogsDestinationUpdateOptions) (*LogsDestination, error) { - e := formatAPIPath("monitor/streams/destinations/%d", destinationID) + e := formatAPIPath(logsDestinationBaseEndpoint+"/%d", destinationID) return doPUTRequest[LogsDestination](ctx, c, e, opts) } // DeleteLogsDestination deletes a logs destination. func (c *Client) DeleteLogsDestination(ctx context.Context, destinationID int) error { - e := formatAPIPath("monitor/streams/destinations/%d", destinationID) + e := formatAPIPath(logsDestinationBaseEndpoint+"/%d", destinationID) return doDELETERequest(ctx, c, e) } // ListLogsDestinationHistory returns the version history for a logs destination. func (c *Client) ListLogsDestinationHistory(ctx context.Context, destinationID int, opts *ListOptions) ([]LogsDestination, error) { - e := formatAPIPath("monitor/streams/destinations/%d/history", destinationID) + e := formatAPIPath(logsDestinationBaseEndpoint+"/%d/history", destinationID) return getPaginatedResults[LogsDestination](ctx, c, e, opts) } diff --git a/test/integration/fixtures/TestLogsDestination_UpdateAndHistory.yaml b/test/integration/fixtures/TestLogsDestination_UpdateAndHistory.yaml index 9ebb4089a..62ed593aa 100644 --- a/test/integration/fixtures/TestLogsDestination_UpdateAndHistory.yaml +++ b/test/integration/fixtures/TestLogsDestination_UpdateAndHistory.yaml @@ -2,7 +2,7 @@ version: 1 interactions: - request: - body: '{"region":"us-southeast","label":"go-test-logs-destination-1776935197455018000","acl":"private","cors_enabled":false}' + body: '{"region":"us-southeast","label":"go-test-logs-destination-1777442634037829000","acl":"private","cors_enabled":false}' form: {} headers: Accept: @@ -14,8 +14,8 @@ interactions: url: https://api.linode.com/v4beta/object-storage/buckets method: POST response: - body: '{"hostname": "go-test-logs-destination-1776935197455018000.us-southeast-1.linodeobjects.com", - "label": "go-test-logs-destination-1776935197455018000", "created": "2018-01-02T03:04:05", + body: '{"hostname": "go-test-logs-destination-1777442634037829000.us-southeast-1.linodeobjects.com", + "label": "go-test-logs-destination-1777442634037829000", "created": "2018-01-02T03:04:05", "region": "us-southeast", "cluster": "us-southeast-1", "size": 0, "objects": 0, "endpoint_type": "E0", "s3_endpoint": "us-southeast-1.linodeobjects.com"}' headers: @@ -42,7 +42,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 23 Apr 2026 09:06:38 GMT + - Wed, 29 Apr 2026 06:03:55 GMT Pragma: - no-cache Strict-Transport-Security: @@ -66,7 +66,7 @@ interactions: code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1776935198633001000"}' + body: '{"label":"go-test-logs-destination-1777442635236568000"}' form: {} headers: Accept: @@ -78,7 +78,7 @@ interactions: url: https://api.linode.com/v4beta/object-storage/keys method: POST response: - body: '{"id": 3392837, "label": "go-test-logs-destination-1776935198633001000", + body: '{"id": 3474091, "label": "go-test-logs-destination-1777442635236568000", "access_key": "[SANITIZED]", "secret_key": "[SANITIZED]", "limited": false, "bucket_access": null, "regions": [{"id": "us-east", "s3_endpoint": "us-east-1.linodeobjects.com", "endpoint_type": "E0"}, {"id": "us-iad", "s3_endpoint": @@ -112,7 +112,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 23 Apr 2026 09:06:41 GMT + - Wed, 29 Apr 2026 06:03:58 GMT Pragma: - no-cache Strict-Transport-Security: @@ -137,7 +137,7 @@ interactions: code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1776935201441637000","type":"akamai_object_storage","details":{"access_key_id":"C69TET90S1S6AS5S91UM","access_key_secret":"hovvXOq9Oe4MGNZoq7OliUGZ5L7xQByYEDxiwyFy","bucket_name":"go-test-logs-destination-1776935197455018000","host":"go-test-logs-destination-1776935197455018000.us-southeast-1.linodeobjects.com"}}' + body: '{"label":"go-test-logs-destination-1777442638057450000","type":"akamai_object_storage","details":{"access_key_id":"3KJOTHO0GRMDTNKCCEXK","access_key_secret":"SMLe5DiJrUxvwTYOOTM9xDjns4SPuUcQZ3iAzJ96","bucket_name":"go-test-logs-destination-1777442634037829000","host":"go-test-logs-destination-1777442634037829000.us-southeast-1.linodeobjects.com"}}' form: {} headers: Accept: @@ -149,10 +149,10 @@ interactions: url: https://api.linode.com/v4beta/monitor/streams/destinations method: POST response: - body: '{"id": 290, "label": "go-test-logs-destination-1776935201441637000", "type": - "akamai_object_storage", "details": {"host": "go-test-logs-destination-1776935197455018000.us-southeast-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1776935197455018000", "access_key_id": - "C69TET90S1S6AS5S91UM"}, "version": 1, "status": "active", "created_by": "akrzyszt_dola_testnet_admin", + body: '{"id": 307, "label": "go-test-logs-destination-1777442638057450000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-destination-1777442634037829000.us-southeast-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1777442634037829000", "access_key_id": + "3KJOTHO0GRMDTNKCCEXK"}, "version": 1, "status": "active", "created_by": "akrzyszt_dola_testnet_admin", "created": "2018-01-02T03:04:05Z", "updated_by": "akrzyszt_dola_testnet_admin", "updated": "2018-01-02T03:04:05Z"}' headers: @@ -179,7 +179,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 23 Apr 2026 09:06:42 GMT + - Wed, 29 Apr 2026 06:03:59 GMT Pragma: - no-cache Strict-Transport-Security: @@ -203,7 +203,7 @@ interactions: code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1776935201441637000-upd","details":{"access_key_id":"C69TET90S1S6AS5S91UM","access_key_secret":"hovvXOq9Oe4MGNZoq7OliUGZ5L7xQByYEDxiwyFy","bucket_name":"go-test-logs-destination-1776935197455018000","host":"go-test-logs-destination-1776935197455018000.us-southeast-1.linodeobjects.com"}}' + body: '{"label":"go-test-logs-destination-1777442638057450000-upd","details":{"access_key_id":"3KJOTHO0GRMDTNKCCEXK","access_key_secret":"SMLe5DiJrUxvwTYOOTM9xDjns4SPuUcQZ3iAzJ96","bucket_name":"go-test-logs-destination-1777442634037829000","host":"go-test-logs-destination-1777442634037829000.us-southeast-1.linodeobjects.com","path":"updated/logs/path/"}}' form: {} headers: Accept: @@ -212,15 +212,15 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations/290 + url: https://api.linode.com/v4beta/monitor/streams/destinations/307 method: PUT response: - body: '{"id": 290, "label": "go-test-logs-destination-1776935201441637000-upd", - "type": "akamai_object_storage", "details": {"host": "go-test-logs-destination-1776935197455018000.us-southeast-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1776935197455018000", "access_key_id": - "C69TET90S1S6AS5S91UM"}, "version": 2, "status": "active", "created_by": "akrzyszt_dola_testnet_admin", - "created": "2018-01-02T03:04:05Z", "updated_by": "akrzyszt_dola_testnet_admin", - "updated": "2018-01-02T03:04:05Z"}' + body: '{"id": 307, "label": "go-test-logs-destination-1777442638057450000-upd", + "type": "akamai_object_storage", "details": {"host": "go-test-logs-destination-1777442634037829000.us-southeast-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1777442634037829000", "path": "updated/logs/path/", + "access_key_id": "3KJOTHO0GRMDTNKCCEXK"}, "version": 2, "status": "active", + "created_by": "akrzyszt_dola_testnet_admin", "created": "2018-01-02T03:04:05Z", + "updated_by": "akrzyszt_dola_testnet_admin", "updated": "2018-01-02T03:04:05Z"}' headers: Access-Control-Allow-Credentials: - "true" @@ -239,13 +239,13 @@ interactions: Connection: - keep-alive Content-Length: - - "505" + - "535" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Thu, 23 Apr 2026 09:06:43 GMT + - Wed, 29 Apr 2026 06:04:00 GMT Pragma: - no-cache Strict-Transport-Security: @@ -278,18 +278,19 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations/290/history?page=1 + url: https://api.linode.com/v4beta/monitor/streams/destinations/307/history?page=1 method: GET response: - body: '{"pages": 1, "page": 1, "results": 2, "data": [{"id": 290, "label": "go-test-logs-destination-1776935201441637000-upd", - "type": "akamai_object_storage", "details": {"host": "go-test-logs-destination-1776935197455018000.us-southeast-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1776935197455018000", "access_key_id": - "C69TET90S1S6AS5S91UM"}, "version": 2, "status": "active", "created_by": "akrzyszt_dola_testnet_admin", - "created": "2018-01-02T03:04:05Z", "updated_by": "akrzyszt_dola_testnet_admin", - "updated": "2018-01-02T03:04:05Z"}, {"id": 290, "label": "go-test-logs-destination-1776935201441637000", - "type": "akamai_object_storage", "details": {"host": "go-test-logs-destination-1776935197455018000.us-southeast-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1776935197455018000", "access_key_id": - "C69TET90S1S6AS5S91UM"}, "version": 1, "status": "inactive", "created_by": "akrzyszt_dola_testnet_admin", + body: '{"pages": 1, "page": 1, "results": 2, "data": [{"id": 307, "label": "go-test-logs-destination-1777442638057450000-upd", + "type": "akamai_object_storage", "details": {"host": "go-test-logs-destination-1777442634037829000.us-southeast-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1777442634037829000", "path": "updated/logs/path/", + "access_key_id": "3KJOTHO0GRMDTNKCCEXK"}, "version": 2, "status": "active", + "created_by": "akrzyszt_dola_testnet_admin", "created": "2018-01-02T03:04:05Z", + "updated_by": "akrzyszt_dola_testnet_admin", "updated": "2018-01-02T03:04:05Z"}, + {"id": 307, "label": "go-test-logs-destination-1777442638057450000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-destination-1777442634037829000.us-southeast-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1777442634037829000", "access_key_id": + "3KJOTHO0GRMDTNKCCEXK"}, "version": 1, "status": "inactive", "created_by": "akrzyszt_dola_testnet_admin", "created": "2018-01-02T03:04:05Z", "updated_by": "akrzyszt_dola_testnet_admin", "updated": "2018-01-02T03:04:05Z"}]}' headers: @@ -314,7 +315,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 23 Apr 2026 09:06:43 GMT + - Wed, 29 Apr 2026 06:04:00 GMT Pragma: - no-cache Strict-Transport-Security: @@ -349,15 +350,15 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations/290 + url: https://api.linode.com/v4beta/monitor/streams/destinations/307 method: GET response: - body: '{"id": 290, "label": "go-test-logs-destination-1776935201441637000-upd", - "type": "akamai_object_storage", "details": {"host": "go-test-logs-destination-1776935197455018000.us-southeast-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1776935197455018000", "access_key_id": - "C69TET90S1S6AS5S91UM"}, "version": 2, "status": "active", "created_by": "akrzyszt_dola_testnet_admin", - "created": "2018-01-02T03:04:05Z", "updated_by": "akrzyszt_dola_testnet_admin", - "updated": "2018-01-02T03:04:05Z"}' + body: '{"id": 307, "label": "go-test-logs-destination-1777442638057450000-upd", + "type": "akamai_object_storage", "details": {"host": "go-test-logs-destination-1777442634037829000.us-southeast-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1777442634037829000", "path": "updated/logs/path/", + "access_key_id": "3KJOTHO0GRMDTNKCCEXK"}, "version": 2, "status": "active", + "created_by": "akrzyszt_dola_testnet_admin", "created": "2018-01-02T03:04:05Z", + "updated_by": "akrzyszt_dola_testnet_admin", "updated": "2018-01-02T03:04:05Z"}' headers: Access-Control-Allow-Credentials: - "true" @@ -376,13 +377,13 @@ interactions: Connection: - keep-alive Content-Length: - - "505" + - "535" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Thu, 23 Apr 2026 09:06:43 GMT + - Wed, 29 Apr 2026 06:04:01 GMT Pragma: - no-cache Strict-Transport-Security: @@ -416,7 +417,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations/290 + url: https://api.linode.com/v4beta/monitor/streams/destinations/307 method: DELETE response: body: '{}' @@ -444,7 +445,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 23 Apr 2026 09:06:44 GMT + - Wed, 29 Apr 2026 06:04:01 GMT Pragma: - no-cache Strict-Transport-Security: @@ -477,7 +478,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/keys/3392837 + url: https://api.linode.com/v4beta/object-storage/keys/3474091 method: DELETE response: body: '{}' @@ -505,7 +506,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 23 Apr 2026 09:06:44 GMT + - Wed, 29 Apr 2026 06:04:02 GMT Pragma: - no-cache Strict-Transport-Security: @@ -538,13 +539,15 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast/go-test-logs-destination-1776935197455018000/object-list + url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast/go-test-logs-destination-1777442634037829000/object-list method: GET response: - body: '{"data": [{"name": "cloud-logs-test-connection-20260423T090641", "size": - 9, "last_modified": "2018-01-02T03:04:05.043Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", - "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "cloud-logs-test-connection-20260423T090642", - "size": 9, "last_modified": "2018-01-02T03:04:05.912Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", + body: '{"data": [{"name": "cloud-logs-test-connection-20260429T060358", "size": + 9, "last_modified": "2018-01-02T03:04:05.850Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "updated/logs/path/", + "size": 0, "last_modified": "2018-01-02T03:04:05.015Z", "etag": "d41d8cd98f00b204e9800998ecf8427e", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "updated/logs/path/cloud-logs-test-connection-20260429T060400", + "size": 9, "last_modified": "2018-01-02T03:04:05.116Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}], "next_marker": null, "is_truncated": false}' headers: @@ -565,13 +568,13 @@ interactions: Connection: - keep-alive Content-Length: - - "464" + - "663" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Thu, 23 Apr 2026 09:06:45 GMT + - Wed, 29 Apr 2026 06:04:02 GMT Pragma: - no-cache Strict-Transport-Security: @@ -596,7 +599,69 @@ interactions: code: 200 duration: "" - request: - body: '{"name":"cloud-logs-test-connection-20260423T090641","method":"DELETE","expires_in":360}' + body: '{"name":"cloud-logs-test-connection-20260429T060358","method":"DELETE","expires_in":360}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1777442634037829000/object-url + method: POST + response: + body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1777442634037829000/cloud-logs-test-connection-20260429T060358?Signature=M1nSwVdzlNtzVQC7DJCgMko5R4Y%3D&Expires=1777443004&AWSAccessKeyID=SANITIZED", + "exists": true}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "255" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 29 Apr 2026 06:04:04 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage: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: '{"name":"updated/logs/path/","method":"DELETE","expires_in":360}' form: {} headers: Accept: @@ -605,10 +670,10 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1776935197455018000/object-url + url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1777442634037829000/object-url method: POST response: - body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1776935197455018000/cloud-logs-test-connection-20260423T090641?Signature=wx4Ocqt0a%2FU5rZS5K7hgFPciPNg%3D&Expires=1776935568&AWSAccessKeyID=SANITIZED", + body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1777442634037829000/updated/logs/path/?Signature=Ov7lOwA6B555Jn5bex0b%2B6JtQTY%3D&Expires=1777443006&AWSAccessKeyID=SANITIZED", "exists": true}' headers: Access-Control-Allow-Credentials: @@ -628,13 +693,13 @@ interactions: Connection: - keep-alive Content-Length: - - "257" + - "233" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Thu, 23 Apr 2026 09:06:48 GMT + - Wed, 29 Apr 2026 06:04:06 GMT Pragma: - no-cache Strict-Transport-Security: @@ -658,7 +723,7 @@ interactions: code: 200 duration: "" - request: - body: '{"name":"cloud-logs-test-connection-20260423T090642","method":"DELETE","expires_in":360}' + body: '{"name":"updated/logs/path/cloud-logs-test-connection-20260429T060400","method":"DELETE","expires_in":360}' form: {} headers: Accept: @@ -667,10 +732,10 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1776935197455018000/object-url + url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1777442634037829000/object-url method: POST response: - body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1776935197455018000/cloud-logs-test-connection-20260423T090642?Signature=flUMkyKPdSPw8m%2Bewd3bDMLfLIk%3D&Expires=1776935569&AWSAccessKeyID=SANITIZED", + body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1777442634037829000/updated/logs/path/cloud-logs-test-connection-20260429T060400?Signature=rQePlE6Mf0O0FsmQ3W%2B%2FRTz5YT8%3D&Expires=1777443007&AWSAccessKeyID=SANITIZED", "exists": true}' headers: Access-Control-Allow-Credentials: @@ -690,13 +755,13 @@ interactions: Connection: - keep-alive Content-Length: - - "257" + - "277" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Thu, 23 Apr 2026 09:06:50 GMT + - Wed, 29 Apr 2026 06:04:08 GMT Pragma: - no-cache Strict-Transport-Security: @@ -729,7 +794,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast/go-test-logs-destination-1776935197455018000 + url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast/go-test-logs-destination-1777442634037829000 method: DELETE response: body: '{}' @@ -757,7 +822,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 23 Apr 2026 09:06:54 GMT + - Wed, 29 Apr 2026 06:04:11 GMT Pragma: - no-cache Strict-Transport-Security: diff --git a/test/integration/monitor_log_destinations_test.go b/test/integration/monitor_log_destinations_test.go index 7a00d5ed7..054fc8d38 100644 --- a/test/integration/monitor_log_destinations_test.go +++ b/test/integration/monitor_log_destinations_test.go @@ -71,6 +71,8 @@ func setupObjectStorageForLogs(t *testing.T, client *linodego.Client) (*linodego t.Errorf("expected status code to be 204; got %d", res.StatusCode) } } + } else { + t.Errorf("Expected to list objects in object storage, but got %v", terr) } if terr := client.DeleteObjectStorageBucket(context.Background(), bucket.Region, bucket.Label); terr != nil { @@ -106,8 +108,14 @@ func setupLogsDestination(t *testing.T, fixturesYaml string) (*linodego.Client, } teardown := func() { - // Only delete if it still exists (e.g. not already deleted by the test itself). - if _, terr := client.GetLogsDestination(context.Background(), dest.ID); terr == nil { + _, terr := client.GetLogsDestination(context.Background(), dest.ID) + if apiErr, ok := terr.(*linodego.Error); ok && apiErr.Code == 404 { + // Already gone — nothing to do. + } else { + if terr != nil { + t.Errorf("Error while checking destination existence: %v", terr) + } + // Object exists or GET failed for another reason — try to delete anyway. if terr := client.DeleteLogsDestination(context.Background(), dest.ID); terr != nil { t.Errorf("Expected to delete a logs destination, but got %v", terr) } @@ -134,8 +142,17 @@ func TestLogsDestination_List(t *testing.T) { for _, d := range destinations { assert.NotZero(t, d.ID) assert.NotEmpty(t, d.Label) - assert.NotEmpty(t, d.Type) - assert.NotEmpty(t, d.Status) + assert.Equal(t, linodego.LogsDestinationTypeAkamaiObjectStorage, d.Type) + assert.Contains(t, + []linodego.LogsDestinationStatus{ + linodego.LogsDestinationStatusActive, + linodego.LogsDestinationStatusInactive, + }, + d.Status, + ) + assert.NotEmpty(t, d.Details.AccessKeyID) + assert.NotEmpty(t, d.Details.BucketName) + assert.NotEmpty(t, d.Details.Host) } ids := make([]int, len(destinations)) @@ -155,7 +172,11 @@ func TestLogsDestination_Delete(t *testing.T) { // Verify it's gone _, err = client.GetLogsDestination(context.Background(), dest.ID) - assert.Error(t, err, "expected error fetching deleted destination") + require.Error(t, err) + + apiErr, ok := err.(*linodego.Error) + require.True(t, ok, "expected linodego.Error") + assert.Equal(t, 404, apiErr.Code) } func TestLogsDestination_Get(t *testing.T) { @@ -175,20 +196,23 @@ func TestLogsDestination_UpdateAndHistory(t *testing.T) { defer teardown() newLabel := dest.Label + "-upd" + newPath := "updated/logs/path/" // should update logs destination updated, err := client.UpdateLogsDestination(context.Background(), dest.ID, linodego.LogsDestinationUpdateOptions{ Label: newLabel, - Details: &linodego.LogsDestinationDetailsCreateOptions{ + Details: &linodego.LogsDestinationDetailsUpdateOptions{ AccessKeyID: dest.Details.AccessKeyID, AccessKeySecret: storageKey.SecretKey, BucketName: dest.Details.BucketName, Host: dest.Details.Host, + Path: &newPath, }, }) assert.NoError(t, err) require.NotNil(t, updated) assert.Equal(t, newLabel, updated.Label) + assert.Equal(t, newPath, updated.Details.Path) // history should contain both versions history, err := client.ListLogsDestinationHistory(context.Background(), dest.ID, nil) @@ -259,4 +283,5 @@ func TestLogsDestination_Create_InvalidType(t *testing.T) { apiErr, ok := err.(*linodego.Error) require.True(t, ok, "expected linodego.Error") assert.Equal(t, 400, apiErr.Code) + assert.Contains(t, apiErr.Message, "[type] Must be one of akamai_object_storage, custom_https") } diff --git a/test/unit/fixtures/monitor_log_destinations_get.json b/test/unit/fixtures/monitor_log_destinations_get.json index fb528e8f7..2701a240f 100644 --- a/test/unit/fixtures/monitor_log_destinations_get.json +++ b/test/unit/fixtures/monitor_log_destinations_get.json @@ -2,7 +2,7 @@ "created": "2025-07-20T09:45:13Z", "created_by": "John Q. Linode", "details": { - "access_key_id": "123", + "access_key_id": "1ABCD23EFG4HIJKLMNO5", "bucket_name": "primary-bucket", "host": "primary-bucket-1.us-iad-12.linodeobjects.com", "path": "audit-logs" diff --git a/test/unit/monitor_log_destinations_test.go b/test/unit/monitor_log_destinations_test.go index 1361ae7ae..9787387c1 100644 --- a/test/unit/monitor_log_destinations_test.go +++ b/test/unit/monitor_log_destinations_test.go @@ -9,7 +9,7 @@ import ( ) const ( - testLogsDestinationID = 12345 + testLogsDestinationID = 12345 ) func TestCreateLogsDestination(t *testing.T) { @@ -27,9 +27,10 @@ func TestCreateLogsDestination(t *testing.T) { Label: "my-logs-destination", Type: linodego.LogsDestinationTypeAkamaiObjectStorage, Details: linodego.LogsDestinationDetailsCreateOptions{ - AccessKeyID: "123", + AccessKeyID: "1ABCD23EFG4HIJKLMNO5", + AccessKeySecret: "1aB2CD3e4fgHi5JK6lmnop7qR8STU9VxYzabcdefHh", BucketName: "primary-bucket", - Host: "primary-bucket-1.us-east-12.linodeobjects.com", + Host: "primary-bucket-1.us-iad-12.linodeobjects.com", Path: &path, }, } @@ -41,7 +42,7 @@ func TestCreateLogsDestination(t *testing.T) { assert.Equal(t, "OBJ_logs_destination", dest.Label) assert.Equal(t, linodego.LogsDestinationStatusActive, dest.Status) assert.Equal(t, linodego.LogsDestinationTypeAkamaiObjectStorage, dest.Type) - assert.Equal(t, "123", string(dest.Details.AccessKeyID)) + assert.Equal(t, "1ABCD23EFG4HIJKLMNO5", string(dest.Details.AccessKeyID)) assert.Equal(t, "primary-bucket", dest.Details.BucketName) assert.Equal(t, "primary-bucket-1.us-iad-12.linodeobjects.com", dest.Details.Host) assert.Equal(t, "audit-logs", dest.Details.Path) @@ -66,7 +67,7 @@ func TestCreateLogsDestination_NoPath(t *testing.T) { AccessKeyID: "1ABCD23EFG4HIJKLMNO5", AccessKeySecret: "1aB2CD3e4fgHi5JK6lmnop7qR8STU9VxYzabcdefHh", BucketName: "primary-bucket", - Host: "primary-bucket-1.us-east-12.linodeobjects.com", + Host: "primary-bucket-1.us-iad-12.linodeobjects.com", // Path intentionally omitted }, } @@ -97,7 +98,7 @@ func TestGetLogsDestination(t *testing.T) { assert.Equal(t, "John Q. Linode", dest.CreatedBy) assert.Equal(t, "Jane Q. Linode", dest.UpdatedBy) assert.Equal(t, 1, dest.Version) - assert.Equal(t, "123", string(dest.Details.AccessKeyID)) + assert.Equal(t, "1ABCD23EFG4HIJKLMNO5", string(dest.Details.AccessKeyID)) assert.Equal(t, "primary-bucket", dest.Details.BucketName) assert.Equal(t, "primary-bucket-1.us-iad-12.linodeobjects.com", dest.Details.Host) assert.Equal(t, "audit-logs", dest.Details.Path) From d1c4b94f1540a16121a5223b27f1a8714cd3d953 Mon Sep 17 00:00:00 2001 From: akrzyszt Date: Wed, 6 May 2026 09:03:37 +0200 Subject: [PATCH 04/21] [DPS-42278] removed time fields hack + updated fixtures + resolved issue with always serialized storage key and secret - now test logs destination tests will always pass also in recording mode --- internal/parseabletime/parseable_time.go | 16 +- ...tLogsDestination_Create_InvalidSecret.yaml | 52 +++--- ...estLogsDestination_Create_InvalidType.yaml | 52 +++--- .../fixtures/TestLogsDestination_Delete.yaml | 92 ++++----- .../fixtures/TestLogsDestination_Get.yaml | 120 ++++++------ .../fixtures/TestLogsDestination_List.yaml | 124 +++++++------ .../TestLogsDestination_UpdateAndHistory.yaml | 174 +++++++++--------- test/integration/integration_suite_test.go | 16 +- 8 files changed, 326 insertions(+), 320 deletions(-) diff --git a/internal/parseabletime/parseable_time.go b/internal/parseabletime/parseable_time.go index 16578b60a..c471442db 100644 --- a/internal/parseabletime/parseable_time.go +++ b/internal/parseabletime/parseable_time.go @@ -11,14 +11,12 @@ const ( type ParseableTime time.Time func (p *ParseableTime) UnmarshalJSON(b []byte) error { - var err error - for _, layout := range []string{time.RFC3339, dateLayout} { - var t time.Time - if t, err = time.Parse(`"`+layout+`"`, string(b)); err == nil { - *p = ParseableTime(t) - return nil - } + t, err := time.Parse(`"`+dateLayout+`"`, string(b)) + if err != nil { + return err } - return err -} + *p = ParseableTime(t) + + return nil +} diff --git a/test/integration/fixtures/TestLogsDestination_Create_InvalidSecret.yaml b/test/integration/fixtures/TestLogsDestination_Create_InvalidSecret.yaml index 8b6bec83b..2b07ca25a 100644 --- a/test/integration/fixtures/TestLogsDestination_Create_InvalidSecret.yaml +++ b/test/integration/fixtures/TestLogsDestination_Create_InvalidSecret.yaml @@ -2,7 +2,7 @@ version: 1 interactions: - request: - body: '{"region":"us-southeast","label":"go-test-logs-destination-1776935214535455000","acl":"private","cors_enabled":false}' + body: '{"region":"us-southeast","label":"go-test-logs-destination-1778050357277893000","acl":"private","cors_enabled":false}' form: {} headers: Accept: @@ -14,8 +14,8 @@ interactions: url: https://api.linode.com/v4beta/object-storage/buckets method: POST response: - body: '{"hostname": "go-test-logs-destination-1776935214535455000.us-southeast-1.linodeobjects.com", - "label": "go-test-logs-destination-1776935214535455000", "created": "2018-01-02T03:04:05", + body: '{"hostname": "go-test-logs-destination-1778050357277893000.us-southeast-1.linodeobjects.com", + "label": "go-test-logs-destination-1778050357277893000", "created": "2018-01-02T03:04:05", "region": "us-southeast", "cluster": "us-southeast-1", "size": 0, "objects": 0, "endpoint_type": "E0", "s3_endpoint": "us-southeast-1.linodeobjects.com"}' headers: @@ -42,7 +42,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 23 Apr 2026 09:06:55 GMT + - Wed, 06 May 2026 06:52:38 GMT Pragma: - no-cache Strict-Transport-Security: @@ -66,7 +66,7 @@ interactions: code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1776935215819212000"}' + body: '{"label":"go-test-logs-destination-1778050358505777000"}' form: {} headers: Accept: @@ -78,18 +78,18 @@ interactions: url: https://api.linode.com/v4beta/object-storage/keys method: POST response: - body: '{"id": 3392840, "label": "go-test-logs-destination-1776935215819212000", - "access_key": "[SANITIZED]", "secret_key": "[SANITIZED]", - "limited": false, "bucket_access": null, "regions": [{"id": "us-east", "s3_endpoint": - "us-east-1.linodeobjects.com", "endpoint_type": "E0"}, {"id": "us-iad", "s3_endpoint": - "us-iad-10.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-lax", "s3_endpoint": - "us-lax-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-lax", "s3_endpoint": - "us-lax-4.linodeobjects.com", "endpoint_type": "E3"}, {"id": "us-mia", "s3_endpoint": - "us-mia-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-ord", "s3_endpoint": - "us-ord-10.linodeobjects.com", "endpoint_type": "E3"}, {"id": "us-ord", "s3_endpoint": - "us-ord-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-sea", "s3_endpoint": - "us-sea-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-southeast", - "s3_endpoint": "us-southeast-1.linodeobjects.com", "endpoint_type": "E0"}]}' + body: '{"id": 3576470, "label": "go-test-logs-destination-1778050358505777000", + "access_key": "[SANITIZED]", "secret_key": "[SANITIZED]", "limited": false, + "bucket_access": null, "regions": [{"id": "us-east", "s3_endpoint": "us-east-1.linodeobjects.com", + "endpoint_type": "E0"}, {"id": "us-iad", "s3_endpoint": "us-iad-10.linodeobjects.com", + "endpoint_type": "E1"}, {"id": "us-lax", "s3_endpoint": "us-lax-1.linodeobjects.com", + "endpoint_type": "E1"}, {"id": "us-lax", "s3_endpoint": "us-lax-4.linodeobjects.com", + "endpoint_type": "E3"}, {"id": "us-mia", "s3_endpoint": "us-mia-1.linodeobjects.com", + "endpoint_type": "E1"}, {"id": "us-ord", "s3_endpoint": "us-ord-10.linodeobjects.com", + "endpoint_type": "E3"}, {"id": "us-ord", "s3_endpoint": "us-ord-1.linodeobjects.com", + "endpoint_type": "E1"}, {"id": "us-sea", "s3_endpoint": "us-sea-1.linodeobjects.com", + "endpoint_type": "E1"}, {"id": "us-southeast", "s3_endpoint": "us-southeast-1.linodeobjects.com", + "endpoint_type": "E0"}]}' headers: Access-Control-Allow-Credentials: - "true" @@ -112,7 +112,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 23 Apr 2026 09:06:58 GMT + - Wed, 06 May 2026 06:52:41 GMT Pragma: - no-cache Strict-Transport-Security: @@ -137,7 +137,7 @@ interactions: code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1776935218797837000","type":"akamai_object_storage","details":{"access_key_id":"1","access_key_secret":"1","bucket_name":"go-test-logs-destination-1776935214535455000","host":"go-test-logs-destination-1776935214535455000.us-southeast-1.linodeobjects.com"}}' + body: '{"label":"go-test-logs-destination-1778050360962451000","type":"akamai_object_storage","details":{"access_key_id":"1","access_key_secret":"1","bucket_name":"go-test-logs-destination-1778050357277893000","host":"go-test-logs-destination-1778050357277893000.us-southeast-1.linodeobjects.com"}}' form: {} headers: Accept: @@ -167,7 +167,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 23 Apr 2026 09:06:59 GMT + - Wed, 06 May 2026 06:52:41 GMT Pragma: - no-cache Strict-Transport-Security: @@ -193,7 +193,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/keys/3392840 + url: https://api.linode.com/v4beta/object-storage/keys/3576470 method: DELETE response: body: '{}' @@ -221,7 +221,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 23 Apr 2026 09:07:00 GMT + - Wed, 06 May 2026 06:52:42 GMT Pragma: - no-cache Strict-Transport-Security: @@ -254,7 +254,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast/go-test-logs-destination-1776935214535455000/object-list + url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast/go-test-logs-destination-1778050357277893000/object-list method: GET response: body: '{"data": [], "next_marker": null, "is_truncated": false}' @@ -282,7 +282,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 23 Apr 2026 09:07:01 GMT + - Wed, 06 May 2026 06:52:43 GMT Pragma: - no-cache Strict-Transport-Security: @@ -316,7 +316,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast/go-test-logs-destination-1776935214535455000 + url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast/go-test-logs-destination-1778050357277893000 method: DELETE response: body: '{}' @@ -344,7 +344,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 23 Apr 2026 09:07:05 GMT + - Wed, 06 May 2026 06:52:46 GMT Pragma: - no-cache Strict-Transport-Security: diff --git a/test/integration/fixtures/TestLogsDestination_Create_InvalidType.yaml b/test/integration/fixtures/TestLogsDestination_Create_InvalidType.yaml index 358bd43bc..25967bf85 100644 --- a/test/integration/fixtures/TestLogsDestination_Create_InvalidType.yaml +++ b/test/integration/fixtures/TestLogsDestination_Create_InvalidType.yaml @@ -2,7 +2,7 @@ version: 1 interactions: - request: - body: '{"region":"us-southeast","label":"go-test-logs-destination-1776935225070012000","acl":"private","cors_enabled":false}' + body: '{"region":"us-southeast","label":"go-test-logs-destination-1778050366803952000","acl":"private","cors_enabled":false}' form: {} headers: Accept: @@ -14,8 +14,8 @@ interactions: url: https://api.linode.com/v4beta/object-storage/buckets method: POST response: - body: '{"hostname": "go-test-logs-destination-1776935225070012000.us-southeast-1.linodeobjects.com", - "label": "go-test-logs-destination-1776935225070012000", "created": "2018-01-02T03:04:05", + body: '{"hostname": "go-test-logs-destination-1778050366803952000.us-southeast-1.linodeobjects.com", + "label": "go-test-logs-destination-1778050366803952000", "created": "2018-01-02T03:04:05", "region": "us-southeast", "cluster": "us-southeast-1", "size": 0, "objects": 0, "endpoint_type": "E0", "s3_endpoint": "us-southeast-1.linodeobjects.com"}' headers: @@ -42,7 +42,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 23 Apr 2026 09:07:07 GMT + - Wed, 06 May 2026 06:52:49 GMT Pragma: - no-cache Strict-Transport-Security: @@ -66,7 +66,7 @@ interactions: code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1776935227025993000"}' + body: '{"label":"go-test-logs-destination-1778050369234853000"}' form: {} headers: Accept: @@ -78,18 +78,18 @@ interactions: url: https://api.linode.com/v4beta/object-storage/keys method: POST response: - body: '{"id": 3392842, "label": "go-test-logs-destination-1776935227025993000", - "access_key": "[SANITIZED]", "secret_key": "[SANITIZED]", - "limited": false, "bucket_access": null, "regions": [{"id": "us-east", "s3_endpoint": - "us-east-1.linodeobjects.com", "endpoint_type": "E0"}, {"id": "us-iad", "s3_endpoint": - "us-iad-10.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-lax", "s3_endpoint": - "us-lax-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-lax", "s3_endpoint": - "us-lax-4.linodeobjects.com", "endpoint_type": "E3"}, {"id": "us-mia", "s3_endpoint": - "us-mia-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-ord", "s3_endpoint": - "us-ord-10.linodeobjects.com", "endpoint_type": "E3"}, {"id": "us-ord", "s3_endpoint": - "us-ord-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-sea", "s3_endpoint": - "us-sea-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-southeast", - "s3_endpoint": "us-southeast-1.linodeobjects.com", "endpoint_type": "E0"}]}' + body: '{"id": 3576474, "label": "go-test-logs-destination-1778050369234853000", + "access_key": "[SANITIZED]", "secret_key": "[SANITIZED]", "limited": false, + "bucket_access": null, "regions": [{"id": "us-east", "s3_endpoint": "us-east-1.linodeobjects.com", + "endpoint_type": "E0"}, {"id": "us-iad", "s3_endpoint": "us-iad-10.linodeobjects.com", + "endpoint_type": "E1"}, {"id": "us-lax", "s3_endpoint": "us-lax-1.linodeobjects.com", + "endpoint_type": "E1"}, {"id": "us-lax", "s3_endpoint": "us-lax-4.linodeobjects.com", + "endpoint_type": "E3"}, {"id": "us-mia", "s3_endpoint": "us-mia-1.linodeobjects.com", + "endpoint_type": "E1"}, {"id": "us-ord", "s3_endpoint": "us-ord-10.linodeobjects.com", + "endpoint_type": "E3"}, {"id": "us-ord", "s3_endpoint": "us-ord-1.linodeobjects.com", + "endpoint_type": "E1"}, {"id": "us-sea", "s3_endpoint": "us-sea-1.linodeobjects.com", + "endpoint_type": "E1"}, {"id": "us-southeast", "s3_endpoint": "us-southeast-1.linodeobjects.com", + "endpoint_type": "E0"}]}' headers: Access-Control-Allow-Credentials: - "true" @@ -112,7 +112,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 23 Apr 2026 09:07:09 GMT + - Wed, 06 May 2026 06:52:51 GMT Pragma: - no-cache Strict-Transport-Security: @@ -137,7 +137,7 @@ interactions: code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1776935229407727000","type":"invalid_type","details":{"access_key_id":"7YJAWT8024PHAT0JP158","access_key_secret":"SvXbo4kaCGZvNOlWdij0nKkZbyQus2Z0kpxHE1bK","bucket_name":"go-test-logs-destination-1776935225070012000","host":"go-test-logs-destination-1776935225070012000.us-southeast-1.linodeobjects.com"}}' + body: '{"label":"go-test-logs-destination-1778050371723025000","type":"invalid_type","details":{"access_key_id":"[SANITIZED]","access_key_secret":"[SANITIZED]","bucket_name":"go-test-logs-destination-1778050366803952000","host":"go-test-logs-destination-1778050366803952000.us-southeast-1.linodeobjects.com"}}' form: {} headers: Accept: @@ -167,7 +167,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 23 Apr 2026 09:07:09 GMT + - Wed, 06 May 2026 06:52:52 GMT Pragma: - no-cache Strict-Transport-Security: @@ -193,7 +193,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/keys/3392842 + url: https://api.linode.com/v4beta/object-storage/keys/3576474 method: DELETE response: body: '{}' @@ -221,7 +221,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 23 Apr 2026 09:07:10 GMT + - Wed, 06 May 2026 06:52:52 GMT Pragma: - no-cache Strict-Transport-Security: @@ -254,7 +254,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast/go-test-logs-destination-1776935225070012000/object-list + url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast/go-test-logs-destination-1778050366803952000/object-list method: GET response: body: '{"data": [], "next_marker": null, "is_truncated": false}' @@ -282,7 +282,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 23 Apr 2026 09:07:11 GMT + - Wed, 06 May 2026 06:52:53 GMT Pragma: - no-cache Strict-Transport-Security: @@ -316,7 +316,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast/go-test-logs-destination-1776935225070012000 + url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast/go-test-logs-destination-1778050366803952000 method: DELETE response: body: '{}' @@ -344,7 +344,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 23 Apr 2026 09:07:15 GMT + - Wed, 06 May 2026 06:52:56 GMT Pragma: - no-cache Strict-Transport-Security: diff --git a/test/integration/fixtures/TestLogsDestination_Delete.yaml b/test/integration/fixtures/TestLogsDestination_Delete.yaml index 8b8ab5eff..132192d5a 100644 --- a/test/integration/fixtures/TestLogsDestination_Delete.yaml +++ b/test/integration/fixtures/TestLogsDestination_Delete.yaml @@ -2,7 +2,7 @@ version: 1 interactions: - request: - body: '{"region":"us-southeast","label":"go-test-logs-destination-1776935168925089000","acl":"private","cors_enabled":false}' + body: '{"region":"us-southeast","label":"go-test-logs-destination-1778050316010853000","acl":"private","cors_enabled":false}' form: {} headers: Accept: @@ -14,8 +14,8 @@ interactions: url: https://api.linode.com/v4beta/object-storage/buckets method: POST response: - body: '{"hostname": "go-test-logs-destination-1776935168925089000.us-southeast-1.linodeobjects.com", - "label": "go-test-logs-destination-1776935168925089000", "created": "2018-01-02T03:04:05", + body: '{"hostname": "go-test-logs-destination-1778050316010853000.us-southeast-1.linodeobjects.com", + "label": "go-test-logs-destination-1778050316010853000", "created": "2018-01-02T03:04:05", "region": "us-southeast", "cluster": "us-southeast-1", "size": 0, "objects": 0, "endpoint_type": "E0", "s3_endpoint": "us-southeast-1.linodeobjects.com"}' headers: @@ -42,7 +42,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 23 Apr 2026 09:06:11 GMT + - Wed, 06 May 2026 06:51:57 GMT Pragma: - no-cache Strict-Transport-Security: @@ -66,7 +66,7 @@ interactions: code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1776935170909766000"}' + body: '{"label":"go-test-logs-destination-1778050317804344000"}' form: {} headers: Accept: @@ -78,18 +78,18 @@ interactions: url: https://api.linode.com/v4beta/object-storage/keys method: POST response: - body: '{"id": 3392832, "label": "go-test-logs-destination-1776935170909766000", - "access_key": "[SANITIZED]", "secret_key": "[SANITIZED]", - "limited": false, "bucket_access": null, "regions": [{"id": "us-east", "s3_endpoint": - "us-east-1.linodeobjects.com", "endpoint_type": "E0"}, {"id": "us-iad", "s3_endpoint": - "us-iad-10.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-lax", "s3_endpoint": - "us-lax-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-lax", "s3_endpoint": - "us-lax-4.linodeobjects.com", "endpoint_type": "E3"}, {"id": "us-mia", "s3_endpoint": - "us-mia-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-ord", "s3_endpoint": - "us-ord-10.linodeobjects.com", "endpoint_type": "E3"}, {"id": "us-ord", "s3_endpoint": - "us-ord-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-sea", "s3_endpoint": - "us-sea-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-southeast", - "s3_endpoint": "us-southeast-1.linodeobjects.com", "endpoint_type": "E0"}]}' + body: '{"id": 3576466, "label": "go-test-logs-destination-1778050317804344000", + "access_key": "[SANITIZED]", "secret_key": "[SANITIZED]", "limited": false, + "bucket_access": null, "regions": [{"id": "us-east", "s3_endpoint": "us-east-1.linodeobjects.com", + "endpoint_type": "E0"}, {"id": "us-iad", "s3_endpoint": "us-iad-10.linodeobjects.com", + "endpoint_type": "E1"}, {"id": "us-lax", "s3_endpoint": "us-lax-1.linodeobjects.com", + "endpoint_type": "E1"}, {"id": "us-lax", "s3_endpoint": "us-lax-4.linodeobjects.com", + "endpoint_type": "E3"}, {"id": "us-mia", "s3_endpoint": "us-mia-1.linodeobjects.com", + "endpoint_type": "E1"}, {"id": "us-ord", "s3_endpoint": "us-ord-10.linodeobjects.com", + "endpoint_type": "E3"}, {"id": "us-ord", "s3_endpoint": "us-ord-1.linodeobjects.com", + "endpoint_type": "E1"}, {"id": "us-sea", "s3_endpoint": "us-sea-1.linodeobjects.com", + "endpoint_type": "E1"}, {"id": "us-southeast", "s3_endpoint": "us-southeast-1.linodeobjects.com", + "endpoint_type": "E0"}]}' headers: Access-Control-Allow-Credentials: - "true" @@ -112,7 +112,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 23 Apr 2026 09:06:13 GMT + - Wed, 06 May 2026 06:52:00 GMT Pragma: - no-cache Strict-Transport-Security: @@ -137,7 +137,7 @@ interactions: code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1776935173787849000","type":"akamai_object_storage","details":{"access_key_id":"HJCUA2PW2RBVQ65NJ80G","access_key_secret":"6ZCgt2eLnuvBkrpmZYPXg4QkZDY7a6gjUrzQQsnh","bucket_name":"go-test-logs-destination-1776935168925089000","host":"go-test-logs-destination-1776935168925089000.us-southeast-1.linodeobjects.com"}}' + body: '{"label":"go-test-logs-destination-1778050319979774000","type":"akamai_object_storage","details":{"access_key_id":"[SANITIZED]","access_key_secret":"[SANITIZED]","bucket_name":"go-test-logs-destination-1778050316010853000","host":"go-test-logs-destination-1778050316010853000.us-southeast-1.linodeobjects.com"}}' form: {} headers: Accept: @@ -149,12 +149,12 @@ interactions: url: https://api.linode.com/v4beta/monitor/streams/destinations method: POST response: - body: '{"id": 288, "label": "go-test-logs-destination-1776935173787849000", "type": - "akamai_object_storage", "details": {"host": "go-test-logs-destination-1776935168925089000.us-southeast-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1776935168925089000", "access_key_id": - "HJCUA2PW2RBVQ65NJ80G"}, "version": 1, "status": "active", "created_by": "akrzyszt_dola_testnet_admin", - "created": "2018-01-02T03:04:05Z", "updated_by": "akrzyszt_dola_testnet_admin", - "updated": "2018-01-02T03:04:05Z"}' + body: '{"id": 404, "label": "go-test-logs-destination-1778050319979774000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778050316010853000.us-southeast-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1778050316010853000", "access_key_id": + "[SANITIZED]"}, "version": 1, "status": "active", "created_by": "akrzyszt_dola_testnet_admin", + "created": "2018-01-02T03:04:05", "updated_by": "akrzyszt_dola_testnet_admin", + "updated": "2018-01-02T03:04:05"}' headers: Access-Control-Allow-Credentials: - "true" @@ -173,13 +173,13 @@ interactions: Connection: - keep-alive Content-Length: - - "501" + - "499" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Thu, 23 Apr 2026 09:06:14 GMT + - Wed, 06 May 2026 06:52:00 GMT Pragma: - no-cache Strict-Transport-Security: @@ -212,7 +212,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations/288 + url: https://api.linode.com/v4beta/monitor/streams/destinations/404 method: DELETE response: body: '{}' @@ -240,7 +240,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 23 Apr 2026 09:06:14 GMT + - Wed, 06 May 2026 06:52:01 GMT Pragma: - no-cache Strict-Transport-Security: @@ -273,7 +273,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations/288 + url: https://api.linode.com/v4beta/monitor/streams/destinations/404 method: GET response: body: '{"errors": [{"reason": "Destination not found"}]}' @@ -295,7 +295,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 23 Apr 2026 09:06:15 GMT + - Wed, 06 May 2026 06:52:01 GMT Pragma: - no-cache Strict-Transport-Security: @@ -323,7 +323,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations/288 + url: https://api.linode.com/v4beta/monitor/streams/destinations/404 method: GET response: body: '{"errors": [{"reason": "Destination not found"}]}' @@ -345,7 +345,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 23 Apr 2026 09:06:15 GMT + - Wed, 06 May 2026 06:52:01 GMT Pragma: - no-cache Strict-Transport-Security: @@ -373,7 +373,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/keys/3392832 + url: https://api.linode.com/v4beta/object-storage/keys/3576466 method: DELETE response: body: '{}' @@ -401,7 +401,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 23 Apr 2026 09:06:16 GMT + - Wed, 06 May 2026 06:52:02 GMT Pragma: - no-cache Strict-Transport-Security: @@ -434,11 +434,11 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast/go-test-logs-destination-1776935168925089000/object-list + url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast/go-test-logs-destination-1778050316010853000/object-list method: GET response: - body: '{"data": [{"name": "cloud-logs-test-connection-20260423T090614", "size": - 9, "last_modified": "2018-01-02T03:04:05.385Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", + body: '{"data": [{"name": "cloud-logs-test-connection-20260506T065200", "size": + 9, "last_modified": "2018-01-02T03:04:05.602Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}], "next_marker": null, "is_truncated": false}' headers: @@ -465,7 +465,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 23 Apr 2026 09:06:18 GMT + - Wed, 06 May 2026 06:52:03 GMT Pragma: - no-cache Strict-Transport-Security: @@ -490,7 +490,7 @@ interactions: code: 200 duration: "" - request: - body: '{"name":"cloud-logs-test-connection-20260423T090614","method":"DELETE","expires_in":360}' + body: '{"name":"cloud-logs-test-connection-20260506T065200","method":"DELETE","expires_in":360}' form: {} headers: Accept: @@ -499,10 +499,10 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1776935168925089000/object-url + url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1778050316010853000/object-url method: POST response: - body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1776935168925089000/cloud-logs-test-connection-20260423T090614?Signature=La29qMBPrSnTNf%2BaF%2B4u%2BvEiWvw%3D&Expires=1776935539&AWSAccessKeyID=SANITIZED", + body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1778050316010853000/cloud-logs-test-connection-20260506T065200?Signature=6uEELrZEPnQMzw5TGqwIE23mSRM%3D&Expires=1778050683&AWSAccessKeyID=SANITIZED", "exists": true}' headers: Access-Control-Allow-Credentials: @@ -522,13 +522,13 @@ interactions: Connection: - keep-alive Content-Length: - - "261" + - "255" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Thu, 23 Apr 2026 09:06:19 GMT + - Wed, 06 May 2026 06:52:04 GMT Pragma: - no-cache Strict-Transport-Security: @@ -561,7 +561,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast/go-test-logs-destination-1776935168925089000 + url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast/go-test-logs-destination-1778050316010853000 method: DELETE response: body: '{}' @@ -589,7 +589,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 23 Apr 2026 09:06:23 GMT + - Wed, 06 May 2026 06:52:07 GMT Pragma: - no-cache Strict-Transport-Security: diff --git a/test/integration/fixtures/TestLogsDestination_Get.yaml b/test/integration/fixtures/TestLogsDestination_Get.yaml index 81303b94c..6402d628a 100644 --- a/test/integration/fixtures/TestLogsDestination_Get.yaml +++ b/test/integration/fixtures/TestLogsDestination_Get.yaml @@ -2,7 +2,7 @@ version: 1 interactions: - request: - body: '{"region":"us-southeast","label":"go-test-logs-destination-1776935183515044000","acl":"private","cors_enabled":false}' + body: '{"region":"us-southeast","label":"go-test-logs-destination-1778050327857586000","acl":"private","cors_enabled":false}' form: {} headers: Accept: @@ -14,8 +14,8 @@ interactions: url: https://api.linode.com/v4beta/object-storage/buckets method: POST response: - body: '{"hostname": "go-test-logs-destination-1776935183515044000.us-southeast-1.linodeobjects.com", - "label": "go-test-logs-destination-1776935183515044000", "created": "2018-01-02T03:04:05", + body: '{"hostname": "go-test-logs-destination-1778050327857586000.us-southeast-1.linodeobjects.com", + "label": "go-test-logs-destination-1778050327857586000", "created": "2018-01-02T03:04:05", "region": "us-southeast", "cluster": "us-southeast-1", "size": 0, "objects": 0, "endpoint_type": "E0", "s3_endpoint": "us-southeast-1.linodeobjects.com"}' headers: @@ -42,7 +42,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 23 Apr 2026 09:06:25 GMT + - Wed, 06 May 2026 06:52:09 GMT Pragma: - no-cache Strict-Transport-Security: @@ -66,7 +66,7 @@ interactions: code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1776935185523240000"}' + body: '{"label":"go-test-logs-destination-1778050329787087000"}' form: {} headers: Accept: @@ -78,18 +78,18 @@ interactions: url: https://api.linode.com/v4beta/object-storage/keys method: POST response: - body: '{"id": 3392834, "label": "go-test-logs-destination-1776935185523240000", - "access_key": "[SANITIZED]", "secret_key": "[SANITIZED]", - "limited": false, "bucket_access": null, "regions": [{"id": "us-east", "s3_endpoint": - "us-east-1.linodeobjects.com", "endpoint_type": "E0"}, {"id": "us-iad", "s3_endpoint": - "us-iad-10.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-lax", "s3_endpoint": - "us-lax-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-lax", "s3_endpoint": - "us-lax-4.linodeobjects.com", "endpoint_type": "E3"}, {"id": "us-mia", "s3_endpoint": - "us-mia-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-ord", "s3_endpoint": - "us-ord-10.linodeobjects.com", "endpoint_type": "E3"}, {"id": "us-ord", "s3_endpoint": - "us-ord-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-sea", "s3_endpoint": - "us-sea-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-southeast", - "s3_endpoint": "us-southeast-1.linodeobjects.com", "endpoint_type": "E0"}]}' + body: '{"id": 3576467, "label": "go-test-logs-destination-1778050329787087000", + "access_key": "[SANITIZED]", "secret_key": "[SANITIZED]", "limited": false, + "bucket_access": null, "regions": [{"id": "us-east", "s3_endpoint": "us-east-1.linodeobjects.com", + "endpoint_type": "E0"}, {"id": "us-iad", "s3_endpoint": "us-iad-10.linodeobjects.com", + "endpoint_type": "E1"}, {"id": "us-lax", "s3_endpoint": "us-lax-1.linodeobjects.com", + "endpoint_type": "E1"}, {"id": "us-lax", "s3_endpoint": "us-lax-4.linodeobjects.com", + "endpoint_type": "E3"}, {"id": "us-mia", "s3_endpoint": "us-mia-1.linodeobjects.com", + "endpoint_type": "E1"}, {"id": "us-ord", "s3_endpoint": "us-ord-10.linodeobjects.com", + "endpoint_type": "E3"}, {"id": "us-ord", "s3_endpoint": "us-ord-1.linodeobjects.com", + "endpoint_type": "E1"}, {"id": "us-sea", "s3_endpoint": "us-sea-1.linodeobjects.com", + "endpoint_type": "E1"}, {"id": "us-southeast", "s3_endpoint": "us-southeast-1.linodeobjects.com", + "endpoint_type": "E0"}]}' headers: Access-Control-Allow-Credentials: - "true" @@ -112,7 +112,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 23 Apr 2026 09:06:28 GMT + - Wed, 06 May 2026 06:52:12 GMT Pragma: - no-cache Strict-Transport-Security: @@ -137,7 +137,7 @@ interactions: code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1776935187952980000","type":"akamai_object_storage","details":{"access_key_id":"Z08WJ4808OLDVKQQC2WQ","access_key_secret":"jPeKCLARMxLZ6yjhqsQj5HU85PQKqHVytvZjS3ak","bucket_name":"go-test-logs-destination-1776935183515044000","host":"go-test-logs-destination-1776935183515044000.us-southeast-1.linodeobjects.com"}}' + body: '{"label":"go-test-logs-destination-1778050332159629000","type":"akamai_object_storage","details":{"access_key_id":"[SANITIZED]","access_key_secret":"[SANITIZED]","bucket_name":"go-test-logs-destination-1778050327857586000","host":"go-test-logs-destination-1778050327857586000.us-southeast-1.linodeobjects.com"}}' form: {} headers: Accept: @@ -149,12 +149,12 @@ interactions: url: https://api.linode.com/v4beta/monitor/streams/destinations method: POST response: - body: '{"id": 289, "label": "go-test-logs-destination-1776935187952980000", "type": - "akamai_object_storage", "details": {"host": "go-test-logs-destination-1776935183515044000.us-southeast-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1776935183515044000", "access_key_id": - "Z08WJ4808OLDVKQQC2WQ"}, "version": 1, "status": "active", "created_by": "akrzyszt_dola_testnet_admin", - "created": "2018-01-02T03:04:05Z", "updated_by": "akrzyszt_dola_testnet_admin", - "updated": "2018-01-02T03:04:05Z"}' + body: '{"id": 405, "label": "go-test-logs-destination-1778050332159629000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778050327857586000.us-southeast-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1778050327857586000", "access_key_id": + "[SANITIZED]"}, "version": 1, "status": "active", "created_by": "akrzyszt_dola_testnet_admin", + "created": "2018-01-02T03:04:05", "updated_by": "akrzyszt_dola_testnet_admin", + "updated": "2018-01-02T03:04:05"}' headers: Access-Control-Allow-Credentials: - "true" @@ -173,13 +173,13 @@ interactions: Connection: - keep-alive Content-Length: - - "501" + - "499" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Thu, 23 Apr 2026 09:06:28 GMT + - Wed, 06 May 2026 06:52:12 GMT Pragma: - no-cache Strict-Transport-Security: @@ -212,15 +212,15 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations/289 + url: https://api.linode.com/v4beta/monitor/streams/destinations/405 method: GET response: - body: '{"id": 289, "label": "go-test-logs-destination-1776935187952980000", "type": - "akamai_object_storage", "details": {"host": "go-test-logs-destination-1776935183515044000.us-southeast-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1776935183515044000", "access_key_id": - "Z08WJ4808OLDVKQQC2WQ"}, "version": 1, "status": "active", "created_by": "akrzyszt_dola_testnet_admin", - "created": "2018-01-02T03:04:05Z", "updated_by": "akrzyszt_dola_testnet_admin", - "updated": "2018-01-02T03:04:05Z"}' + body: '{"id": 405, "label": "go-test-logs-destination-1778050332159629000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778050327857586000.us-southeast-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1778050327857586000", "access_key_id": + "[SANITIZED]"}, "version": 1, "status": "active", "created_by": "akrzyszt_dola_testnet_admin", + "created": "2018-01-02T03:04:05", "updated_by": "akrzyszt_dola_testnet_admin", + "updated": "2018-01-02T03:04:05"}' headers: Access-Control-Allow-Credentials: - "true" @@ -239,13 +239,13 @@ interactions: Connection: - keep-alive Content-Length: - - "501" + - "499" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Thu, 23 Apr 2026 09:06:29 GMT + - Wed, 06 May 2026 06:52:13 GMT Pragma: - no-cache Strict-Transport-Security: @@ -279,15 +279,15 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations/289 + url: https://api.linode.com/v4beta/monitor/streams/destinations/405 method: GET response: - body: '{"id": 289, "label": "go-test-logs-destination-1776935187952980000", "type": - "akamai_object_storage", "details": {"host": "go-test-logs-destination-1776935183515044000.us-southeast-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1776935183515044000", "access_key_id": - "Z08WJ4808OLDVKQQC2WQ"}, "version": 1, "status": "active", "created_by": "akrzyszt_dola_testnet_admin", - "created": "2018-01-02T03:04:05Z", "updated_by": "akrzyszt_dola_testnet_admin", - "updated": "2018-01-02T03:04:05Z"}' + body: '{"id": 405, "label": "go-test-logs-destination-1778050332159629000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778050327857586000.us-southeast-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1778050327857586000", "access_key_id": + "[SANITIZED]"}, "version": 1, "status": "active", "created_by": "akrzyszt_dola_testnet_admin", + "created": "2018-01-02T03:04:05", "updated_by": "akrzyszt_dola_testnet_admin", + "updated": "2018-01-02T03:04:05"}' headers: Access-Control-Allow-Credentials: - "true" @@ -306,13 +306,13 @@ interactions: Connection: - keep-alive Content-Length: - - "501" + - "499" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Thu, 23 Apr 2026 09:06:29 GMT + - Wed, 06 May 2026 06:52:13 GMT Pragma: - no-cache Strict-Transport-Security: @@ -346,7 +346,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations/289 + url: https://api.linode.com/v4beta/monitor/streams/destinations/405 method: DELETE response: body: '{}' @@ -374,7 +374,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 23 Apr 2026 09:06:29 GMT + - Wed, 06 May 2026 06:52:13 GMT Pragma: - no-cache Strict-Transport-Security: @@ -407,7 +407,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/keys/3392834 + url: https://api.linode.com/v4beta/object-storage/keys/3576467 method: DELETE response: body: '{}' @@ -435,7 +435,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 23 Apr 2026 09:06:30 GMT + - Wed, 06 May 2026 06:52:14 GMT Pragma: - no-cache Strict-Transport-Security: @@ -468,11 +468,11 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast/go-test-logs-destination-1776935183515044000/object-list + url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast/go-test-logs-destination-1778050327857586000/object-list method: GET response: - body: '{"data": [{"name": "cloud-logs-test-connection-20260423T090628", "size": - 9, "last_modified": "2018-01-02T03:04:05.576Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", + body: '{"data": [{"name": "cloud-logs-test-connection-20260506T065212", "size": + 9, "last_modified": "2018-01-02T03:04:05.778Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}], "next_marker": null, "is_truncated": false}' headers: @@ -499,7 +499,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 23 Apr 2026 09:06:31 GMT + - Wed, 06 May 2026 06:52:15 GMT Pragma: - no-cache Strict-Transport-Security: @@ -524,7 +524,7 @@ interactions: code: 200 duration: "" - request: - body: '{"name":"cloud-logs-test-connection-20260423T090628","method":"DELETE","expires_in":360}' + body: '{"name":"cloud-logs-test-connection-20260506T065212","method":"DELETE","expires_in":360}' form: {} headers: Accept: @@ -533,10 +533,10 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1776935183515044000/object-url + url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1778050327857586000/object-url method: POST response: - body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1776935183515044000/cloud-logs-test-connection-20260423T090628?Signature=RQ%2FMxFwUCSnFctDtZFiWxO4Aw0k%3D&Expires=1776935553&AWSAccessKeyID=SANITIZED", + body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1778050327857586000/cloud-logs-test-connection-20260506T065212?Signature=4qcGXTa9wKZ85RInpMJy6B7dF7M%3D&Expires=1778050697&AWSAccessKeyID=SANITIZED", "exists": true}' headers: Access-Control-Allow-Credentials: @@ -556,13 +556,13 @@ interactions: Connection: - keep-alive Content-Length: - - "257" + - "255" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Thu, 23 Apr 2026 09:06:33 GMT + - Wed, 06 May 2026 06:52:17 GMT Pragma: - no-cache Strict-Transport-Security: @@ -595,7 +595,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast/go-test-logs-destination-1776935183515044000 + url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast/go-test-logs-destination-1778050327857586000 method: DELETE response: body: '{}' @@ -623,7 +623,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 23 Apr 2026 09:06:37 GMT + - Wed, 06 May 2026 06:52:20 GMT Pragma: - no-cache Strict-Transport-Security: diff --git a/test/integration/fixtures/TestLogsDestination_List.yaml b/test/integration/fixtures/TestLogsDestination_List.yaml index c94552470..0579b2765 100644 --- a/test/integration/fixtures/TestLogsDestination_List.yaml +++ b/test/integration/fixtures/TestLogsDestination_List.yaml @@ -2,7 +2,7 @@ version: 1 interactions: - request: - body: '{"region":"us-southeast","label":"go-test-logs-destination-1776935154478233000","acl":"private","cors_enabled":false}' + body: '{"region":"us-southeast","label":"go-test-logs-destination-1778050304029729000","acl":"private","cors_enabled":false}' form: {} headers: Accept: @@ -14,8 +14,8 @@ interactions: url: https://api.linode.com/v4beta/object-storage/buckets method: POST response: - body: '{"hostname": "go-test-logs-destination-1776935154478233000.us-southeast-1.linodeobjects.com", - "label": "go-test-logs-destination-1776935154478233000", "created": "2018-01-02T03:04:05", + body: '{"hostname": "go-test-logs-destination-1778050304029729000.us-southeast-1.linodeobjects.com", + "label": "go-test-logs-destination-1778050304029729000", "created": "2018-01-02T03:04:05", "region": "us-southeast", "cluster": "us-southeast-1", "size": 0, "objects": 0, "endpoint_type": "E0", "s3_endpoint": "us-southeast-1.linodeobjects.com"}' headers: @@ -42,7 +42,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 23 Apr 2026 09:05:57 GMT + - Wed, 06 May 2026 06:51:45 GMT Pragma: - no-cache Strict-Transport-Security: @@ -66,7 +66,7 @@ interactions: code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1776935157161258000"}' + body: '{"label":"go-test-logs-destination-1778050305259697000"}' form: {} headers: Accept: @@ -78,18 +78,18 @@ interactions: url: https://api.linode.com/v4beta/object-storage/keys method: POST response: - body: '{"id": 3392828, "label": "go-test-logs-destination-1776935157161258000", - "access_key": "[SANITIZED]", "secret_key": "[SANITIZED]", - "limited": false, "bucket_access": null, "regions": [{"id": "us-east", "s3_endpoint": - "us-east-1.linodeobjects.com", "endpoint_type": "E0"}, {"id": "us-iad", "s3_endpoint": - "us-iad-10.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-lax", "s3_endpoint": - "us-lax-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-lax", "s3_endpoint": - "us-lax-4.linodeobjects.com", "endpoint_type": "E3"}, {"id": "us-mia", "s3_endpoint": - "us-mia-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-ord", "s3_endpoint": - "us-ord-10.linodeobjects.com", "endpoint_type": "E3"}, {"id": "us-ord", "s3_endpoint": - "us-ord-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-sea", "s3_endpoint": - "us-sea-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-southeast", - "s3_endpoint": "us-southeast-1.linodeobjects.com", "endpoint_type": "E0"}]}' + body: '{"id": 3576463, "label": "go-test-logs-destination-1778050305259697000", + "access_key": "[SANITIZED]", "secret_key": "[SANITIZED]", "limited": false, + "bucket_access": null, "regions": [{"id": "us-east", "s3_endpoint": "us-east-1.linodeobjects.com", + "endpoint_type": "E0"}, {"id": "us-iad", "s3_endpoint": "us-iad-10.linodeobjects.com", + "endpoint_type": "E1"}, {"id": "us-lax", "s3_endpoint": "us-lax-1.linodeobjects.com", + "endpoint_type": "E1"}, {"id": "us-lax", "s3_endpoint": "us-lax-4.linodeobjects.com", + "endpoint_type": "E3"}, {"id": "us-mia", "s3_endpoint": "us-mia-1.linodeobjects.com", + "endpoint_type": "E1"}, {"id": "us-ord", "s3_endpoint": "us-ord-10.linodeobjects.com", + "endpoint_type": "E3"}, {"id": "us-ord", "s3_endpoint": "us-ord-1.linodeobjects.com", + "endpoint_type": "E1"}, {"id": "us-sea", "s3_endpoint": "us-sea-1.linodeobjects.com", + "endpoint_type": "E1"}, {"id": "us-southeast", "s3_endpoint": "us-southeast-1.linodeobjects.com", + "endpoint_type": "E0"}]}' headers: Access-Control-Allow-Credentials: - "true" @@ -112,7 +112,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 23 Apr 2026 09:06:00 GMT + - Wed, 06 May 2026 06:51:48 GMT Pragma: - no-cache Strict-Transport-Security: @@ -137,7 +137,7 @@ interactions: code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1776935160092372000","type":"akamai_object_storage","details":{"access_key_id":"14IYT7KPO6CY94X9U19D","access_key_secret":"rECdcvgNTWhHnatv926l5YkkDr3lMMuL02lvsE1q","bucket_name":"go-test-logs-destination-1776935154478233000","host":"go-test-logs-destination-1776935154478233000.us-southeast-1.linodeobjects.com"}}' + body: '{"label":"go-test-logs-destination-1778050307918035000","type":"akamai_object_storage","details":{"access_key_id":"[SANITIZED]","access_key_secret":"[SANITIZED]","bucket_name":"go-test-logs-destination-1778050304029729000","host":"go-test-logs-destination-1778050304029729000.us-southeast-1.linodeobjects.com"}}' form: {} headers: Accept: @@ -149,12 +149,12 @@ interactions: url: https://api.linode.com/v4beta/monitor/streams/destinations method: POST response: - body: '{"id": 287, "label": "go-test-logs-destination-1776935160092372000", "type": - "akamai_object_storage", "details": {"host": "go-test-logs-destination-1776935154478233000.us-southeast-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1776935154478233000", "access_key_id": - "14IYT7KPO6CY94X9U19D"}, "version": 1, "status": "active", "created_by": "akrzyszt_dola_testnet_admin", - "created": "2018-01-02T03:04:05Z", "updated_by": "akrzyszt_dola_testnet_admin", - "updated": "2018-01-02T03:04:05Z"}' + body: '{"id": 403, "label": "go-test-logs-destination-1778050307918035000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778050304029729000.us-southeast-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1778050304029729000", "access_key_id": + "[SANITIZED]"}, "version": 1, "status": "active", "created_by": "akrzyszt_dola_testnet_admin", + "created": "2018-01-02T03:04:05", "updated_by": "akrzyszt_dola_testnet_admin", + "updated": "2018-01-02T03:04:05"}' headers: Access-Control-Allow-Credentials: - "true" @@ -173,13 +173,13 @@ interactions: Connection: - keep-alive Content-Length: - - "501" + - "499" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Thu, 23 Apr 2026 09:06:00 GMT + - Wed, 06 May 2026 06:51:48 GMT Pragma: - no-cache Strict-Transport-Security: @@ -215,12 +215,17 @@ interactions: url: https://api.linode.com/v4beta/monitor/streams/destinations?page=1 method: GET response: - body: '{"pages": 1, "page": 1, "results": 1, "data": [{"id": 287, "label": "go-test-logs-destination-1776935160092372000", - "type": "akamai_object_storage", "details": {"host": "go-test-logs-destination-1776935154478233000.us-southeast-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1776935154478233000", "access_key_id": - "14IYT7KPO6CY94X9U19D"}, "version": 1, "status": "active", "created_by": "akrzyszt_dola_testnet_admin", - "created": "2018-01-02T03:04:05Z", "updated_by": "akrzyszt_dola_testnet_admin", - "updated": "2018-01-02T03:04:05Z"}]}' + body: '{"pages": 1, "page": 1, "results": 2, "data": [{"id": 296, "label": "go-test-logs-destination-1777279324004188000", + "type": "akamai_object_storage", "details": {"host": "go-test-logs-destination-1777279319044234000.us-southeast-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1777279319044234000", "access_key_id": + "[SANITIZED]"}, "version": 1, "status": "active", "created_by": "dola-klipensk", + "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": + "2018-01-02T03:04:05"}, {"id": 403, "label": "go-test-logs-destination-1778050307918035000", + "type": "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778050304029729000.us-southeast-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1778050304029729000", "access_key_id": + "[SANITIZED]"}, "version": 1, "status": "active", "created_by": "akrzyszt_dola_testnet_admin", + "created": "2018-01-02T03:04:05", "updated_by": "akrzyszt_dola_testnet_admin", + "updated": "2018-01-02T03:04:05"}]}' headers: Access-Control-Allow-Credentials: - "true" @@ -238,14 +243,12 @@ interactions: - max-age=0, no-cache, no-store Connection: - keep-alive - Content-Length: - - "550" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Thu, 23 Apr 2026 09:06:01 GMT + - Wed, 06 May 2026 06:51:49 GMT Pragma: - no-cache Strict-Transport-Security: @@ -253,6 +256,7 @@ interactions: Vary: - Authorization, X-Filter - Authorization, X-Filter + - Accept-Encoding X-Accepted-Oauth-Scopes: - monitor:read_only X-Content-Type-Options: @@ -279,15 +283,15 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations/287 + url: https://api.linode.com/v4beta/monitor/streams/destinations/403 method: GET response: - body: '{"id": 287, "label": "go-test-logs-destination-1776935160092372000", "type": - "akamai_object_storage", "details": {"host": "go-test-logs-destination-1776935154478233000.us-southeast-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1776935154478233000", "access_key_id": - "14IYT7KPO6CY94X9U19D"}, "version": 1, "status": "active", "created_by": "akrzyszt_dola_testnet_admin", - "created": "2018-01-02T03:04:05Z", "updated_by": "akrzyszt_dola_testnet_admin", - "updated": "2018-01-02T03:04:05Z"}' + body: '{"id": 403, "label": "go-test-logs-destination-1778050307918035000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778050304029729000.us-southeast-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1778050304029729000", "access_key_id": + "[SANITIZED]"}, "version": 1, "status": "active", "created_by": "akrzyszt_dola_testnet_admin", + "created": "2018-01-02T03:04:05", "updated_by": "akrzyszt_dola_testnet_admin", + "updated": "2018-01-02T03:04:05"}' headers: Access-Control-Allow-Credentials: - "true" @@ -306,13 +310,13 @@ interactions: Connection: - keep-alive Content-Length: - - "501" + - "499" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Thu, 23 Apr 2026 09:06:01 GMT + - Wed, 06 May 2026 06:51:49 GMT Pragma: - no-cache Strict-Transport-Security: @@ -346,7 +350,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations/287 + url: https://api.linode.com/v4beta/monitor/streams/destinations/403 method: DELETE response: body: '{}' @@ -374,7 +378,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 23 Apr 2026 09:06:02 GMT + - Wed, 06 May 2026 06:51:49 GMT Pragma: - no-cache Strict-Transport-Security: @@ -407,7 +411,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/keys/3392828 + url: https://api.linode.com/v4beta/object-storage/keys/3576463 method: DELETE response: body: '{}' @@ -435,7 +439,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 23 Apr 2026 09:06:02 GMT + - Wed, 06 May 2026 06:51:50 GMT Pragma: - no-cache Strict-Transport-Security: @@ -468,11 +472,11 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast/go-test-logs-destination-1776935154478233000/object-list + url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast/go-test-logs-destination-1778050304029729000/object-list method: GET response: - body: '{"data": [{"name": "cloud-logs-test-connection-20260423T090600", "size": - 9, "last_modified": "2018-01-02T03:04:05.688Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", + body: '{"data": [{"name": "cloud-logs-test-connection-20260506T065148", "size": + 9, "last_modified": "2018-01-02T03:04:05.550Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}], "next_marker": null, "is_truncated": false}' headers: @@ -499,7 +503,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 23 Apr 2026 09:06:03 GMT + - Wed, 06 May 2026 06:51:51 GMT Pragma: - no-cache Strict-Transport-Security: @@ -524,7 +528,7 @@ interactions: code: 200 duration: "" - request: - body: '{"name":"cloud-logs-test-connection-20260423T090600","method":"DELETE","expires_in":360}' + body: '{"name":"cloud-logs-test-connection-20260506T065148","method":"DELETE","expires_in":360}' form: {} headers: Accept: @@ -533,10 +537,10 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1776935154478233000/object-url + url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1778050304029729000/object-url method: POST response: - body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1776935154478233000/cloud-logs-test-connection-20260423T090600?Signature=umkG%2BYIYn511Q083xVUFv70tq%2Fk%3D&Expires=1776935524&AWSAccessKeyID=SANITIZED", + body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1778050304029729000/cloud-logs-test-connection-20260506T065148?Signature=GG7%2B3uyfsu9l%2FcjsqUhtj4Q31%2FE%3D&Expires=1778050672&AWSAccessKeyID=SANITIZED", "exists": true}' headers: Access-Control-Allow-Credentials: @@ -556,13 +560,13 @@ interactions: Connection: - keep-alive Content-Length: - - "259" + - "261" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Thu, 23 Apr 2026 09:06:04 GMT + - Wed, 06 May 2026 06:51:52 GMT Pragma: - no-cache Strict-Transport-Security: @@ -595,7 +599,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast/go-test-logs-destination-1776935154478233000 + url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast/go-test-logs-destination-1778050304029729000 method: DELETE response: body: '{}' @@ -623,7 +627,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 23 Apr 2026 09:06:09 GMT + - Wed, 06 May 2026 06:51:56 GMT Pragma: - no-cache Strict-Transport-Security: diff --git a/test/integration/fixtures/TestLogsDestination_UpdateAndHistory.yaml b/test/integration/fixtures/TestLogsDestination_UpdateAndHistory.yaml index 62ed593aa..1451ec3fd 100644 --- a/test/integration/fixtures/TestLogsDestination_UpdateAndHistory.yaml +++ b/test/integration/fixtures/TestLogsDestination_UpdateAndHistory.yaml @@ -2,7 +2,7 @@ version: 1 interactions: - request: - body: '{"region":"us-southeast","label":"go-test-logs-destination-1777442634037829000","acl":"private","cors_enabled":false}' + body: '{"region":"us-southeast","label":"go-test-logs-destination-1778050340582306000","acl":"private","cors_enabled":false}' form: {} headers: Accept: @@ -14,8 +14,8 @@ interactions: url: https://api.linode.com/v4beta/object-storage/buckets method: POST response: - body: '{"hostname": "go-test-logs-destination-1777442634037829000.us-southeast-1.linodeobjects.com", - "label": "go-test-logs-destination-1777442634037829000", "created": "2018-01-02T03:04:05", + body: '{"hostname": "go-test-logs-destination-1778050340582306000.us-southeast-1.linodeobjects.com", + "label": "go-test-logs-destination-1778050340582306000", "created": "2018-01-02T03:04:05", "region": "us-southeast", "cluster": "us-southeast-1", "size": 0, "objects": 0, "endpoint_type": "E0", "s3_endpoint": "us-southeast-1.linodeobjects.com"}' headers: @@ -42,7 +42,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 29 Apr 2026 06:03:55 GMT + - Wed, 06 May 2026 06:52:22 GMT Pragma: - no-cache Strict-Transport-Security: @@ -66,7 +66,7 @@ interactions: code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1777442635236568000"}' + body: '{"label":"go-test-logs-destination-1778050342631137000"}' form: {} headers: Accept: @@ -78,18 +78,18 @@ interactions: url: https://api.linode.com/v4beta/object-storage/keys method: POST response: - body: '{"id": 3474091, "label": "go-test-logs-destination-1777442635236568000", - "access_key": "[SANITIZED]", "secret_key": "[SANITIZED]", - "limited": false, "bucket_access": null, "regions": [{"id": "us-east", "s3_endpoint": - "us-east-1.linodeobjects.com", "endpoint_type": "E0"}, {"id": "us-iad", "s3_endpoint": - "us-iad-10.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-lax", "s3_endpoint": - "us-lax-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-lax", "s3_endpoint": - "us-lax-4.linodeobjects.com", "endpoint_type": "E3"}, {"id": "us-mia", "s3_endpoint": - "us-mia-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-ord", "s3_endpoint": - "us-ord-10.linodeobjects.com", "endpoint_type": "E3"}, {"id": "us-ord", "s3_endpoint": - "us-ord-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-sea", "s3_endpoint": - "us-sea-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-southeast", - "s3_endpoint": "us-southeast-1.linodeobjects.com", "endpoint_type": "E0"}]}' + body: '{"id": 3576469, "label": "go-test-logs-destination-1778050342631137000", + "access_key": "[SANITIZED]", "secret_key": "[SANITIZED]", "limited": false, + "bucket_access": null, "regions": [{"id": "us-east", "s3_endpoint": "us-east-1.linodeobjects.com", + "endpoint_type": "E0"}, {"id": "us-iad", "s3_endpoint": "us-iad-10.linodeobjects.com", + "endpoint_type": "E1"}, {"id": "us-lax", "s3_endpoint": "us-lax-1.linodeobjects.com", + "endpoint_type": "E1"}, {"id": "us-lax", "s3_endpoint": "us-lax-4.linodeobjects.com", + "endpoint_type": "E3"}, {"id": "us-mia", "s3_endpoint": "us-mia-1.linodeobjects.com", + "endpoint_type": "E1"}, {"id": "us-ord", "s3_endpoint": "us-ord-10.linodeobjects.com", + "endpoint_type": "E3"}, {"id": "us-ord", "s3_endpoint": "us-ord-1.linodeobjects.com", + "endpoint_type": "E1"}, {"id": "us-sea", "s3_endpoint": "us-sea-1.linodeobjects.com", + "endpoint_type": "E1"}, {"id": "us-southeast", "s3_endpoint": "us-southeast-1.linodeobjects.com", + "endpoint_type": "E0"}]}' headers: Access-Control-Allow-Credentials: - "true" @@ -112,7 +112,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 29 Apr 2026 06:03:58 GMT + - Wed, 06 May 2026 06:52:25 GMT Pragma: - no-cache Strict-Transport-Security: @@ -137,7 +137,7 @@ interactions: code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1777442638057450000","type":"akamai_object_storage","details":{"access_key_id":"3KJOTHO0GRMDTNKCCEXK","access_key_secret":"SMLe5DiJrUxvwTYOOTM9xDjns4SPuUcQZ3iAzJ96","bucket_name":"go-test-logs-destination-1777442634037829000","host":"go-test-logs-destination-1777442634037829000.us-southeast-1.linodeobjects.com"}}' + body: '{"label":"go-test-logs-destination-1778050344927369000","type":"akamai_object_storage","details":{"access_key_id":"[SANITIZED]","access_key_secret":"[SANITIZED]","bucket_name":"go-test-logs-destination-1778050340582306000","host":"go-test-logs-destination-1778050340582306000.us-southeast-1.linodeobjects.com"}}' form: {} headers: Accept: @@ -149,12 +149,12 @@ interactions: url: https://api.linode.com/v4beta/monitor/streams/destinations method: POST response: - body: '{"id": 307, "label": "go-test-logs-destination-1777442638057450000", "type": - "akamai_object_storage", "details": {"host": "go-test-logs-destination-1777442634037829000.us-southeast-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1777442634037829000", "access_key_id": - "3KJOTHO0GRMDTNKCCEXK"}, "version": 1, "status": "active", "created_by": "akrzyszt_dola_testnet_admin", - "created": "2018-01-02T03:04:05Z", "updated_by": "akrzyszt_dola_testnet_admin", - "updated": "2018-01-02T03:04:05Z"}' + body: '{"id": 406, "label": "go-test-logs-destination-1778050344927369000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778050340582306000.us-southeast-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1778050340582306000", "access_key_id": + "[SANITIZED]"}, "version": 1, "status": "active", "created_by": "akrzyszt_dola_testnet_admin", + "created": "2018-01-02T03:04:05", "updated_by": "akrzyszt_dola_testnet_admin", + "updated": "2018-01-02T03:04:05"}' headers: Access-Control-Allow-Credentials: - "true" @@ -173,13 +173,13 @@ interactions: Connection: - keep-alive Content-Length: - - "501" + - "499" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Wed, 29 Apr 2026 06:03:59 GMT + - Wed, 06 May 2026 06:52:25 GMT Pragma: - no-cache Strict-Transport-Security: @@ -203,7 +203,7 @@ interactions: code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1777442638057450000-upd","details":{"access_key_id":"3KJOTHO0GRMDTNKCCEXK","access_key_secret":"SMLe5DiJrUxvwTYOOTM9xDjns4SPuUcQZ3iAzJ96","bucket_name":"go-test-logs-destination-1777442634037829000","host":"go-test-logs-destination-1777442634037829000.us-southeast-1.linodeobjects.com","path":"updated/logs/path/"}}' + body: '{"label":"go-test-logs-destination-1778050344927369000-upd","details":{"access_key_id":"[SANITIZED]","access_key_secret":"[SANITIZED]","bucket_name":"go-test-logs-destination-1778050340582306000","host":"go-test-logs-destination-1778050340582306000.us-southeast-1.linodeobjects.com","path":"updated/logs/path/"}}' form: {} headers: Accept: @@ -212,15 +212,15 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations/307 + url: https://api.linode.com/v4beta/monitor/streams/destinations/406 method: PUT response: - body: '{"id": 307, "label": "go-test-logs-destination-1777442638057450000-upd", - "type": "akamai_object_storage", "details": {"host": "go-test-logs-destination-1777442634037829000.us-southeast-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1777442634037829000", "path": "updated/logs/path/", - "access_key_id": "3KJOTHO0GRMDTNKCCEXK"}, "version": 2, "status": "active", - "created_by": "akrzyszt_dola_testnet_admin", "created": "2018-01-02T03:04:05Z", - "updated_by": "akrzyszt_dola_testnet_admin", "updated": "2018-01-02T03:04:05Z"}' + body: '{"id": 406, "label": "go-test-logs-destination-1778050344927369000-upd", + "type": "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778050340582306000.us-southeast-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1778050340582306000", "path": "updated/logs/path/", + "access_key_id": "[SANITIZED]"}, "version": 2, "status": "active", + "created_by": "akrzyszt_dola_testnet_admin", "created": "2018-01-02T03:04:05", + "updated_by": "akrzyszt_dola_testnet_admin", "updated": "2018-01-02T03:04:05"}' headers: Access-Control-Allow-Credentials: - "true" @@ -239,13 +239,13 @@ interactions: Connection: - keep-alive Content-Length: - - "535" + - "533" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Wed, 29 Apr 2026 06:04:00 GMT + - Wed, 06 May 2026 06:52:26 GMT Pragma: - no-cache Strict-Transport-Security: @@ -278,21 +278,21 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations/307/history?page=1 + url: https://api.linode.com/v4beta/monitor/streams/destinations/406/history?page=1 method: GET response: - body: '{"pages": 1, "page": 1, "results": 2, "data": [{"id": 307, "label": "go-test-logs-destination-1777442638057450000-upd", - "type": "akamai_object_storage", "details": {"host": "go-test-logs-destination-1777442634037829000.us-southeast-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1777442634037829000", "path": "updated/logs/path/", - "access_key_id": "3KJOTHO0GRMDTNKCCEXK"}, "version": 2, "status": "active", - "created_by": "akrzyszt_dola_testnet_admin", "created": "2018-01-02T03:04:05Z", - "updated_by": "akrzyszt_dola_testnet_admin", "updated": "2018-01-02T03:04:05Z"}, - {"id": 307, "label": "go-test-logs-destination-1777442638057450000", "type": - "akamai_object_storage", "details": {"host": "go-test-logs-destination-1777442634037829000.us-southeast-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1777442634037829000", "access_key_id": - "3KJOTHO0GRMDTNKCCEXK"}, "version": 1, "status": "inactive", "created_by": "akrzyszt_dola_testnet_admin", - "created": "2018-01-02T03:04:05Z", "updated_by": "akrzyszt_dola_testnet_admin", - "updated": "2018-01-02T03:04:05Z"}]}' + body: '{"pages": 1, "page": 1, "results": 2, "data": [{"id": 406, "label": "go-test-logs-destination-1778050344927369000-upd", + "type": "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778050340582306000.us-southeast-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1778050340582306000", "path": "updated/logs/path/", + "access_key_id": "[SANITIZED]"}, "version": 2, "status": "active", + "created_by": "akrzyszt_dola_testnet_admin", "created": "2018-01-02T03:04:05", + "updated_by": "akrzyszt_dola_testnet_admin", "updated": "2018-01-02T03:04:05"}, + {"id": 406, "label": "go-test-logs-destination-1778050344927369000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778050340582306000.us-southeast-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1778050340582306000", "access_key_id": + "[SANITIZED]"}, "version": 1, "status": "inactive", "created_by": "akrzyszt_dola_testnet_admin", + "created": "2018-01-02T03:04:05", "updated_by": "akrzyszt_dola_testnet_admin", + "updated": "2018-01-02T03:04:05"}]}' headers: Access-Control-Allow-Credentials: - "true" @@ -315,7 +315,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 29 Apr 2026 06:04:00 GMT + - Wed, 06 May 2026 06:52:27 GMT Pragma: - no-cache Strict-Transport-Security: @@ -350,15 +350,15 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations/307 + url: https://api.linode.com/v4beta/monitor/streams/destinations/406 method: GET response: - body: '{"id": 307, "label": "go-test-logs-destination-1777442638057450000-upd", - "type": "akamai_object_storage", "details": {"host": "go-test-logs-destination-1777442634037829000.us-southeast-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1777442634037829000", "path": "updated/logs/path/", - "access_key_id": "3KJOTHO0GRMDTNKCCEXK"}, "version": 2, "status": "active", - "created_by": "akrzyszt_dola_testnet_admin", "created": "2018-01-02T03:04:05Z", - "updated_by": "akrzyszt_dola_testnet_admin", "updated": "2018-01-02T03:04:05Z"}' + body: '{"id": 406, "label": "go-test-logs-destination-1778050344927369000-upd", + "type": "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778050340582306000.us-southeast-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1778050340582306000", "path": "updated/logs/path/", + "access_key_id": "[SANITIZED]"}, "version": 2, "status": "active", + "created_by": "akrzyszt_dola_testnet_admin", "created": "2018-01-02T03:04:05", + "updated_by": "akrzyszt_dola_testnet_admin", "updated": "2018-01-02T03:04:05"}' headers: Access-Control-Allow-Credentials: - "true" @@ -377,13 +377,13 @@ interactions: Connection: - keep-alive Content-Length: - - "535" + - "533" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Wed, 29 Apr 2026 06:04:01 GMT + - Wed, 06 May 2026 06:52:27 GMT Pragma: - no-cache Strict-Transport-Security: @@ -417,7 +417,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations/307 + url: https://api.linode.com/v4beta/monitor/streams/destinations/406 method: DELETE response: body: '{}' @@ -445,7 +445,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 29 Apr 2026 06:04:01 GMT + - Wed, 06 May 2026 06:52:27 GMT Pragma: - no-cache Strict-Transport-Security: @@ -478,7 +478,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/keys/3474091 + url: https://api.linode.com/v4beta/object-storage/keys/3576469 method: DELETE response: body: '{}' @@ -506,7 +506,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 29 Apr 2026 06:04:02 GMT + - Wed, 06 May 2026 06:52:28 GMT Pragma: - no-cache Strict-Transport-Security: @@ -539,15 +539,15 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast/go-test-logs-destination-1777442634037829000/object-list + url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast/go-test-logs-destination-1778050340582306000/object-list method: GET response: - body: '{"data": [{"name": "cloud-logs-test-connection-20260429T060358", "size": - 9, "last_modified": "2018-01-02T03:04:05.850Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", + body: '{"data": [{"name": "cloud-logs-test-connection-20260506T065225", "size": + 9, "last_modified": "2018-01-02T03:04:05.542Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "updated/logs/path/", - "size": 0, "last_modified": "2018-01-02T03:04:05.015Z", "etag": "d41d8cd98f00b204e9800998ecf8427e", - "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "updated/logs/path/cloud-logs-test-connection-20260429T060400", - "size": 9, "last_modified": "2018-01-02T03:04:05.116Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", + "size": 0, "last_modified": "2018-01-02T03:04:05.441Z", "etag": "d41d8cd98f00b204e9800998ecf8427e", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "updated/logs/path/cloud-logs-test-connection-20260506T065226", + "size": 9, "last_modified": "2018-01-02T03:04:05.512Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}], "next_marker": null, "is_truncated": false}' headers: @@ -574,7 +574,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 29 Apr 2026 06:04:02 GMT + - Wed, 06 May 2026 06:52:29 GMT Pragma: - no-cache Strict-Transport-Security: @@ -599,7 +599,7 @@ interactions: code: 200 duration: "" - request: - body: '{"name":"cloud-logs-test-connection-20260429T060358","method":"DELETE","expires_in":360}' + body: '{"name":"cloud-logs-test-connection-20260506T065225","method":"DELETE","expires_in":360}' form: {} headers: Accept: @@ -608,10 +608,10 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1777442634037829000/object-url + url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1778050340582306000/object-url method: POST response: - body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1777442634037829000/cloud-logs-test-connection-20260429T060358?Signature=M1nSwVdzlNtzVQC7DJCgMko5R4Y%3D&Expires=1777443004&AWSAccessKeyID=SANITIZED", + body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1778050340582306000/cloud-logs-test-connection-20260506T065225?Signature=LHgYXKB%2FMLp4NRgdqhn11wRdfW4%3D&Expires=1778050710&AWSAccessKeyID=SANITIZED", "exists": true}' headers: Access-Control-Allow-Credentials: @@ -631,13 +631,13 @@ interactions: Connection: - keep-alive Content-Length: - - "255" + - "257" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Wed, 29 Apr 2026 06:04:04 GMT + - Wed, 06 May 2026 06:52:30 GMT Pragma: - no-cache Strict-Transport-Security: @@ -670,10 +670,10 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1777442634037829000/object-url + url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1778050340582306000/object-url method: POST response: - body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1777442634037829000/updated/logs/path/?Signature=Ov7lOwA6B555Jn5bex0b%2B6JtQTY%3D&Expires=1777443006&AWSAccessKeyID=SANITIZED", + body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1778050340582306000/updated/logs/path/?Signature=4iJ00dQJ77NY6ZU2OO8X2W1OCPo%3D&Expires=1778050711&AWSAccessKeyID=SANITIZED", "exists": true}' headers: Access-Control-Allow-Credentials: @@ -693,13 +693,13 @@ interactions: Connection: - keep-alive Content-Length: - - "233" + - "231" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Wed, 29 Apr 2026 06:04:06 GMT + - Wed, 06 May 2026 06:52:31 GMT Pragma: - no-cache Strict-Transport-Security: @@ -723,7 +723,7 @@ interactions: code: 200 duration: "" - request: - body: '{"name":"updated/logs/path/cloud-logs-test-connection-20260429T060400","method":"DELETE","expires_in":360}' + body: '{"name":"updated/logs/path/cloud-logs-test-connection-20260506T065226","method":"DELETE","expires_in":360}' form: {} headers: Accept: @@ -732,10 +732,10 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1777442634037829000/object-url + url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1778050340582306000/object-url method: POST response: - body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1777442634037829000/updated/logs/path/cloud-logs-test-connection-20260429T060400?Signature=rQePlE6Mf0O0FsmQ3W%2B%2FRTz5YT8%3D&Expires=1777443007&AWSAccessKeyID=SANITIZED", + body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1778050340582306000/updated/logs/path/cloud-logs-test-connection-20260506T065226?Signature=31dIv2zHtx8eDE9%2BNpg3EGnU0BE%3D&Expires=1778050714&AWSAccessKeyID=SANITIZED", "exists": true}' headers: Access-Control-Allow-Credentials: @@ -755,13 +755,13 @@ interactions: Connection: - keep-alive Content-Length: - - "277" + - "275" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Wed, 29 Apr 2026 06:04:08 GMT + - Wed, 06 May 2026 06:52:34 GMT Pragma: - no-cache Strict-Transport-Security: @@ -794,7 +794,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast/go-test-logs-destination-1777442634037829000 + url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast/go-test-logs-destination-1778050340582306000 method: DELETE response: body: '{}' @@ -822,7 +822,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 29 Apr 2026 06:04:11 GMT + - Wed, 06 May 2026 06:52:37 GMT Pragma: - no-cache Strict-Transport-Security: diff --git a/test/integration/integration_suite_test.go b/test/integration/integration_suite_test.go index 3ca0cb8a2..3052ae092 100644 --- a/test/integration/integration_suite_test.go +++ b/test/integration/integration_suite_test.go @@ -102,11 +102,7 @@ func testRecorder(t *testing.T, fixturesYaml string, testingMode recorder.Mode, }) r.AddFilter(func(i *cassette.Interaction) error { - re := regexp.MustCompile(`"access_key": "[[:alnum:]]*"`) - i.Response.Body = re.ReplaceAllString(i.Response.Body, `"access_key": "[SANITIZED]"`) - re = regexp.MustCompile(`"secret_key": "[[:alnum:]]*"`) - i.Response.Body = re.ReplaceAllString(i.Response.Body, `"secret_key": "[SANITIZED]"`) - re = regexp.MustCompile("20[0-9]{2}-[01][0-9]-[0-3][0-9]T[0-2][0-9]:[0-9]{2}:[0-9]{2}") + re := regexp.MustCompile("20[0-9]{2}-[01][0-9]-[0-3][0-9]T[0-2][0-9]:[0-9]{2}:[0-9]{2}") i.Response.Body = re.ReplaceAllString(i.Response.Body, "2018-01-02T03:04:05") // re = regexp.MustCompile("192\\.168\\.((1?[0-9][0-9]?|2[0-4][0-9]|25[0-5])\\.)(1?[0-9][0-9]?|2[0-4][0-9]|25[0-5])") // i.Response.Body = re.ReplaceAllString(i.Response.Body, "10.0.0.1") @@ -118,7 +114,15 @@ func testRecorder(t *testing.T, fixturesYaml string, testingMode recorder.Mode, }) r.AddSaveFilter(func(i *cassette.Interaction) error { - re := regexp.MustCompile("AWSAccessKeyId=[[:alnum:]]{20}") + // Sanitize credentials only when saving to cassette, so that real access/secret + // keys are available to test code during recording (e.g. for creating a + // LogsDestination that requires valid object-storage credentials). + re := regexp.MustCompile(`"access_key": "[[:alnum:]]*"`) + i.Response.Body = re.ReplaceAllString(i.Response.Body, `"access_key": "[SANITIZED]"`) + re = regexp.MustCompile(`"secret_key": "[[:alnum:]]*"`) + i.Response.Body = re.ReplaceAllString(i.Response.Body, `"secret_key": "[SANITIZED]"`) + + re = regexp.MustCompile("AWSAccessKeyId=[[:alnum:]]{20}") i.Response.Body = re.ReplaceAllString(i.Response.Body, "AWSAccessKeyID=SANITIZED") i.Request.URL = re.ReplaceAllString(i.Request.URL, "AWSAccessKeyID=SANITIZED") return nil From a9f60d46a69103fb750164cac138a818d58e61c5 Mon Sep 17 00:00:00 2001 From: akrzyszt Date: Wed, 6 May 2026 09:34:40 +0200 Subject: [PATCH 05/21] [DPS-42278] more tests tweaks + new api changes --- monitor_log_destinations.go | 94 ++++++++++++++++--- .../fixtures/TestLogsDestination_Delete.yaml | 4 +- .../fixtures/TestLogsDestination_Get.yaml | 12 +-- .../fixtures/TestLogsDestination_List.yaml | 12 +-- .../TestLogsDestination_UpdateAndHistory.yaml | 20 ++-- .../monitor_log_destinations_get.json | 8 +- .../monitor_log_destinations_list.json | 8 +- test/unit/monitor_log_destinations_test.go | 4 +- 8 files changed, 117 insertions(+), 45 deletions(-) diff --git a/monitor_log_destinations.go b/monitor_log_destinations.go index 27c66d2c3..74a52ead9 100644 --- a/monitor_log_destinations.go +++ b/monitor_log_destinations.go @@ -13,6 +13,7 @@ type LogsDestinationType string const ( LogsDestinationTypeAkamaiObjectStorage LogsDestinationType = "akamai_object_storage" + LogsDestinationTypeCustomHTTPS LogsDestinationType = "custom_https" ) // LogsDestinationStatus represents the status of a logs destination. @@ -24,14 +25,25 @@ const ( ) // LogsDestinationDetails represents the details block returned in a LogsDestination response. +// Fields are populated based on the destination type. type LogsDestinationDetails struct { - AccessKeyID string `json:"access_key_id"` - BucketName string `json:"bucket_name"` - Host string `json:"host"` - Path string `json:"path"` + // akamai_object_storage fields + AccessKeyID string `json:"access_key_id,omitempty"` + BucketName string `json:"bucket_name,omitempty"` + Host string `json:"host,omitempty"` + Path string `json:"path,omitempty"` + + // custom_https fields + EndpointURL string `json:"endpoint_url,omitempty"` + Authentication *LogsDestinationCustomHTTPSAuthDetails `json:"authentication,omitempty"` + ClientCertificateDetails *LogsDestinationClientCertificateDetails `json:"client_certificate_details,omitempty"` + ContentType string `json:"content_type,omitempty"` + CustomHeaders []LogsDestinationCustomHTTPSHeader `json:"custom_headers,omitempty"` + DataCompression string `json:"data_compression,omitempty"` } -// LogsDestinationDetailsCreateOptions represents the details block used when creating a LogsDestination. +// LogsDestinationDetailsCreateOptions represents the details block used when creating +// an akamai_object_storage LogsDestination. type LogsDestinationDetailsCreateOptions struct { AccessKeyID string `json:"access_key_id"` AccessKeySecret string `json:"access_key_secret"` @@ -40,6 +52,52 @@ type LogsDestinationDetailsCreateOptions struct { Path *string `json:"path,omitempty"` } +// LogsDestinationCustomHTTPSAuthType represents the authentication type for a custom_https destination. +type LogsDestinationCustomHTTPSAuthType string + +const ( + LogsDestinationCustomHTTPSAuthTypeBasic LogsDestinationCustomHTTPSAuthType = "basic" + LogsDestinationCustomHTTPSAuthTypeNone LogsDestinationCustomHTTPSAuthType = "none" +) + +// LogsDestinationCustomHTTPSBasicAuthDetails holds credentials for basic authentication. +// Both fields are required when authentication type is "basic". +type LogsDestinationCustomHTTPSBasicAuthDetails struct { + Username string `json:"basic_authentication_user"` + Password string `json:"basic_authentication_password"` +} + +// LogsDestinationCustomHTTPSAuthDetails holds authentication configuration for a custom_https destination. +type LogsDestinationCustomHTTPSAuthDetails struct { + Type LogsDestinationCustomHTTPSAuthType `json:"type"` + Details *LogsDestinationCustomHTTPSBasicAuthDetails `json:"details,omitempty"` +} + +// LogsDestinationCustomHTTPSHeader represents a single custom HTTP header. +type LogsDestinationCustomHTTPSHeader struct { + Name string `json:"name"` + Value string `json:"value"` +} + +// LogsDestinationClientCertificateDetails contains TLS client certificate information +type LogsDestinationClientCertificateDetails struct { + ClientCACertificate string `json:"client_ca_certificate"` + ClientCertificate string `json:"client_certificate"` + ClientPrivateKey string `json:"client_private_key"` + TLSHostname string `json:"tls_hostname"` +} + +// LogsDestinationCustomHTTPSDetailsCreateOptions represents the details block used when +// creating a custom_https LogsDestination. +type LogsDestinationCustomHTTPSDetailsCreateOptions struct { + EndpointURL string `json:"endpoint_url"` + Authentication *LogsDestinationCustomHTTPSAuthDetails `json:"authentication"` + ClientCertificateDetails *LogsDestinationClientCertificateDetails `json:"client_certificate_details,omitempty"` + ContentType string `json:"content_type,omitempty"` + CustomHeaders []LogsDestinationCustomHTTPSHeader `json:"custom_headers,omitempty"` + DataCompression string `json:"data_compression,omitempty"` +} + // LogsDestination represents a logs destination object. type LogsDestination struct { Created *time.Time `json:"-"` @@ -81,12 +139,13 @@ const logsDestinationBaseEndpoint = "monitor/streams/destinations" // LogsDestinationCreateOptions are the options used to create a new logs destination. type LogsDestinationCreateOptions struct { - Label string `json:"label"` - Type LogsDestinationType `json:"type"` - Details LogsDestinationDetailsCreateOptions `json:"details"` + Label string `json:"label"` + Type LogsDestinationType `json:"type"` + Details interface{} `json:"details"` } -// LogsDestinationDetailsUpdateOptions represents the details block used when updating a LogsDestination. +// LogsDestinationDetailsUpdateOptions represents the details block used when updating +// an akamai_object_storage LogsDestination. type LogsDestinationDetailsUpdateOptions struct { AccessKeyID string `json:"access_key_id,omitempty"` AccessKeySecret string `json:"access_key_secret,omitempty"` @@ -95,10 +154,23 @@ type LogsDestinationDetailsUpdateOptions struct { Path *string `json:"path,omitempty"` } +// LogsDestinationCustomHTTPSDetailsUpdateOptions represents the details block used when +// updating a custom_https LogsDestination. +type LogsDestinationCustomHTTPSDetailsUpdateOptions struct { + EndpointURL string `json:"endpoint_url,omitempty"` + Authentication *LogsDestinationCustomHTTPSAuthDetails `json:"authentication,omitempty"` + ClientCertificateDetails *LogsDestinationClientCertificateDetails `json:"client_certificate_details,omitempty"` + ContentType string `json:"content_type,omitempty"` + CustomHeaders []LogsDestinationCustomHTTPSHeader `json:"custom_headers,omitempty"` + DataCompression string `json:"data_compression,omitempty"` +} + // LogsDestinationUpdateOptions are the options used to update a LogsDestination. +// Set Details to *LogsDestinationDetailsUpdateOptions for akamai_object_storage, +// or *LogsDestinationCustomHTTPSDetailsUpdateOptions for custom_https. type LogsDestinationUpdateOptions struct { - Label string `json:"label,omitempty"` - Details *LogsDestinationDetailsUpdateOptions `json:"details,omitempty"` + Label string `json:"label,omitempty"` + Details interface{} `json:"details,omitempty"` } // ListLogsDestinations returns a paginated list of logs destinations. diff --git a/test/integration/fixtures/TestLogsDestination_Delete.yaml b/test/integration/fixtures/TestLogsDestination_Delete.yaml index 132192d5a..b106c6b88 100644 --- a/test/integration/fixtures/TestLogsDestination_Delete.yaml +++ b/test/integration/fixtures/TestLogsDestination_Delete.yaml @@ -152,8 +152,8 @@ interactions: body: '{"id": 404, "label": "go-test-logs-destination-1778050319979774000", "type": "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778050316010853000.us-southeast-1.linodeobjects.com", "bucket_name": "go-test-logs-destination-1778050316010853000", "access_key_id": - "[SANITIZED]"}, "version": 1, "status": "active", "created_by": "akrzyszt_dola_testnet_admin", - "created": "2018-01-02T03:04:05", "updated_by": "akrzyszt_dola_testnet_admin", + "[SANITIZED]"}, "version": 1, "status": "active", "created_by": "user", + "created": "2018-01-02T03:04:05", "updated_by": "user", "updated": "2018-01-02T03:04:05"}' headers: Access-Control-Allow-Credentials: diff --git a/test/integration/fixtures/TestLogsDestination_Get.yaml b/test/integration/fixtures/TestLogsDestination_Get.yaml index 6402d628a..0adfcbc2a 100644 --- a/test/integration/fixtures/TestLogsDestination_Get.yaml +++ b/test/integration/fixtures/TestLogsDestination_Get.yaml @@ -152,8 +152,8 @@ interactions: body: '{"id": 405, "label": "go-test-logs-destination-1778050332159629000", "type": "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778050327857586000.us-southeast-1.linodeobjects.com", "bucket_name": "go-test-logs-destination-1778050327857586000", "access_key_id": - "[SANITIZED]"}, "version": 1, "status": "active", "created_by": "akrzyszt_dola_testnet_admin", - "created": "2018-01-02T03:04:05", "updated_by": "akrzyszt_dola_testnet_admin", + "[SANITIZED]"}, "version": 1, "status": "active", "created_by": "user", + "created": "2018-01-02T03:04:05", "updated_by": "user", "updated": "2018-01-02T03:04:05"}' headers: Access-Control-Allow-Credentials: @@ -218,8 +218,8 @@ interactions: body: '{"id": 405, "label": "go-test-logs-destination-1778050332159629000", "type": "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778050327857586000.us-southeast-1.linodeobjects.com", "bucket_name": "go-test-logs-destination-1778050327857586000", "access_key_id": - "[SANITIZED]"}, "version": 1, "status": "active", "created_by": "akrzyszt_dola_testnet_admin", - "created": "2018-01-02T03:04:05", "updated_by": "akrzyszt_dola_testnet_admin", + "[SANITIZED]"}, "version": 1, "status": "active", "created_by": "user", + "created": "2018-01-02T03:04:05", "updated_by": "user", "updated": "2018-01-02T03:04:05"}' headers: Access-Control-Allow-Credentials: @@ -285,8 +285,8 @@ interactions: body: '{"id": 405, "label": "go-test-logs-destination-1778050332159629000", "type": "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778050327857586000.us-southeast-1.linodeobjects.com", "bucket_name": "go-test-logs-destination-1778050327857586000", "access_key_id": - "[SANITIZED]"}, "version": 1, "status": "active", "created_by": "akrzyszt_dola_testnet_admin", - "created": "2018-01-02T03:04:05", "updated_by": "akrzyszt_dola_testnet_admin", + "[SANITIZED]"}, "version": 1, "status": "active", "created_by": "user", + "created": "2018-01-02T03:04:05", "updated_by": "user", "updated": "2018-01-02T03:04:05"}' headers: Access-Control-Allow-Credentials: diff --git a/test/integration/fixtures/TestLogsDestination_List.yaml b/test/integration/fixtures/TestLogsDestination_List.yaml index 0579b2765..b6e1e0f9b 100644 --- a/test/integration/fixtures/TestLogsDestination_List.yaml +++ b/test/integration/fixtures/TestLogsDestination_List.yaml @@ -152,8 +152,8 @@ interactions: body: '{"id": 403, "label": "go-test-logs-destination-1778050307918035000", "type": "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778050304029729000.us-southeast-1.linodeobjects.com", "bucket_name": "go-test-logs-destination-1778050304029729000", "access_key_id": - "[SANITIZED]"}, "version": 1, "status": "active", "created_by": "akrzyszt_dola_testnet_admin", - "created": "2018-01-02T03:04:05", "updated_by": "akrzyszt_dola_testnet_admin", + "[SANITIZED]"}, "version": 1, "status": "active", "created_by": "user", + "created": "2018-01-02T03:04:05", "updated_by": "user", "updated": "2018-01-02T03:04:05"}' headers: Access-Control-Allow-Credentials: @@ -223,8 +223,8 @@ interactions: "2018-01-02T03:04:05"}, {"id": 403, "label": "go-test-logs-destination-1778050307918035000", "type": "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778050304029729000.us-southeast-1.linodeobjects.com", "bucket_name": "go-test-logs-destination-1778050304029729000", "access_key_id": - "[SANITIZED]"}, "version": 1, "status": "active", "created_by": "akrzyszt_dola_testnet_admin", - "created": "2018-01-02T03:04:05", "updated_by": "akrzyszt_dola_testnet_admin", + "[SANITIZED]"}, "version": 1, "status": "active", "created_by": "user", + "created": "2018-01-02T03:04:05", "updated_by": "user", "updated": "2018-01-02T03:04:05"}]}' headers: Access-Control-Allow-Credentials: @@ -289,8 +289,8 @@ interactions: body: '{"id": 403, "label": "go-test-logs-destination-1778050307918035000", "type": "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778050304029729000.us-southeast-1.linodeobjects.com", "bucket_name": "go-test-logs-destination-1778050304029729000", "access_key_id": - "[SANITIZED]"}, "version": 1, "status": "active", "created_by": "akrzyszt_dola_testnet_admin", - "created": "2018-01-02T03:04:05", "updated_by": "akrzyszt_dola_testnet_admin", + "[SANITIZED]"}, "version": 1, "status": "active", "created_by": "user", + "created": "2018-01-02T03:04:05", "updated_by": "user", "updated": "2018-01-02T03:04:05"}' headers: Access-Control-Allow-Credentials: diff --git a/test/integration/fixtures/TestLogsDestination_UpdateAndHistory.yaml b/test/integration/fixtures/TestLogsDestination_UpdateAndHistory.yaml index 1451ec3fd..d40deacd4 100644 --- a/test/integration/fixtures/TestLogsDestination_UpdateAndHistory.yaml +++ b/test/integration/fixtures/TestLogsDestination_UpdateAndHistory.yaml @@ -152,8 +152,8 @@ interactions: body: '{"id": 406, "label": "go-test-logs-destination-1778050344927369000", "type": "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778050340582306000.us-southeast-1.linodeobjects.com", "bucket_name": "go-test-logs-destination-1778050340582306000", "access_key_id": - "[SANITIZED]"}, "version": 1, "status": "active", "created_by": "akrzyszt_dola_testnet_admin", - "created": "2018-01-02T03:04:05", "updated_by": "akrzyszt_dola_testnet_admin", + "[SANITIZED]"}, "version": 1, "status": "active", "created_by": "user", + "created": "2018-01-02T03:04:05", "updated_by": "user", "updated": "2018-01-02T03:04:05"}' headers: Access-Control-Allow-Credentials: @@ -219,8 +219,8 @@ interactions: "type": "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778050340582306000.us-southeast-1.linodeobjects.com", "bucket_name": "go-test-logs-destination-1778050340582306000", "path": "updated/logs/path/", "access_key_id": "[SANITIZED]"}, "version": 2, "status": "active", - "created_by": "akrzyszt_dola_testnet_admin", "created": "2018-01-02T03:04:05", - "updated_by": "akrzyszt_dola_testnet_admin", "updated": "2018-01-02T03:04:05"}' + "created_by": "user", "created": "2018-01-02T03:04:05", + "updated_by": "user", "updated": "2018-01-02T03:04:05"}' headers: Access-Control-Allow-Credentials: - "true" @@ -285,13 +285,13 @@ interactions: "type": "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778050340582306000.us-southeast-1.linodeobjects.com", "bucket_name": "go-test-logs-destination-1778050340582306000", "path": "updated/logs/path/", "access_key_id": "[SANITIZED]"}, "version": 2, "status": "active", - "created_by": "akrzyszt_dola_testnet_admin", "created": "2018-01-02T03:04:05", - "updated_by": "akrzyszt_dola_testnet_admin", "updated": "2018-01-02T03:04:05"}, + "created_by": "user", "created": "2018-01-02T03:04:05", + "updated_by": "user", "updated": "2018-01-02T03:04:05"}, {"id": 406, "label": "go-test-logs-destination-1778050344927369000", "type": "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778050340582306000.us-southeast-1.linodeobjects.com", "bucket_name": "go-test-logs-destination-1778050340582306000", "access_key_id": - "[SANITIZED]"}, "version": 1, "status": "inactive", "created_by": "akrzyszt_dola_testnet_admin", - "created": "2018-01-02T03:04:05", "updated_by": "akrzyszt_dola_testnet_admin", + "[SANITIZED]"}, "version": 1, "status": "inactive", "created_by": "user", + "created": "2018-01-02T03:04:05", "updated_by": "user", "updated": "2018-01-02T03:04:05"}]}' headers: Access-Control-Allow-Credentials: @@ -357,8 +357,8 @@ interactions: "type": "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778050340582306000.us-southeast-1.linodeobjects.com", "bucket_name": "go-test-logs-destination-1778050340582306000", "path": "updated/logs/path/", "access_key_id": "[SANITIZED]"}, "version": 2, "status": "active", - "created_by": "akrzyszt_dola_testnet_admin", "created": "2018-01-02T03:04:05", - "updated_by": "akrzyszt_dola_testnet_admin", "updated": "2018-01-02T03:04:05"}' + "created_by": "user", "created": "2018-01-02T03:04:05", + "updated_by": "user", "updated": "2018-01-02T03:04:05"}' headers: Access-Control-Allow-Credentials: - "true" diff --git a/test/unit/fixtures/monitor_log_destinations_get.json b/test/unit/fixtures/monitor_log_destinations_get.json index 2701a240f..ef19580f2 100644 --- a/test/unit/fixtures/monitor_log_destinations_get.json +++ b/test/unit/fixtures/monitor_log_destinations_get.json @@ -1,6 +1,6 @@ { - "created": "2025-07-20T09:45:13Z", - "created_by": "John Q. Linode", + "created": "2025-07-20T09:45:13", + "created_by": "user", "details": { "access_key_id": "1ABCD23EFG4HIJKLMNO5", "bucket_name": "primary-bucket", @@ -11,7 +11,7 @@ "label": "OBJ_logs_destination", "status": "active", "type": "akamai_object_storage", - "updated": "2025-07-21T12:41:09Z", - "updated_by": "Jane Q. Linode", + "updated": "2025-07-21T12:41:09", + "updated_by": "user", "version": 1 } \ No newline at end of file diff --git a/test/unit/fixtures/monitor_log_destinations_list.json b/test/unit/fixtures/monitor_log_destinations_list.json index b6b469216..fb30f7990 100644 --- a/test/unit/fixtures/monitor_log_destinations_list.json +++ b/test/unit/fixtures/monitor_log_destinations_list.json @@ -1,8 +1,8 @@ { "data":[ { - "created": "2025-07-20T09:45:13Z", - "created_by": "John Q. Linode", + "created": "2025-07-20T09:45:13", + "created_by": "user", "details": { "access_key_id": "123", "bucket_name": "primary-bucket", @@ -13,8 +13,8 @@ "label": "OBJ_logs_destination", "status": "active", "type": "akamai_object_storage", - "updated": "2025-07-21T12:41:09Z", - "updated_by": "Jane Q. Linode", + "updated": "2025-07-21T12:41:09", + "updated_by": "user", "version": 1 } ], diff --git a/test/unit/monitor_log_destinations_test.go b/test/unit/monitor_log_destinations_test.go index 9787387c1..7ee61b216 100644 --- a/test/unit/monitor_log_destinations_test.go +++ b/test/unit/monitor_log_destinations_test.go @@ -95,8 +95,8 @@ func TestGetLogsDestination(t *testing.T) { assert.Equal(t, "OBJ_logs_destination", dest.Label) assert.Equal(t, linodego.LogsDestinationStatusActive, dest.Status) assert.Equal(t, linodego.LogsDestinationTypeAkamaiObjectStorage, dest.Type) - assert.Equal(t, "John Q. Linode", dest.CreatedBy) - assert.Equal(t, "Jane Q. Linode", dest.UpdatedBy) + assert.Equal(t, "user", dest.CreatedBy) + assert.Equal(t, "user", dest.UpdatedBy) assert.Equal(t, 1, dest.Version) assert.Equal(t, "1ABCD23EFG4HIJKLMNO5", string(dest.Details.AccessKeyID)) assert.Equal(t, "primary-bucket", dest.Details.BucketName) From ee844ab57b90a78169a13b8b3d71ce4e5ba99965 Mon Sep 17 00:00:00 2001 From: akrzyszt Date: Wed, 6 May 2026 09:56:21 +0200 Subject: [PATCH 06/21] [DPS-42278] added support for custom https destination type --- ...tor_log_destinations_custom_https_get.json | 31 +++++ ...monitor_log_destinations_history_list.json | 25 ++++ .../monitor_log_destinations_list.json | 31 ++++- test/unit/monitor_log_destinations_test.go | 109 +++++++++++++++++- 4 files changed, 191 insertions(+), 5 deletions(-) create mode 100644 test/unit/fixtures/monitor_log_destinations_custom_https_get.json create mode 100644 test/unit/fixtures/monitor_log_destinations_history_list.json diff --git a/test/unit/fixtures/monitor_log_destinations_custom_https_get.json b/test/unit/fixtures/monitor_log_destinations_custom_https_get.json new file mode 100644 index 000000000..8709f6260 --- /dev/null +++ b/test/unit/fixtures/monitor_log_destinations_custom_https_get.json @@ -0,0 +1,31 @@ +{ + "created": "2025-07-20T09:45:13", + "created_by": "user", + "details": { + "endpoint_url": "https://my-site.com/log-storage/database-info", + "authentication": { + "type": "basic", + "details": { + "basic_authentication_user": "John_Q", + "basic_authentication_password": "p@$$w0Rd" + } + }, + "client_certificate_details": null, + "content_type": "application/json", + "custom_headers": [ + { + "name": "Cache-Control", + "value": "max-age=0" + } + ], + "data_compression": "gzip" + }, + "id": 67890, + "label": "HTTPS_logs_destination", + "status": "active", + "type": "custom_https", + "updated": "2025-07-21T12:41:09", + "updated_by": "user", + "version": 1 +} + diff --git a/test/unit/fixtures/monitor_log_destinations_history_list.json b/test/unit/fixtures/monitor_log_destinations_history_list.json new file mode 100644 index 000000000..c39f79f23 --- /dev/null +++ b/test/unit/fixtures/monitor_log_destinations_history_list.json @@ -0,0 +1,25 @@ +{ + "data":[ + { + "created": "2025-07-20T09:45:13", + "created_by": "user", + "details": { + "access_key_id": "123", + "bucket_name": "primary-bucket", + "host": "primary-bucket-1.us-iad-12.linodeobjects.com", + "path": "audit-logs" + }, + "id": 12345, + "label": "OBJ_logs_destination", + "status": "active", + "type": "akamai_object_storage", + "updated": "2025-07-21T12:41:09", + "updated_by": "user", + "version": 1 + } + ], + "page":1, + "pages":1, + "results":1 +} + diff --git a/test/unit/fixtures/monitor_log_destinations_list.json b/test/unit/fixtures/monitor_log_destinations_list.json index fb30f7990..3b08695a3 100644 --- a/test/unit/fixtures/monitor_log_destinations_list.json +++ b/test/unit/fixtures/monitor_log_destinations_list.json @@ -16,9 +16,38 @@ "updated": "2025-07-21T12:41:09", "updated_by": "user", "version": 1 + }, + { + "created": "2025-08-01T10:00:00", + "created_by": "user", + "details": { + "endpoint_url": "https://my-site.com/log-storage/database-info", + "authentication": { + "type": "basic", + "details": { + "basic_authentication_user": "John_Q", + "basic_authentication_password": "p@$$w0Rd" + } + }, + "content_type": "application/json", + "custom_headers": [ + { + "name": "Cache-Control", + "value": "max-age=0" + } + ], + "data_compression": "gzip" + }, + "id": 67890, + "label": "HTTPS_logs_destination", + "status": "active", + "type": "custom_https", + "updated": "2025-08-02T11:00:00", + "updated_by": "user", + "version": 1 } ], "page":1, "pages":1, - "results":1 + "results":2 } \ No newline at end of file diff --git a/test/unit/monitor_log_destinations_test.go b/test/unit/monitor_log_destinations_test.go index 7ee61b216..d4c04e432 100644 --- a/test/unit/monitor_log_destinations_test.go +++ b/test/unit/monitor_log_destinations_test.go @@ -118,12 +118,33 @@ func TestListLogsDestinations(t *testing.T) { dests, err := base.Client.ListLogsDestinations(context.Background(), nil) assert.NoError(t, err) - assert.Len(t, dests, 1) + assert.Len(t, dests, 2) + + // First destination: akamai_object_storage assert.Equal(t, testLogsDestinationID, dests[0].ID) assert.Equal(t, "OBJ_logs_destination", dests[0].Label) assert.Equal(t, linodego.LogsDestinationStatusActive, dests[0].Status) assert.Equal(t, linodego.LogsDestinationTypeAkamaiObjectStorage, dests[0].Type) - assert.Equal(t, "123", string(dests[0].Details.AccessKeyID)) + assert.Equal(t, "123", dests[0].Details.AccessKeyID) + assert.Equal(t, "primary-bucket", dests[0].Details.BucketName) + assert.Equal(t, "primary-bucket-1.us-iad-12.linodeobjects.com", dests[0].Details.Host) + assert.Equal(t, "audit-logs", dests[0].Details.Path) + + // Second destination: custom_https + assert.Equal(t, 67890, dests[1].ID) + assert.Equal(t, "HTTPS_logs_destination", dests[1].Label) + assert.Equal(t, linodego.LogsDestinationStatusActive, dests[1].Status) + assert.Equal(t, linodego.LogsDestinationTypeCustomHTTPS, dests[1].Type) + assert.Equal(t, "https://my-site.com/log-storage/database-info", dests[1].Details.EndpointURL) + assert.NotNil(t, dests[1].Details.Authentication) + assert.Equal(t, linodego.LogsDestinationCustomHTTPSAuthTypeBasic, dests[1].Details.Authentication.Type) + assert.NotNil(t, dests[1].Details.Authentication.Details) + assert.Equal(t, "John_Q", dests[1].Details.Authentication.Details.Username) + assert.Equal(t, "application/json", dests[1].Details.ContentType) + assert.Len(t, dests[1].Details.CustomHeaders, 1) + assert.Equal(t, "Cache-Control", dests[1].Details.CustomHeaders[0].Name) + assert.Equal(t, "max-age=0", dests[1].Details.CustomHeaders[0].Value) + assert.Equal(t, "gzip", dests[1].Details.DataCompression) } func TestUpdateLogsDestination(t *testing.T) { @@ -156,8 +177,88 @@ func TestDeleteLogsDestination(t *testing.T) { assert.NoError(t, err) } +func TestCreateLogsDestination_CustomHTTPS(t *testing.T) { + fixtureData, err := fixtures.GetFixture("monitor_log_destinations_custom_https_get") + assert.NoError(t, err) + + var base ClientBaseCase + base.SetUp(t) + defer base.TearDown(t) + + base.MockPost("monitor/streams/destinations", fixtureData) + + opts := linodego.LogsDestinationCreateOptions{ + Label: "HTTPS_logs_destination", + Type: linodego.LogsDestinationTypeCustomHTTPS, + Details: linodego.LogsDestinationCustomHTTPSDetailsCreateOptions{ + EndpointURL: "https://my-site.com/log-storage/database-info", + Authentication: &linodego.LogsDestinationCustomHTTPSAuthDetails{ + Type: linodego.LogsDestinationCustomHTTPSAuthTypeBasic, + Details: &linodego.LogsDestinationCustomHTTPSBasicAuthDetails{ + Username: "John_Q", + Password: "p@$$w0Rd", + }, + }, + ContentType: "application/json", + DataCompression: "gzip", + CustomHeaders: []linodego.LogsDestinationCustomHTTPSHeader{ + {Name: "Cache-Control", Value: "max-age=0"}, + }, + }, + } + + dest, err := base.Client.CreateLogsDestination(context.Background(), opts) + assert.NoError(t, err) + assert.NotNil(t, dest) + assert.Equal(t, 67890, dest.ID) + assert.Equal(t, "HTTPS_logs_destination", dest.Label) + assert.Equal(t, linodego.LogsDestinationStatusActive, dest.Status) + assert.Equal(t, linodego.LogsDestinationTypeCustomHTTPS, dest.Type) + assert.Equal(t, "https://my-site.com/log-storage/database-info", dest.Details.EndpointURL) + assert.NotNil(t, dest.Details.Authentication) + assert.Equal(t, linodego.LogsDestinationCustomHTTPSAuthTypeBasic, dest.Details.Authentication.Type) + assert.Equal(t, "application/json", dest.Details.ContentType) + assert.Equal(t, "gzip", dest.Details.DataCompression) + assert.Len(t, dest.Details.CustomHeaders, 1) + assert.Equal(t, "Cache-Control", dest.Details.CustomHeaders[0].Name) + assert.NotNil(t, dest.Created) + assert.NotNil(t, dest.Updated) +} + +func TestUpdateLogsDestination_CustomHTTPS(t *testing.T) { + fixtureData, err := fixtures.GetFixture("monitor_log_destinations_custom_https_get") + assert.NoError(t, err) + + var base ClientBaseCase + base.SetUp(t) + defer base.TearDown(t) + + base.MockPut("monitor/streams/destinations/67890", fixtureData) + + newURL := "https://my-site.com/log-storage/v2" + opts := linodego.LogsDestinationUpdateOptions{ + Label: "HTTPS_logs_destination_renamed", + Details: &linodego.LogsDestinationCustomHTTPSDetailsUpdateOptions{ + EndpointURL: newURL, + Authentication: &linodego.LogsDestinationCustomHTTPSAuthDetails{ + Type: linodego.LogsDestinationCustomHTTPSAuthTypeBasic, + Details: &linodego.LogsDestinationCustomHTTPSBasicAuthDetails{ + Username: "John_Q", + Password: "newpassword", + }, + }, + }, + } + + dest, err := base.Client.UpdateLogsDestination(context.Background(), 67890, opts) + assert.NoError(t, err) + assert.NotNil(t, dest) + assert.Equal(t, 67890, dest.ID) + assert.Equal(t, linodego.LogsDestinationTypeCustomHTTPS, dest.Type) +} + func TestListLogsDestinationHistory(t *testing.T) { - fixtureData, err := fixtures.GetFixture("monitor_log_destinations_list") + fixtureData, err := fixtures.GetFixture("monitor_log_destinations_history_list") assert.NoError(t, err) var base ClientBaseCase @@ -174,7 +275,7 @@ func TestListLogsDestinationHistory(t *testing.T) { assert.Equal(t, linodego.LogsDestinationStatusActive, history[0].Status) assert.Equal(t, linodego.LogsDestinationTypeAkamaiObjectStorage, history[0].Type) assert.Equal(t, 1, history[0].Version) - assert.Equal(t, "123", string(history[0].Details.AccessKeyID)) + assert.Equal(t, "123", history[0].Details.AccessKeyID) assert.Equal(t, "primary-bucket", history[0].Details.BucketName) assert.NotNil(t, history[0].Created) assert.NotNil(t, history[0].Updated) From e1e577b8c2a26b91371c3ad60d13dd98ce12e3b4 Mon Sep 17 00:00:00 2001 From: Kajetan Date: Wed, 6 May 2026 10:43:59 +0200 Subject: [PATCH 07/21] [DPS-42279] [ACLP SDK] [Go] ACLP Logs stream API --- monitor_log_destinations.go | 208 ++ monitor_log_streams.go | 139 ++ ...estLogStream_Create_EmptyDestinations.yaml | 183 ++ ...stLogStream_Create_InvalidDestination.yaml | 183 ++ .../TestLogStream_Create_TwoDestinations.yaml | 1205 ++++++++++ .../fixtures/TestLogStream_Delete.yaml | 1140 ++++++++++ .../fixtures/TestLogStream_Get.yaml | 1239 +++++++++++ .../fixtures/TestLogStream_List.yaml | 1239 +++++++++++ .../TestLogStream_Update_Destinations.yaml | 1956 +++++++++++++++++ .../TestLogStream_Update_LabelAndStatus.yaml | 1509 +++++++++++++ ...tLogsDestination_Create_InvalidSecret.yaml | 369 ++++ ...estLogsDestination_Create_InvalidType.yaml | 369 ++++ .../fixtures/TestLogsDestination_Delete.yaml | 614 ++++++ .../fixtures/TestLogsDestination_Get.yaml | 648 ++++++ .../fixtures/TestLogsDestination_List.yaml | 652 ++++++ .../TestLogsDestination_UpdateAndHistory.yaml | 847 +++++++ test/integration/integration_suite_test.go | 16 +- test/integration/monitor_logs_test.go | 659 ++++++ ...tor_log_destinations_custom_https_get.json | 31 + .../monitor_log_destinations_get.json | 17 + ...monitor_log_destinations_history_list.json | 25 + .../monitor_log_destinations_list.json | 53 + test/unit/fixtures/monitor_log_stream.json | 24 + .../fixtures/monitor_log_streams_history.json | 55 + .../fixtures/monitor_log_streams_list.json | 31 + test/unit/monitor_logs_test.go | 482 ++++ 26 files changed, 13887 insertions(+), 6 deletions(-) create mode 100644 monitor_log_destinations.go create mode 100644 monitor_log_streams.go create mode 100644 test/integration/fixtures/TestLogStream_Create_EmptyDestinations.yaml create mode 100644 test/integration/fixtures/TestLogStream_Create_InvalidDestination.yaml create mode 100644 test/integration/fixtures/TestLogStream_Create_TwoDestinations.yaml create mode 100644 test/integration/fixtures/TestLogStream_Delete.yaml create mode 100644 test/integration/fixtures/TestLogStream_Get.yaml create mode 100644 test/integration/fixtures/TestLogStream_List.yaml create mode 100644 test/integration/fixtures/TestLogStream_Update_Destinations.yaml create mode 100644 test/integration/fixtures/TestLogStream_Update_LabelAndStatus.yaml create mode 100644 test/integration/fixtures/TestLogsDestination_Create_InvalidSecret.yaml create mode 100644 test/integration/fixtures/TestLogsDestination_Create_InvalidType.yaml create mode 100644 test/integration/fixtures/TestLogsDestination_Delete.yaml create mode 100644 test/integration/fixtures/TestLogsDestination_Get.yaml create mode 100644 test/integration/fixtures/TestLogsDestination_List.yaml create mode 100644 test/integration/fixtures/TestLogsDestination_UpdateAndHistory.yaml create mode 100644 test/integration/monitor_logs_test.go create mode 100644 test/unit/fixtures/monitor_log_destinations_custom_https_get.json create mode 100644 test/unit/fixtures/monitor_log_destinations_get.json create mode 100644 test/unit/fixtures/monitor_log_destinations_history_list.json create mode 100644 test/unit/fixtures/monitor_log_destinations_list.json create mode 100644 test/unit/fixtures/monitor_log_stream.json create mode 100644 test/unit/fixtures/monitor_log_streams_history.json create mode 100644 test/unit/fixtures/monitor_log_streams_list.json create mode 100644 test/unit/monitor_logs_test.go diff --git a/monitor_log_destinations.go b/monitor_log_destinations.go new file mode 100644 index 000000000..74a52ead9 --- /dev/null +++ b/monitor_log_destinations.go @@ -0,0 +1,208 @@ +package linodego + +import ( + "context" + "encoding/json" + "time" + + "github.com/linode/linodego/internal/parseabletime" +) + +// LogsDestinationType represents the type of a logs destination. +type LogsDestinationType string + +const ( + LogsDestinationTypeAkamaiObjectStorage LogsDestinationType = "akamai_object_storage" + LogsDestinationTypeCustomHTTPS LogsDestinationType = "custom_https" +) + +// LogsDestinationStatus represents the status of a logs destination. +type LogsDestinationStatus string + +const ( + LogsDestinationStatusActive LogsDestinationStatus = "active" + LogsDestinationStatusInactive LogsDestinationStatus = "inactive" +) + +// LogsDestinationDetails represents the details block returned in a LogsDestination response. +// Fields are populated based on the destination type. +type LogsDestinationDetails struct { + // akamai_object_storage fields + AccessKeyID string `json:"access_key_id,omitempty"` + BucketName string `json:"bucket_name,omitempty"` + Host string `json:"host,omitempty"` + Path string `json:"path,omitempty"` + + // custom_https fields + EndpointURL string `json:"endpoint_url,omitempty"` + Authentication *LogsDestinationCustomHTTPSAuthDetails `json:"authentication,omitempty"` + ClientCertificateDetails *LogsDestinationClientCertificateDetails `json:"client_certificate_details,omitempty"` + ContentType string `json:"content_type,omitempty"` + CustomHeaders []LogsDestinationCustomHTTPSHeader `json:"custom_headers,omitempty"` + DataCompression string `json:"data_compression,omitempty"` +} + +// LogsDestinationDetailsCreateOptions represents the details block used when creating +// an akamai_object_storage LogsDestination. +type LogsDestinationDetailsCreateOptions struct { + AccessKeyID string `json:"access_key_id"` + AccessKeySecret string `json:"access_key_secret"` + BucketName string `json:"bucket_name"` + Host string `json:"host"` + Path *string `json:"path,omitempty"` +} + +// LogsDestinationCustomHTTPSAuthType represents the authentication type for a custom_https destination. +type LogsDestinationCustomHTTPSAuthType string + +const ( + LogsDestinationCustomHTTPSAuthTypeBasic LogsDestinationCustomHTTPSAuthType = "basic" + LogsDestinationCustomHTTPSAuthTypeNone LogsDestinationCustomHTTPSAuthType = "none" +) + +// LogsDestinationCustomHTTPSBasicAuthDetails holds credentials for basic authentication. +// Both fields are required when authentication type is "basic". +type LogsDestinationCustomHTTPSBasicAuthDetails struct { + Username string `json:"basic_authentication_user"` + Password string `json:"basic_authentication_password"` +} + +// LogsDestinationCustomHTTPSAuthDetails holds authentication configuration for a custom_https destination. +type LogsDestinationCustomHTTPSAuthDetails struct { + Type LogsDestinationCustomHTTPSAuthType `json:"type"` + Details *LogsDestinationCustomHTTPSBasicAuthDetails `json:"details,omitempty"` +} + +// LogsDestinationCustomHTTPSHeader represents a single custom HTTP header. +type LogsDestinationCustomHTTPSHeader struct { + Name string `json:"name"` + Value string `json:"value"` +} + +// LogsDestinationClientCertificateDetails contains TLS client certificate information +type LogsDestinationClientCertificateDetails struct { + ClientCACertificate string `json:"client_ca_certificate"` + ClientCertificate string `json:"client_certificate"` + ClientPrivateKey string `json:"client_private_key"` + TLSHostname string `json:"tls_hostname"` +} + +// LogsDestinationCustomHTTPSDetailsCreateOptions represents the details block used when +// creating a custom_https LogsDestination. +type LogsDestinationCustomHTTPSDetailsCreateOptions struct { + EndpointURL string `json:"endpoint_url"` + Authentication *LogsDestinationCustomHTTPSAuthDetails `json:"authentication"` + ClientCertificateDetails *LogsDestinationClientCertificateDetails `json:"client_certificate_details,omitempty"` + ContentType string `json:"content_type,omitempty"` + CustomHeaders []LogsDestinationCustomHTTPSHeader `json:"custom_headers,omitempty"` + DataCompression string `json:"data_compression,omitempty"` +} + +// LogsDestination represents a logs destination object. +type LogsDestination struct { + Created *time.Time `json:"-"` + CreatedBy string `json:"created_by"` + Details LogsDestinationDetails `json:"details"` + ID int `json:"id"` + Label string `json:"label"` + Status LogsDestinationStatus `json:"status"` + Type LogsDestinationType `json:"type"` + Updated *time.Time `json:"-"` + UpdatedBy string `json:"updated_by"` + Version int `json:"version"` +} + +// UnmarshalJSON implements the json.Unmarshaler interface for LogsDestination. +func (i *LogsDestination) UnmarshalJSON(b []byte) error { + type Mask LogsDestination + + p := struct { + *Mask + + Created *parseabletime.ParseableTime `json:"created"` + Updated *parseabletime.ParseableTime `json:"updated"` + }{ + Mask: (*Mask)(i), + } + + if err := json.Unmarshal(b, &p); err != nil { + return err + } + + i.Created = (*time.Time)(p.Created) + i.Updated = (*time.Time)(p.Updated) + + return nil +} + +const logsDestinationBaseEndpoint = "monitor/streams/destinations" + +// LogsDestinationCreateOptions are the options used to create a new logs destination. +type LogsDestinationCreateOptions struct { + Label string `json:"label"` + Type LogsDestinationType `json:"type"` + Details interface{} `json:"details"` +} + +// LogsDestinationDetailsUpdateOptions represents the details block used when updating +// an akamai_object_storage LogsDestination. +type LogsDestinationDetailsUpdateOptions struct { + AccessKeyID string `json:"access_key_id,omitempty"` + AccessKeySecret string `json:"access_key_secret,omitempty"` + BucketName string `json:"bucket_name,omitempty"` + Host string `json:"host,omitempty"` + Path *string `json:"path,omitempty"` +} + +// LogsDestinationCustomHTTPSDetailsUpdateOptions represents the details block used when +// updating a custom_https LogsDestination. +type LogsDestinationCustomHTTPSDetailsUpdateOptions struct { + EndpointURL string `json:"endpoint_url,omitempty"` + Authentication *LogsDestinationCustomHTTPSAuthDetails `json:"authentication,omitempty"` + ClientCertificateDetails *LogsDestinationClientCertificateDetails `json:"client_certificate_details,omitempty"` + ContentType string `json:"content_type,omitempty"` + CustomHeaders []LogsDestinationCustomHTTPSHeader `json:"custom_headers,omitempty"` + DataCompression string `json:"data_compression,omitempty"` +} + +// LogsDestinationUpdateOptions are the options used to update a LogsDestination. +// Set Details to *LogsDestinationDetailsUpdateOptions for akamai_object_storage, +// or *LogsDestinationCustomHTTPSDetailsUpdateOptions for custom_https. +type LogsDestinationUpdateOptions struct { + Label string `json:"label,omitempty"` + Details interface{} `json:"details,omitempty"` +} + +// ListLogsDestinations returns a paginated list of logs destinations. +func (c *Client) ListLogsDestinations(ctx context.Context, opts *ListOptions) ([]LogsDestination, error) { + return getPaginatedResults[LogsDestination](ctx, c, logsDestinationBaseEndpoint, opts) +} + +// GetLogsDestination gets a single logs destination by ID. +func (c *Client) GetLogsDestination(ctx context.Context, destinationID int) (*LogsDestination, error) { + e := formatAPIPath(logsDestinationBaseEndpoint+"/%d", destinationID) + return doGETRequest[LogsDestination](ctx, c, e) +} + +// CreateLogsDestination creates a new logs destination. +func (c *Client) CreateLogsDestination(ctx context.Context, opts LogsDestinationCreateOptions) (*LogsDestination, error) { + return doPOSTRequest[LogsDestination](ctx, c, logsDestinationBaseEndpoint, opts) +} + +// UpdateLogsDestination updates a logs destination. +func (c *Client) UpdateLogsDestination(ctx context.Context, destinationID int, opts LogsDestinationUpdateOptions) (*LogsDestination, error) { + e := formatAPIPath(logsDestinationBaseEndpoint+"/%d", destinationID) + return doPUTRequest[LogsDestination](ctx, c, e, opts) +} + +// DeleteLogsDestination deletes a logs destination. +func (c *Client) DeleteLogsDestination(ctx context.Context, destinationID int) error { + e := formatAPIPath(logsDestinationBaseEndpoint+"/%d", destinationID) + return doDELETERequest(ctx, c, e) +} + +// ListLogsDestinationHistory returns the version history for a logs destination. +func (c *Client) ListLogsDestinationHistory(ctx context.Context, destinationID int, opts *ListOptions) ([]LogsDestination, error) { + e := formatAPIPath(logsDestinationBaseEndpoint+"/%d/history", destinationID) + return getPaginatedResults[LogsDestination](ctx, c, e, opts) +} diff --git a/monitor_log_streams.go b/monitor_log_streams.go new file mode 100644 index 000000000..f17eab397 --- /dev/null +++ b/monitor_log_streams.go @@ -0,0 +1,139 @@ +package linodego + +import ( + "context" + "encoding/json" + "time" + + "github.com/linode/linodego/internal/parseabletime" +) + +// StreamType represents the type of ACLP logs stream. +type StreamType string + +const ( + // StreamTypeAuditLogs configures a stream for ACLP audit logs. + StreamTypeAuditLogs StreamType = "audit_logs" +) + +// StreamStatus represents the availability state of an ACLP logs stream. +type StreamStatus string + +const ( + // StreamStatusActive means the stream is actively delivering logs. + StreamStatusActive StreamStatus = "active" + // StreamStatusInactive means the stream is paused. + StreamStatusInactive StreamStatus = "inactive" +) + +// StreamDestinationType represents the destination type for ACLP logs streams. +type StreamDestinationType string + +const ( + // StreamDestinationTypeAkamaiObjectStorage sends logs to Akamai Object Storage. + StreamDestinationTypeAkamaiObjectStorage StreamDestinationType = "akamai_object_storage" +) + +// StreamDestinationDetails contains destination-specific settings for log delivery. +type StreamDestinationDetails struct { + AccessKeyID string `json:"access_key_id"` + BucketName string `json:"bucket_name"` + Host string `json:"host"` + Path string `json:"path"` +} + +// StreamDestination is a destination configured on an ACLP logs stream. +type StreamDestination struct { + ID int `json:"id"` + Label string `json:"label"` + Type StreamDestinationType `json:"type"` + Details StreamDestinationDetails `json:"details"` +} + +// Stream represents an ACLP logs stream. +type Stream struct { + ID int `json:"id"` + Label string `json:"label"` + Type StreamType `json:"type"` + Status StreamStatus `json:"status"` + Version int `json:"version"` + Destinations []StreamDestination `json:"destinations"` + Created *time.Time `json:"-"` + Updated *time.Time `json:"-"` + CreatedBy string `json:"created_by"` + UpdatedBy string `json:"updated_by"` +} + +// StreamCreateOptions are the fields used to create an ACLP logs stream. +type StreamCreateOptions struct { + Destinations []int `json:"destinations"` + Label string `json:"label"` + Type StreamType `json:"type"` + Status *StreamStatus `json:"status,omitempty"` +} + +// StreamUpdateOptions are the fields used to update an ACLP logs stream. +type StreamUpdateOptions struct { + Destinations []int `json:"destinations,omitempty"` + Label *string `json:"label,omitempty"` + Type *StreamType `json:"type,omitempty"` + Status *StreamStatus `json:"status,omitempty"` +} + +// UnmarshalJSON implements the json.Unmarshaler interface. +func (s *Stream) UnmarshalJSON(b []byte) error { + type mask Stream + + p := struct { + *mask + + Created *parseabletime.ParseableTime `json:"created"` + Updated *parseabletime.ParseableTime `json:"updated"` + }{ + mask: (*mask)(s), + } + + if err := json.Unmarshal(b, &p); err != nil { + return err + } + + s.Created = (*time.Time)(p.Created) + s.Updated = (*time.Time)(p.Updated) + + return nil +} + +// ListLogStreams returns all ACLP logs streams under the account. +func (c *Client) ListLogStreams(ctx context.Context, opts *ListOptions) ([]Stream, error) { + return getPaginatedResults[Stream](ctx, c, "monitor/streams", opts) +} + +// GetLogStream returns a single ACLP logs stream by ID. +func (c *Client) GetLogStream(ctx context.Context, streamID int) (*Stream, error) { + e := formatAPIPath("monitor/streams/%d", streamID) + return doGETRequest[Stream](ctx, c, e) +} + +// CreateLogStream creates a new ACLP logs stream. +func (c *Client) CreateLogStream(ctx context.Context, opts StreamCreateOptions) (*Stream, error) { + e := formatAPIPath("monitor/streams") + return doPOSTRequest[Stream](ctx, c, e, opts) +} + +// UpdateLogStream updates an ACLP logs stream by ID. +func (c *Client) UpdateLogStream(ctx context.Context, streamID int, opts StreamUpdateOptions) (*Stream, error) { + e := formatAPIPath("monitor/streams/%d", streamID) + return doPUTRequest[Stream](ctx, c, e, opts) +} + +// ListLogStreamHistory returns all versions of an ACLP logs stream. +func (c *Client) ListLogStreamHistory(ctx context.Context, streamID int, opts *ListOptions) ([]Stream, error) { + e := formatAPIPath("monitor/streams/%d/history", streamID) + return getPaginatedResults[Stream](ctx, c, e, opts) +} + +// DeleteLogStream deletes an ACLP logs stream by ID. +func (c *Client) DeleteLogStream(ctx context.Context, streamID int) error { + e := formatAPIPath("monitor/streams/%d", streamID) + return doDELETERequest(ctx, c, e) +} diff --git a/test/integration/fixtures/TestLogStream_Create_EmptyDestinations.yaml b/test/integration/fixtures/TestLogStream_Create_EmptyDestinations.yaml new file mode 100644 index 000000000..2f1bd6938 --- /dev/null +++ b/test/integration/fixtures/TestLogStream_Create_EmptyDestinations.yaml @@ -0,0 +1,183 @@ +--- +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/account + method: GET + response: + body: '{"company": "Akamai Technologies - Edge Experience - Dola", "email": "dl-pdx-dw-dola@akamai.com", + "first_name": "", "last_name": "", "address_1": "", "address_2": "", "city": + "", "state": "MA", "zip": "02142", "country": "US", "phone": "", "balance": + 0.0, "tax_id": "", "billing_source": "linode", "credit_card": {"last_four": + null, "expiry": null}, "balance_uninvoiced": 0.0, "active_since": "2018-01-02T03:04:05", + "capabilities": ["Linodes", "NodeBalancers", "Block Storage", "Object Storage", + "Kubernetes", "Cloud Firewall", "Vlans", "LKE HA Control Planes", "VPCs", "Block + Storage Encryption", "Machine Images", "Managed Databases", "Akamai Cloud Pulse + Logs", "LKE Network Access Control List (IP ACL)", "Placement Group", "Object + Storage Access Key Regions", "Object Storage Endpoint Types", "Disk Encryption", + "LA Disk Encryption", "SMTP Enabled", "NETINT Quadra T1U", "Linode Interfaces"], + "active_promotions": [], "euuid": "BED02C05-67D6-4FAA-BC8BB63BB77C1197"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - Tue, 28 Apr 2026 12:04:04 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - account: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/monitor/streams?page=1 + method: GET + response: + body: '{"pages": 0, "page": 1, "results": 0, "data": []}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Length: + - "49" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Tue, 28 Apr 2026 12:04:04 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - monitor: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: '{"destinations":[],"label":"go-test-empty-dest-1777377844780014000","type":"audit_logs"}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/monitor/streams + method: POST + response: + body: '{"errors": [{"reason": "Must contain one item", "field": "destinations"}]}' + headers: + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Content-Length: + - "74" + Content-Type: + - application/json + Expires: + - Tue, 28 Apr 2026 12:04:05 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + X-Accepted-Oauth-Scopes: + - monitor:read_write + X-Frame-Options: + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "1840" + status: 400 Bad Request + code: 400 + duration: "" diff --git a/test/integration/fixtures/TestLogStream_Create_InvalidDestination.yaml b/test/integration/fixtures/TestLogStream_Create_InvalidDestination.yaml new file mode 100644 index 000000000..ed846b97a --- /dev/null +++ b/test/integration/fixtures/TestLogStream_Create_InvalidDestination.yaml @@ -0,0 +1,183 @@ +--- +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/account + method: GET + response: + body: '{"company": "Akamai Technologies - Edge Experience - Dola", "email": "dl-pdx-dw-dola@akamai.com", + "first_name": "", "last_name": "", "address_1": "", "address_2": "", "city": + "", "state": "MA", "zip": "02142", "country": "US", "phone": "", "balance": + 0.0, "tax_id": "", "billing_source": "linode", "credit_card": {"last_four": + null, "expiry": null}, "balance_uninvoiced": 0.0, "active_since": "2018-01-02T03:04:05", + "capabilities": ["Linodes", "NodeBalancers", "Block Storage", "Object Storage", + "Kubernetes", "Cloud Firewall", "Vlans", "LKE HA Control Planes", "VPCs", "Block + Storage Encryption", "Machine Images", "Managed Databases", "Akamai Cloud Pulse + Logs", "LKE Network Access Control List (IP ACL)", "Placement Group", "Object + Storage Access Key Regions", "Object Storage Endpoint Types", "Disk Encryption", + "LA Disk Encryption", "SMTP Enabled", "NETINT Quadra T1U", "Linode Interfaces"], + "active_promotions": [], "euuid": "BED02C05-67D6-4FAA-BC8BB63BB77C1197"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - Tue, 28 Apr 2026 12:02:40 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - account: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/monitor/streams?page=1 + method: GET + response: + body: '{"pages": 0, "page": 1, "results": 0, "data": []}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Length: + - "49" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Tue, 28 Apr 2026 12:02:40 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - monitor: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: '{"destinations":[999999999],"label":"go-test-invalid-dest-1777377760933312000","type":"audit_logs"}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/monitor/streams + method: POST + response: + body: '{"errors": [{"reason": "Destination not found", "field": "destination"}]}' + headers: + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Content-Length: + - "73" + Content-Type: + - application/json + Expires: + - Tue, 28 Apr 2026 12:02:41 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + X-Accepted-Oauth-Scopes: + - monitor:read_write + X-Frame-Options: + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "1840" + status: 400 Bad Request + code: 400 + duration: "" diff --git a/test/integration/fixtures/TestLogStream_Create_TwoDestinations.yaml b/test/integration/fixtures/TestLogStream_Create_TwoDestinations.yaml new file mode 100644 index 000000000..071804ac0 --- /dev/null +++ b/test/integration/fixtures/TestLogStream_Create_TwoDestinations.yaml @@ -0,0 +1,1205 @@ +--- +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/account + method: GET + response: + body: '{"company": "Akamai Technologies - Edge Experience - Dola", "email": "dl-pdx-dw-dola@akamai.com", + "first_name": "", "last_name": "", "address_1": "", "address_2": "", "city": + "", "state": "MA", "zip": "02142", "country": "US", "phone": "", "balance": + 0.0, "tax_id": "", "billing_source": "linode", "credit_card": {"last_four": + null, "expiry": null}, "balance_uninvoiced": 0.0, "active_since": "2018-01-02T03:04:05", + "capabilities": ["Linodes", "NodeBalancers", "Block Storage", "Object Storage", + "Kubernetes", "Cloud Firewall", "Vlans", "LKE HA Control Planes", "VPCs", "Block + Storage Encryption", "Machine Images", "Managed Databases", "Akamai Cloud Pulse + Logs", "LKE Network Access Control List (IP ACL)", "Placement Group", "Object + Storage Access Key Regions", "Object Storage Endpoint Types", "Disk Encryption", + "LA Disk Encryption", "SMTP Enabled", "NETINT Quadra T1U", "Linode Interfaces"], + "active_promotions": [], "euuid": "BED02C05-67D6-4FAA-BC8BB63BB77C1197"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - Tue, 28 Apr 2026 12:05:34 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - account: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/monitor/streams?page=1 + method: GET + response: + body: '{"pages": 0, "page": 1, "results": 0, "data": []}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Length: + - "49" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Tue, 28 Apr 2026 12:05:34 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - monitor: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: '{"region":"us-southeast","label":"go-test-logs-destination-1777377934856713000","acl":"private","cors_enabled":false}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets + method: POST + response: + body: '{"hostname": "go-test-logs-destination-1777377934856713000.us-southeast-1.linodeobjects.com", + "label": "go-test-logs-destination-1777377934856713000", "created": "2018-01-02T03:04:05", + "region": "us-southeast", "cluster": "us-southeast-1", "size": 0, "objects": + 0, "endpoint_type": "E0", "s3_endpoint": "us-southeast-1.linodeobjects.com"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "338" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Tue, 28 Apr 2026 12:05:36 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "60" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" +- request: + body: '{"label":"go-test-logs-destination-1777377936149930000"}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/keys + method: POST + response: + body: '{"id": 3463426, "label": "go-test-logs-destination-1777377936149930000", + "access_key": "9OB5151U3Q8XPEU2BKIH", "secret_key": "sDMb4OydhputKDCh8Xxh2kPsBDfr87nucwwZ2ucA", + "limited": false, "bucket_access": null, "regions": [{"id": "us-east", "s3_endpoint": + "us-east-1.linodeobjects.com", "endpoint_type": "E0"}, {"id": "us-iad", "s3_endpoint": + "us-iad-10.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-lax", "s3_endpoint": + "us-lax-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-lax", "s3_endpoint": + "us-lax-4.linodeobjects.com", "endpoint_type": "E3"}, {"id": "us-mia", "s3_endpoint": + "us-mia-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-ord", "s3_endpoint": + "us-ord-10.linodeobjects.com", "endpoint_type": "E3"}, {"id": "us-ord", "s3_endpoint": + "us-ord-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-sea", "s3_endpoint": + "us-sea-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-southeast", + "s3_endpoint": "us-southeast-1.linodeobjects.com", "endpoint_type": "E0"}]}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - Tue, 28 Apr 2026 12:05:38 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - object_storage:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "60" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" +- request: + body: '{"region":"us-southeast","label":"go-test-logs-destination-1777377938435308000","acl":"private","cors_enabled":false}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets + method: POST + response: + body: '{"hostname": "go-test-logs-destination-1777377938435308000.us-southeast-1.linodeobjects.com", + "label": "go-test-logs-destination-1777377938435308000", "created": "2018-01-02T03:04:05", + "region": "us-southeast", "cluster": "us-southeast-1", "size": 0, "objects": + 0, "endpoint_type": "E0", "s3_endpoint": "us-southeast-1.linodeobjects.com"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "338" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Tue, 28 Apr 2026 12:05:40 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "60" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" +- request: + body: '{"label":"go-test-logs-destination-1777377940564417000"}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/keys + method: POST + response: + body: '{"id": 3463429, "label": "go-test-logs-destination-1777377940564417000", + "access_key": "BR8ZPY5AKP5EI0OM3KJD", "secret_key": "cTtXjecijL1HyDNhhUfe0m8iTwTIu03JtKU986Sa", + "limited": false, "bucket_access": null, "regions": [{"id": "us-east", "s3_endpoint": + "us-east-1.linodeobjects.com", "endpoint_type": "E0"}, {"id": "us-iad", "s3_endpoint": + "us-iad-10.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-lax", "s3_endpoint": + "us-lax-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-lax", "s3_endpoint": + "us-lax-4.linodeobjects.com", "endpoint_type": "E3"}, {"id": "us-mia", "s3_endpoint": + "us-mia-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-ord", "s3_endpoint": + "us-ord-10.linodeobjects.com", "endpoint_type": "E3"}, {"id": "us-ord", "s3_endpoint": + "us-ord-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-sea", "s3_endpoint": + "us-sea-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-southeast", + "s3_endpoint": "us-southeast-1.linodeobjects.com", "endpoint_type": "E0"}]}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - Tue, 28 Apr 2026 12:05:43 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - object_storage:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "60" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" +- request: + body: '{"label":"go-test-logs-destination-1777377943050791000","type":"akamai_object_storage","details":{"access_key_id":"9OB5151U3Q8XPEU2BKIH","access_key_secret":"sDMb4OydhputKDCh8Xxh2kPsBDfr87nucwwZ2ucA","bucket_name":"go-test-logs-destination-1777377934856713000","host":"go-test-logs-destination-1777377934856713000.us-southeast-1.linodeobjects.com"}}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/monitor/streams/destinations + method: POST + response: + body: '{"id": 301, "label": "go-test-logs-destination-1777377943050791000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-destination-1777377934856713000.us-southeast-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1777377934856713000", "access_key_id": + "9OB5151U3Q8XPEU2BKIH"}, "version": 1, "status": "active", "created_by": "dola-klipensk", + "created": "2018-01-02T03:04:05Z", "updated_by": "dola-klipensk", "updated": + "2018-01-02T03:04:05Z"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "473" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Tue, 28 Apr 2026 12:05:44 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - monitor: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: '{"label":"go-test-logs-destination-1777377944271323000","type":"akamai_object_storage","details":{"access_key_id":"BR8ZPY5AKP5EI0OM3KJD","access_key_secret":"cTtXjecijL1HyDNhhUfe0m8iTwTIu03JtKU986Sa","bucket_name":"go-test-logs-destination-1777377938435308000","host":"go-test-logs-destination-1777377938435308000.us-southeast-1.linodeobjects.com"}}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/monitor/streams/destinations + method: POST + response: + body: '{"id": 302, "label": "go-test-logs-destination-1777377944271323000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-destination-1777377938435308000.us-southeast-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1777377938435308000", "access_key_id": + "BR8ZPY5AKP5EI0OM3KJD"}, "version": 1, "status": "active", "created_by": "dola-klipensk", + "created": "2018-01-02T03:04:05Z", "updated_by": "dola-klipensk", "updated": + "2018-01-02T03:04:05Z"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "473" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Tue, 28 Apr 2026 12:05:45 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - monitor: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: '{"destinations":[301,302],"label":"go-test-two-dest-1777377945040332000","type":"audit_logs"}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/monitor/streams + method: POST + response: + body: '{"errors": [{"reason": "Must contain one item", "field": "destinations"}]}' + headers: + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Content-Length: + - "74" + Content-Type: + - application/json + Expires: + - Tue, 28 Apr 2026 12:05:45 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + X-Accepted-Oauth-Scopes: + - monitor:read_write + X-Frame-Options: + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "1840" + status: 400 Bad Request + code: 400 + duration: "" +- request: + body: "" + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/monitor/streams/destinations/302 + 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: + - Tue, 28 Apr 2026 12:05:45 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - monitor: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/monitor/streams/destinations/301 + 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: + - Tue, 28 Apr 2026 12:05:46 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - monitor: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/object-storage/keys/3463429 + 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: + - Tue, 28 Apr 2026 12:05:46 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "60" + 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/object-storage/buckets/us-southeast/go-test-logs-destination-1777377938435308000/object-list + method: GET + response: + body: '{"data": [{"name": "cloud-logs-test-connection-20260428T120544", "size": + 9, "last_modified": "2018-01-02T03:04:05.857Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}], "next_marker": null, "is_truncated": + false}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "259" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Tue, 28 Apr 2026 12:05:47 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage: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: '{"name":"cloud-logs-test-connection-20260428T120544","method":"DELETE","expires_in":360}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1777377938435308000/object-url + method: POST + response: + body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1777377938435308000/cloud-logs-test-connection-20260428T120544?Signature=pKF61sh8IhEZ4gRNZ%2B5Whbpoq2o%3D&Expires=1777378309&AWSAccessKeyID=SANITIZED", + "exists": true}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "257" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Tue, 28 Apr 2026 12:05:49 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage: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/object-storage/buckets/us-southeast/go-test-logs-destination-1777377938435308000 + 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: + - Tue, 28 Apr 2026 12:05:53 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage: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/object-storage/keys/3463426 + 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: + - Tue, 28 Apr 2026 12:05:54 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "60" + 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/object-storage/buckets/us-southeast/go-test-logs-destination-1777377934856713000/object-list + method: GET + response: + body: '{"data": [{"name": "cloud-logs-test-connection-20260428T120543", "size": + 9, "last_modified": "2018-01-02T03:04:05.904Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}], "next_marker": null, "is_truncated": + false}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "259" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Tue, 28 Apr 2026 12:05:55 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage: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: '{"name":"cloud-logs-test-connection-20260428T120543","method":"DELETE","expires_in":360}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1777377934856713000/object-url + method: POST + response: + body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1777377934856713000/cloud-logs-test-connection-20260428T120543?Signature=645vcpnancz7eoRMeiqYUDPZJz8%3D&Expires=1777378316&AWSAccessKeyID=SANITIZED", + "exists": true}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "255" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Tue, 28 Apr 2026 12:05:56 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage: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/object-storage/buckets/us-southeast/go-test-logs-destination-1777377934856713000 + 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: + - Tue, 28 Apr 2026 12:05:59 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "1840" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" diff --git a/test/integration/fixtures/TestLogStream_Delete.yaml b/test/integration/fixtures/TestLogStream_Delete.yaml new file mode 100644 index 000000000..e6659c48b --- /dev/null +++ b/test/integration/fixtures/TestLogStream_Delete.yaml @@ -0,0 +1,1140 @@ +--- +version: 1 +interactions: +- request: + body: '{"region":"us-southeast","label":"go-test-logs-destination-1777367849643592000","acl":"private","cors_enabled":false}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets + method: POST + response: + body: '{"hostname": "go-test-logs-destination-1777367849643592000.us-southeast-1.linodeobjects.com", + "label": "go-test-logs-destination-1777367849643592000", "created": "2018-01-02T03:04:05", + "region": "us-southeast", "cluster": "us-southeast-1", "size": 0, "objects": + 0, "endpoint_type": "E0", "s3_endpoint": "us-southeast-1.linodeobjects.com"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "338" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Tue, 28 Apr 2026 09:17:30 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "60" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" +- request: + body: '{"label":"go-test-logs-destination-1777367850850781000"}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/keys + method: POST + response: + body: '{"id": 3461736, "label": "go-test-logs-destination-1777367850850781000", + "access_key": "66U9V5UKWGH44VKCS1TM", "secret_key": "fcNPXB1zOzT3o8IMFc9sVM0WdeOnPI494hjNnwoO", + "limited": false, "bucket_access": null, "regions": [{"id": "us-east", "s3_endpoint": + "us-east-1.linodeobjects.com", "endpoint_type": "E0"}, {"id": "us-iad", "s3_endpoint": + "us-iad-10.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-lax", "s3_endpoint": + "us-lax-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-lax", "s3_endpoint": + "us-lax-4.linodeobjects.com", "endpoint_type": "E3"}, {"id": "us-mia", "s3_endpoint": + "us-mia-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-ord", "s3_endpoint": + "us-ord-10.linodeobjects.com", "endpoint_type": "E3"}, {"id": "us-ord", "s3_endpoint": + "us-ord-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-sea", "s3_endpoint": + "us-sea-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-southeast", + "s3_endpoint": "us-southeast-1.linodeobjects.com", "endpoint_type": "E0"}]}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - Tue, 28 Apr 2026 09:17:33 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - object_storage:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "60" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" +- request: + body: '{"label":"go-test-logs-destination-1777367853154875000","type":"akamai_object_storage","details":{"access_key_id":"66U9V5UKWGH44VKCS1TM","access_key_secret":"fcNPXB1zOzT3o8IMFc9sVM0WdeOnPI494hjNnwoO","bucket_name":"go-test-logs-destination-1777367849643592000","host":"go-test-logs-destination-1777367849643592000.us-southeast-1.linodeobjects.com"}}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/monitor/streams/destinations + method: POST + response: + body: '{"id": 299, "label": "go-test-logs-destination-1777367853154875000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-destination-1777367849643592000.us-southeast-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1777367849643592000", "access_key_id": + "66U9V5UKWGH44VKCS1TM"}, "version": 1, "status": "active", "created_by": "dola-klipensk", + "created": "2018-01-02T03:04:05Z", "updated_by": "dola-klipensk", "updated": + "2018-01-02T03:04:05Z"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "473" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Tue, 28 Apr 2026 09:17:33 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - monitor: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: '{"destinations":[299],"label":"go-test-log-stream-1777367853935688000","type":"audit_logs"}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/monitor/streams + method: POST + response: + body: '{"id": 150, "label": "go-test-log-stream-1777367853935688000", "type": + "audit_logs", "destinations": [{"id": 299, "type": "akamai_object_storage", + "label": "go-test-logs-destination-1777367853154875000", "details": {"host": + "go-test-logs-destination-1777367849643592000.us-southeast-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1777367849643592000", "access_key_id": + "66U9V5UKWGH44VKCS1TM"}}], "details": null, "version": 1, "status": "provisioning", + "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05Z", "updated_by": + "dola-klipensk", "updated": "2018-01-02T03:04:05Z"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "600" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Tue, 28 Apr 2026 09:17:34 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - monitor: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/account + method: GET + response: + body: '{"company": "Akamai Technologies - Edge Experience - Dola", "email": "dl-pdx-dw-dola@akamai.com", + "first_name": "", "last_name": "", "address_1": "", "address_2": "", "city": + "", "state": "MA", "zip": "02142", "country": "US", "phone": "", "balance": + 0.0, "tax_id": "", "billing_source": "linode", "credit_card": {"last_four": + null, "expiry": null}, "balance_uninvoiced": 0.0, "active_since": "2018-01-02T03:04:05", + "capabilities": ["Linodes", "NodeBalancers", "Block Storage", "Object Storage", + "Kubernetes", "Cloud Firewall", "Vlans", "LKE HA Control Planes", "VPCs", "Block + Storage Encryption", "Machine Images", "Managed Databases", "Akamai Cloud Pulse + Logs", "LKE Network Access Control List (IP ACL)", "Placement Group", "Object + Storage Access Key Regions", "Object Storage Endpoint Types", "Disk Encryption", + "LA Disk Encryption", "SMTP Enabled", "NETINT Quadra T1U", "Linode Interfaces"], + "active_promotions": [], "euuid": "BED02C05-67D6-4FAA-BC8BB63BB77C1197"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - Tue, 28 Apr 2026 09:17:35 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - account: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/monitor/streams/150 + method: GET + response: + body: '{"id": 150, "label": "go-test-log-stream-1777367853935688000", "type": + "audit_logs", "destinations": [{"id": 299, "type": "akamai_object_storage", + "label": "go-test-logs-destination-1777367853154875000", "details": {"host": + "go-test-logs-destination-1777367849643592000.us-southeast-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1777367849643592000", "access_key_id": + "66U9V5UKWGH44VKCS1TM"}}], "details": null, "version": 1, "status": "active", + "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05Z", "updated_by": + "dola-klipensk", "updated": "2018-01-02T03:04:05Z"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "594" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Tue, 28 Apr 2026 09:40:45 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - monitor: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/monitor/streams/150 + 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: + - Tue, 28 Apr 2026 09:40:45 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - monitor: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/monitor/streams/150 + method: GET + response: + body: '{"errors": [{"reason": "Stream not found"}]}' + headers: + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Length: + - "44" + Content-Type: + - application/json + Expires: + - Tue, 28 Apr 2026 09:40:46 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - monitor:read_only + X-Frame-Options: + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "1840" + status: 404 Not Found + code: 404 + 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/monitor/streams/150 + method: DELETE + response: + body: '{"errors": [{"reason": "Stream not found"}]}' + headers: + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Length: + - "44" + Content-Type: + - application/json + Expires: + - Tue, 28 Apr 2026 09:40:46 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + X-Accepted-Oauth-Scopes: + - monitor:read_write + X-Frame-Options: + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "1840" + status: 404 Not Found + code: 404 + 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/monitor/streams/destinations/299 + method: GET + response: + body: '{"id": 299, "label": "go-test-logs-destination-1777367853154875000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-destination-1777367849643592000.us-southeast-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1777367849643592000", "access_key_id": + "66U9V5UKWGH44VKCS1TM"}, "version": 1, "status": "active", "created_by": "dola-klipensk", + "created": "2018-01-02T03:04:05Z", "updated_by": "dola-klipensk", "updated": + "2018-01-02T03:04:05Z"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "473" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Tue, 28 Apr 2026 09:40:46 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - monitor: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/monitor/streams/destinations/299 + 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: + - Tue, 28 Apr 2026 09:40:47 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - monitor: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/object-storage/keys/3461736 + 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: + - Tue, 28 Apr 2026 09:40:47 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "60" + 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/object-storage/buckets/us-southeast/go-test-logs-destination-1777367849643592000/object-list + method: GET + response: + body: '{"data": [{"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/28/akamai_log-043083-1777368782-158401-config.gz", + "size": 576, "last_modified": "2018-01-02T03:04:05.332Z", "etag": "184bb0deea447ccdfd1918eb09785352", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/28/akamai_log-120157-1777368391-729331-config.gz", + "size": 577, "last_modified": "2018-01-02T03:04:05.851Z", "etag": "3048be732eb3bbce798bd07eca9c58fc", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/28/akamai_log-499706-1777368221-191293-config.gz", + "size": 576, "last_modified": "2018-01-02T03:04:05.248Z", "etag": "6f23c8b53d0d692950643f509bae2362", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "cloud-logs-test-connection-20260428T091733", + "size": 9, "last_modified": "2018-01-02T03:04:05.721Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}], "next_marker": null, "is_truncated": + false}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - Tue, 28 Apr 2026 09:40:48 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - object_storage: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: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/28/akamai_log-043083-1777368782-158401-config.gz","method":"DELETE","expires_in":360}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1777367849643592000/object-url + method: POST + response: + body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1777367849643592000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/28/akamai_log-043083-1777368782-158401-config.gz?Signature=nr5v3yvueUJ5yEuaZYPnUEgxyew%3D&Expires=1777369609&AWSAccessKeyID=SANITIZED", + "exists": true}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "333" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Tue, 28 Apr 2026 09:40:49 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage: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: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/28/akamai_log-120157-1777368391-729331-config.gz","method":"DELETE","expires_in":360}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1777367849643592000/object-url + method: POST + response: + body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1777367849643592000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/28/akamai_log-120157-1777368391-729331-config.gz?Signature=UnFOAfqbZ1P7TYTwrylpyiyXyxA%3D&Expires=1777369612&AWSAccessKeyID=SANITIZED", + "exists": true}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "333" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Tue, 28 Apr 2026 09:40:52 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage: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: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/28/akamai_log-499706-1777368221-191293-config.gz","method":"DELETE","expires_in":360}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1777367849643592000/object-url + method: POST + response: + body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1777367849643592000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/28/akamai_log-499706-1777368221-191293-config.gz?Signature=rrzk61uUAuXJcdJu30GWOhJ2YV4%3D&Expires=1777369614&AWSAccessKeyID=SANITIZED", + "exists": true}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "333" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Tue, 28 Apr 2026 09:40:54 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage: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: '{"name":"cloud-logs-test-connection-20260428T091733","method":"DELETE","expires_in":360}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1777367849643592000/object-url + method: POST + response: + body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1777367849643592000/cloud-logs-test-connection-20260428T091733?Signature=gJUMHjXFw%2FRqFiVDE388p2ruja0%3D&Expires=1777369617&AWSAccessKeyID=SANITIZED", + "exists": true}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "257" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Tue, 28 Apr 2026 09:40:57 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage: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/object-storage/buckets/us-southeast/go-test-logs-destination-1777367849643592000 + 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: + - Tue, 28 Apr 2026 09:41:00 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "1840" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" diff --git a/test/integration/fixtures/TestLogStream_Get.yaml b/test/integration/fixtures/TestLogStream_Get.yaml new file mode 100644 index 000000000..ffe1b3489 --- /dev/null +++ b/test/integration/fixtures/TestLogStream_Get.yaml @@ -0,0 +1,1239 @@ +--- +version: 1 +interactions: +- request: + body: '{"region":"us-southeast","label":"go-test-logs-destination-1777380933768752000","acl":"private","cors_enabled":false}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets + method: POST + response: + body: '{"hostname": "go-test-logs-destination-1777380933768752000.us-southeast-1.linodeobjects.com", + "label": "go-test-logs-destination-1777380933768752000", "created": "2018-01-02T03:04:05", + "region": "us-southeast", "cluster": "us-southeast-1", "size": 0, "objects": + 0, "endpoint_type": "E0", "s3_endpoint": "us-southeast-1.linodeobjects.com"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "338" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Tue, 28 Apr 2026 12:55:34 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "60" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" +- request: + body: '{"label":"go-test-logs-destination-1777380934902008000"}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/keys + method: POST + response: + body: '{"id": 3463942, "label": "go-test-logs-destination-1777380934902008000", + "access_key": "M1ETFMYI6C8F1QGPP6XC", "secret_key": "VonqEkac2ZPqLsrJ6amstGOXGByW4M52i3YzLQ4A", + "limited": false, "bucket_access": null, "regions": [{"id": "us-east", "s3_endpoint": + "us-east-1.linodeobjects.com", "endpoint_type": "E0"}, {"id": "us-iad", "s3_endpoint": + "us-iad-10.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-lax", "s3_endpoint": + "us-lax-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-lax", "s3_endpoint": + "us-lax-4.linodeobjects.com", "endpoint_type": "E3"}, {"id": "us-mia", "s3_endpoint": + "us-mia-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-ord", "s3_endpoint": + "us-ord-10.linodeobjects.com", "endpoint_type": "E3"}, {"id": "us-ord", "s3_endpoint": + "us-ord-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-sea", "s3_endpoint": + "us-sea-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-southeast", + "s3_endpoint": "us-southeast-1.linodeobjects.com", "endpoint_type": "E0"}]}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - Tue, 28 Apr 2026 12:55:37 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - object_storage:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "60" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" +- request: + body: '{"label":"go-test-logs-destination-1777380937067141000","type":"akamai_object_storage","details":{"access_key_id":"M1ETFMYI6C8F1QGPP6XC","access_key_secret":"VonqEkac2ZPqLsrJ6amstGOXGByW4M52i3YzLQ4A","bucket_name":"go-test-logs-destination-1777380933768752000","host":"go-test-logs-destination-1777380933768752000.us-southeast-1.linodeobjects.com"}}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/monitor/streams/destinations + method: POST + response: + body: '{"id": 304, "label": "go-test-logs-destination-1777380937067141000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-destination-1777380933768752000.us-southeast-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1777380933768752000", "access_key_id": + "M1ETFMYI6C8F1QGPP6XC"}, "version": 1, "status": "active", "created_by": "dola-klipensk", + "created": "2018-01-02T03:04:05Z", "updated_by": "dola-klipensk", "updated": + "2018-01-02T03:04:05Z"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "473" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Tue, 28 Apr 2026 12:55:37 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - monitor: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: '{"destinations":[304],"label":"go-test-log-stream-1777380937845106000","type":"audit_logs"}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/monitor/streams + method: POST + response: + body: '{"id": 154, "label": "go-test-log-stream-1777380937845106000", "type": + "audit_logs", "destinations": [{"id": 304, "type": "akamai_object_storage", + "label": "go-test-logs-destination-1777380937067141000", "details": {"host": + "go-test-logs-destination-1777380933768752000.us-southeast-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1777380933768752000", "access_key_id": + "M1ETFMYI6C8F1QGPP6XC"}}], "details": null, "version": 1, "status": "provisioning", + "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05Z", "updated_by": + "dola-klipensk", "updated": "2018-01-02T03:04:05Z"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "600" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Tue, 28 Apr 2026 12:55:38 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - monitor: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/account + method: GET + response: + body: '{"company": "Akamai Technologies - Edge Experience - Dola", "email": "dl-pdx-dw-dola@akamai.com", + "first_name": "", "last_name": "", "address_1": "", "address_2": "", "city": + "", "state": "MA", "zip": "02142", "country": "US", "phone": "", "balance": + 0.0, "tax_id": "", "billing_source": "linode", "credit_card": {"last_four": + null, "expiry": null}, "balance_uninvoiced": 0.0, "active_since": "2018-01-02T03:04:05", + "capabilities": ["Linodes", "NodeBalancers", "Block Storage", "Object Storage", + "Kubernetes", "Cloud Firewall", "Vlans", "LKE HA Control Planes", "VPCs", "Block + Storage Encryption", "Machine Images", "Managed Databases", "Akamai Cloud Pulse + Logs", "LKE Network Access Control List (IP ACL)", "Placement Group", "Object + Storage Access Key Regions", "Object Storage Endpoint Types", "Disk Encryption", + "LA Disk Encryption", "SMTP Enabled", "NETINT Quadra T1U", "Linode Interfaces"], + "active_promotions": [], "euuid": "BED02C05-67D6-4FAA-BC8BB63BB77C1197"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - Tue, 28 Apr 2026 12:55:38 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - account: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/monitor/streams/154 + method: GET + response: + body: '{"id": 154, "label": "go-test-log-stream-1777380937845106000", "type": + "audit_logs", "destinations": [{"id": 304, "type": "akamai_object_storage", + "label": "go-test-logs-destination-1777380937067141000", "details": {"host": + "go-test-logs-destination-1777380933768752000.us-southeast-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1777380933768752000", "access_key_id": + "M1ETFMYI6C8F1QGPP6XC"}}], "details": null, "version": 1, "status": "active", + "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05Z", "updated_by": + "dola-klipensk", "updated": "2018-01-02T03:04:05Z"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "594" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Tue, 28 Apr 2026 13:40:59 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - monitor: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/monitor/streams/154 + method: GET + response: + body: '{"id": 154, "label": "go-test-log-stream-1777380937845106000", "type": + "audit_logs", "destinations": [{"id": 304, "type": "akamai_object_storage", + "label": "go-test-logs-destination-1777380937067141000", "details": {"host": + "go-test-logs-destination-1777380933768752000.us-southeast-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1777380933768752000", "access_key_id": + "M1ETFMYI6C8F1QGPP6XC"}}], "details": null, "version": 1, "status": "active", + "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05Z", "updated_by": + "dola-klipensk", "updated": "2018-01-02T03:04:05Z"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "594" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Tue, 28 Apr 2026 13:40:59 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - monitor: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/monitor/streams/154 + 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: + - Tue, 28 Apr 2026 13:41:00 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - monitor: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/monitor/streams/destinations/304 + method: GET + response: + body: '{"id": 304, "label": "go-test-logs-destination-1777380937067141000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-destination-1777380933768752000.us-southeast-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1777380933768752000", "access_key_id": + "M1ETFMYI6C8F1QGPP6XC"}, "version": 1, "status": "active", "created_by": "dola-klipensk", + "created": "2018-01-02T03:04:05Z", "updated_by": "dola-klipensk", "updated": + "2018-01-02T03:04:05Z"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "473" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Tue, 28 Apr 2026 13:41:00 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - monitor: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/monitor/streams/destinations/304 + 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: + - Tue, 28 Apr 2026 13:41:01 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - monitor: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/object-storage/keys/3463942 + 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: + - Tue, 28 Apr 2026 13:41:01 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "60" + 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/object-storage/buckets/us-southeast/go-test-logs-destination-1777380933768752000/object-list + method: GET + response: + body: '{"data": [{"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/28/akamai_log-109980-1777383461-081657-config.gz", + "size": 821, "last_modified": "2018-01-02T03:04:05.417Z", "etag": "c6e55c876a666b39909f0596cb404891", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/28/akamai_log-220626-1777383256-610362-config.gz", + "size": 577, "last_modified": "2018-01-02T03:04:05.761Z", "etag": "84175b07ccef9c81babf6b6a6285c57e", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/28/akamai_log-326411-1777383509-948565-config.gz", + "size": 578, "last_modified": "2018-01-02T03:04:05.240Z", "etag": "a4dfe3d8f5baa0b4fda63fb66261556a", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/28/akamai_log-351678-1777383464-097526-config.gz", + "size": 696, "last_modified": "2018-01-02T03:04:05.267Z", "etag": "156df00fcd1ed771db2ca6274f141bff", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/28/akamai_log-988336-1777382392-381517-config.gz", + "size": 577, "last_modified": "2018-01-02T03:04:05.869Z", "etag": "2f9b36a49ab2d75cbcbf1ef327b08d6c", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "cloud-logs-test-connection-20260428T125537", + "size": 9, "last_modified": "2018-01-02T03:04:05.686Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}], "next_marker": null, "is_truncated": + false}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - Tue, 28 Apr 2026 13:41:02 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - object_storage: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: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/28/akamai_log-109980-1777383461-081657-config.gz","method":"DELETE","expires_in":360}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1777380933768752000/object-url + method: POST + response: + body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1777380933768752000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/28/akamai_log-109980-1777383461-081657-config.gz?Signature=Nulmc4%2FYdS5rj5DB5KyqrlJP3S4%3D&Expires=1777384024&AWSAccessKeyID=SANITIZED", + "exists": true}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "335" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Tue, 28 Apr 2026 13:41:04 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage: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: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/28/akamai_log-220626-1777383256-610362-config.gz","method":"DELETE","expires_in":360}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1777380933768752000/object-url + method: POST + response: + body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1777380933768752000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/28/akamai_log-220626-1777383256-610362-config.gz?Signature=e3GxKAKh0L6kAWOw9uYI%2FwvhkQU%3D&Expires=1777384027&AWSAccessKeyID=SANITIZED", + "exists": true}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "335" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Tue, 28 Apr 2026 13:41:07 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage: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: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/28/akamai_log-326411-1777383509-948565-config.gz","method":"DELETE","expires_in":360}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1777380933768752000/object-url + method: POST + response: + body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1777380933768752000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/28/akamai_log-326411-1777383509-948565-config.gz?Signature=ppzloXkoJgAvjYMipq9qy6bIjIg%3D&Expires=1777384029&AWSAccessKeyID=SANITIZED", + "exists": true}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "333" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Tue, 28 Apr 2026 13:41:09 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage: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: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/28/akamai_log-351678-1777383464-097526-config.gz","method":"DELETE","expires_in":360}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1777380933768752000/object-url + method: POST + response: + body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1777380933768752000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/28/akamai_log-351678-1777383464-097526-config.gz?Signature=OpEd6RueuQD%2BYzT6L0i6OCSJt2A%3D&Expires=1777384032&AWSAccessKeyID=SANITIZED", + "exists": true}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "335" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Tue, 28 Apr 2026 13:41:12 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage: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: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/28/akamai_log-988336-1777382392-381517-config.gz","method":"DELETE","expires_in":360}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1777380933768752000/object-url + method: POST + response: + body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1777380933768752000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/28/akamai_log-988336-1777382392-381517-config.gz?Signature=ClCbni2if0IgkdPtRCLctq0WOKI%3D&Expires=1777384033&AWSAccessKeyID=SANITIZED", + "exists": true}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "333" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Tue, 28 Apr 2026 13:41:13 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage: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: '{"name":"cloud-logs-test-connection-20260428T125537","method":"DELETE","expires_in":360}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1777380933768752000/object-url + method: POST + response: + body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1777380933768752000/cloud-logs-test-connection-20260428T125537?Signature=XC3ffUNVIOuyjSskJdtzJIWByl8%3D&Expires=1777384035&AWSAccessKeyID=SANITIZED", + "exists": true}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "255" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Tue, 28 Apr 2026 13:41:15 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage: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/object-storage/buckets/us-southeast/go-test-logs-destination-1777380933768752000 + 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: + - Tue, 28 Apr 2026 13:41:19 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "1840" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" diff --git a/test/integration/fixtures/TestLogStream_List.yaml b/test/integration/fixtures/TestLogStream_List.yaml new file mode 100644 index 000000000..4d8b1c768 --- /dev/null +++ b/test/integration/fixtures/TestLogStream_List.yaml @@ -0,0 +1,1239 @@ +--- +version: 1 +interactions: +- request: + body: '{"region":"us-southeast","label":"go-test-logs-destination-1777378576952108000","acl":"private","cors_enabled":false}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets + method: POST + response: + body: '{"hostname": "go-test-logs-destination-1777378576952108000.us-southeast-1.linodeobjects.com", + "label": "go-test-logs-destination-1777378576952108000", "created": "2018-01-02T03:04:05", + "region": "us-southeast", "cluster": "us-southeast-1", "size": 0, "objects": + 0, "endpoint_type": "E0", "s3_endpoint": "us-southeast-1.linodeobjects.com"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "338" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Tue, 28 Apr 2026 12:16:18 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "60" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" +- request: + body: '{"label":"go-test-logs-destination-1777378577976714000"}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/keys + method: POST + response: + body: '{"id": 3463554, "label": "go-test-logs-destination-1777378577976714000", + "access_key": "D8M9PZ1CZPNBRYX0UCV6", "secret_key": "Pnzi7JxNPg7dfcozJVlsRKeJ1FcxaXAxDivs13ZI", + "limited": false, "bucket_access": null, "regions": [{"id": "us-east", "s3_endpoint": + "us-east-1.linodeobjects.com", "endpoint_type": "E0"}, {"id": "us-iad", "s3_endpoint": + "us-iad-10.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-lax", "s3_endpoint": + "us-lax-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-lax", "s3_endpoint": + "us-lax-4.linodeobjects.com", "endpoint_type": "E3"}, {"id": "us-mia", "s3_endpoint": + "us-mia-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-ord", "s3_endpoint": + "us-ord-10.linodeobjects.com", "endpoint_type": "E3"}, {"id": "us-ord", "s3_endpoint": + "us-ord-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-sea", "s3_endpoint": + "us-sea-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-southeast", + "s3_endpoint": "us-southeast-1.linodeobjects.com", "endpoint_type": "E0"}]}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - Tue, 28 Apr 2026 12:16:21 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - object_storage:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "60" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" +- request: + body: '{"label":"go-test-logs-destination-1777378581049333000","type":"akamai_object_storage","details":{"access_key_id":"D8M9PZ1CZPNBRYX0UCV6","access_key_secret":"Pnzi7JxNPg7dfcozJVlsRKeJ1FcxaXAxDivs13ZI","bucket_name":"go-test-logs-destination-1777378576952108000","host":"go-test-logs-destination-1777378576952108000.us-southeast-1.linodeobjects.com"}}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/monitor/streams/destinations + method: POST + response: + body: '{"id": 303, "label": "go-test-logs-destination-1777378581049333000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-destination-1777378576952108000.us-southeast-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1777378576952108000", "access_key_id": + "D8M9PZ1CZPNBRYX0UCV6"}, "version": 1, "status": "active", "created_by": "dola-klipensk", + "created": "2018-01-02T03:04:05Z", "updated_by": "dola-klipensk", "updated": + "2018-01-02T03:04:05Z"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "473" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Tue, 28 Apr 2026 12:16:21 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - monitor: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: '{"destinations":[303],"label":"go-test-log-stream-1777378581819773000","type":"audit_logs"}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/monitor/streams + method: POST + response: + body: '{"id": 153, "label": "go-test-log-stream-1777378581819773000", "type": + "audit_logs", "destinations": [{"id": 303, "type": "akamai_object_storage", + "label": "go-test-logs-destination-1777378581049333000", "details": {"host": + "go-test-logs-destination-1777378576952108000.us-southeast-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1777378576952108000", "access_key_id": + "D8M9PZ1CZPNBRYX0UCV6"}}], "details": null, "version": 1, "status": "provisioning", + "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05Z", "updated_by": + "dola-klipensk", "updated": "2018-01-02T03:04:05Z"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "600" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Tue, 28 Apr 2026 12:16:22 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - monitor: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/account + method: GET + response: + body: '{"company": "Akamai Technologies - Edge Experience - Dola", "email": "dl-pdx-dw-dola@akamai.com", + "first_name": "", "last_name": "", "address_1": "", "address_2": "", "city": + "", "state": "MA", "zip": "02142", "country": "US", "phone": "", "balance": + 0.0, "tax_id": "", "billing_source": "linode", "credit_card": {"last_four": + null, "expiry": null}, "balance_uninvoiced": 0.0, "active_since": "2018-01-02T03:04:05", + "capabilities": ["Linodes", "NodeBalancers", "Block Storage", "Object Storage", + "Kubernetes", "Cloud Firewall", "Vlans", "LKE HA Control Planes", "VPCs", "Block + Storage Encryption", "Machine Images", "Managed Databases", "Akamai Cloud Pulse + Logs", "LKE Network Access Control List (IP ACL)", "Placement Group", "Object + Storage Access Key Regions", "Object Storage Endpoint Types", "Disk Encryption", + "LA Disk Encryption", "SMTP Enabled", "NETINT Quadra T1U", "Linode Interfaces"], + "active_promotions": [], "euuid": "BED02C05-67D6-4FAA-BC8BB63BB77C1197"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - Tue, 28 Apr 2026 12:16:22 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - account: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/monitor/streams/153 + method: GET + response: + body: '{"id": 153, "label": "go-test-log-stream-1777378581819773000", "type": + "audit_logs", "destinations": [{"id": 303, "type": "akamai_object_storage", + "label": "go-test-logs-destination-1777378581049333000", "details": {"host": + "go-test-logs-destination-1777378576952108000.us-southeast-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1777378576952108000", "access_key_id": + "D8M9PZ1CZPNBRYX0UCV6"}}], "details": null, "version": 1, "status": "active", + "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05Z", "updated_by": + "dola-klipensk", "updated": "2018-01-02T03:04:05Z"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "594" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Tue, 28 Apr 2026 12:50:37 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - monitor: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/monitor/streams?page=1 + method: GET + response: + body: '{"pages": 1, "page": 1, "results": 1, "data": [{"id": 153, "label": "go-test-log-stream-1777378581819773000", + "type": "audit_logs", "destinations": [{"id": 303, "type": "akamai_object_storage", + "label": "go-test-logs-destination-1777378581049333000", "details": {"host": + "go-test-logs-destination-1777378576952108000.us-southeast-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1777378576952108000", "access_key_id": + "D8M9PZ1CZPNBRYX0UCV6"}}], "details": null, "version": 1, "status": "active", + "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05Z", "updated_by": + "dola-klipensk", "updated": "2018-01-02T03:04:05Z"}]}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "643" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Tue, 28 Apr 2026 12:50:37 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - monitor: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/monitor/streams/153 + 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: + - Tue, 28 Apr 2026 12:50:38 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - monitor: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/monitor/streams/destinations/303 + method: GET + response: + body: '{"id": 303, "label": "go-test-logs-destination-1777378581049333000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-destination-1777378576952108000.us-southeast-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1777378576952108000", "access_key_id": + "D8M9PZ1CZPNBRYX0UCV6"}, "version": 1, "status": "active", "created_by": "dola-klipensk", + "created": "2018-01-02T03:04:05Z", "updated_by": "dola-klipensk", "updated": + "2018-01-02T03:04:05Z"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "473" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Tue, 28 Apr 2026 12:50:38 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - monitor: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/monitor/streams/destinations/303 + 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: + - Tue, 28 Apr 2026 12:50:39 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - monitor: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/object-storage/keys/3463554 + 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: + - Tue, 28 Apr 2026 12:50:39 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "60" + 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/object-storage/buckets/us-southeast/go-test-logs-destination-1777378576952108000/object-list + method: GET + response: + body: '{"data": [{"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/28/akamai_log-016038-1777379785-237432-config.gz", + "size": 577, "last_modified": "2018-01-02T03:04:05.901Z", "etag": "9475cd3c437d4e133a78c28731c861db", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/28/akamai_log-023136-1777380263-960738-config.gz", + "size": 793, "last_modified": "2018-01-02T03:04:05.747Z", "etag": "60d01cd683c9774e4b83bfca635c5ed0", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/28/akamai_log-080990-1777380437-952237-config.gz", + "size": 578, "last_modified": "2018-01-02T03:04:05.576Z", "etag": "6a582c1149bdc30bb19872a3d34ec0d0", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/28/akamai_log-218672-1777379739-355655-config.gz", + "size": 576, "last_modified": "2018-01-02T03:04:05.500Z", "etag": "2fb9af5bd9609791f5d001cc98965c80", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/28/akamai_log-487125-1777379400-573950-config.gz", + "size": 577, "last_modified": "2018-01-02T03:04:05.337Z", "etag": "a74731395da540f2bad79e875d2ae82a", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "cloud-logs-test-connection-20260428T121621", + "size": 9, "last_modified": "2018-01-02T03:04:05.638Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}], "next_marker": null, "is_truncated": + false}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - Tue, 28 Apr 2026 12:50:40 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - object_storage: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: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/28/akamai_log-016038-1777379785-237432-config.gz","method":"DELETE","expires_in":360}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1777378576952108000/object-url + method: POST + response: + body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1777378576952108000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/28/akamai_log-016038-1777379785-237432-config.gz?Signature=zNRMFPMUVknnSDGaPj%2F8nrfPfgI%3D&Expires=1777381001&AWSAccessKeyID=SANITIZED", + "exists": true}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "335" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Tue, 28 Apr 2026 12:50:41 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage: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: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/28/akamai_log-023136-1777380263-960738-config.gz","method":"DELETE","expires_in":360}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1777378576952108000/object-url + method: POST + response: + body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1777378576952108000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/28/akamai_log-023136-1777380263-960738-config.gz?Signature=6nqY2vrubWURE6l7lYGFFjsCkPM%3D&Expires=1777381004&AWSAccessKeyID=SANITIZED", + "exists": true}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "333" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Tue, 28 Apr 2026 12:50:44 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage: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: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/28/akamai_log-080990-1777380437-952237-config.gz","method":"DELETE","expires_in":360}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1777378576952108000/object-url + method: POST + response: + body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1777378576952108000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/28/akamai_log-080990-1777380437-952237-config.gz?Signature=0AN85lXmaYTnKhak%2BQ7eKP9PorY%3D&Expires=1777381006&AWSAccessKeyID=SANITIZED", + "exists": true}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "335" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Tue, 28 Apr 2026 12:50:46 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage: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: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/28/akamai_log-218672-1777379739-355655-config.gz","method":"DELETE","expires_in":360}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1777378576952108000/object-url + method: POST + response: + body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1777378576952108000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/28/akamai_log-218672-1777379739-355655-config.gz?Signature=GRuBe1Wj46HmQTJcXl41qAjyyjg%3D&Expires=1777381007&AWSAccessKeyID=SANITIZED", + "exists": true}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "333" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Tue, 28 Apr 2026 12:50:47 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage: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: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/28/akamai_log-487125-1777379400-573950-config.gz","method":"DELETE","expires_in":360}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1777378576952108000/object-url + method: POST + response: + body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1777378576952108000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/28/akamai_log-487125-1777379400-573950-config.gz?Signature=8wHHFBf8g0yxN%2FsdM9JlxrqPY%2BE%3D&Expires=1777381009&AWSAccessKeyID=SANITIZED", + "exists": true}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "337" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Tue, 28 Apr 2026 12:50:49 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage: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: '{"name":"cloud-logs-test-connection-20260428T121621","method":"DELETE","expires_in":360}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1777378576952108000/object-url + method: POST + response: + body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1777378576952108000/cloud-logs-test-connection-20260428T121621?Signature=rKaHEGhBwoHT9Bxx5Ukbxk9t2OE%3D&Expires=1777381010&AWSAccessKeyID=SANITIZED", + "exists": true}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "255" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Tue, 28 Apr 2026 12:50:50 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage: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/object-storage/buckets/us-southeast/go-test-logs-destination-1777378576952108000 + 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: + - Tue, 28 Apr 2026 12:50:53 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "1840" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" diff --git a/test/integration/fixtures/TestLogStream_Update_Destinations.yaml b/test/integration/fixtures/TestLogStream_Update_Destinations.yaml new file mode 100644 index 000000000..80a68c7b5 --- /dev/null +++ b/test/integration/fixtures/TestLogStream_Update_Destinations.yaml @@ -0,0 +1,1956 @@ +--- +version: 1 +interactions: +- request: + body: '{"region":"us-southeast","label":"go-test-logs-destination-1777453739072557000","acl":"private","cors_enabled":false}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets + method: POST + response: + body: '{"hostname": "go-test-logs-destination-1777453739072557000.us-southeast-1.linodeobjects.com", + "label": "go-test-logs-destination-1777453739072557000", "created": "2018-01-02T03:04:05", + "region": "us-southeast", "cluster": "us-southeast-1", "size": 0, "objects": + 0, "endpoint_type": "E0", "s3_endpoint": "us-southeast-1.linodeobjects.com"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "338" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 29 Apr 2026 09:09:00 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "60" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" +- request: + body: '{"label":"go-test-logs-destination-1777453740358113000"}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/keys + method: POST + response: + body: '{"id": 3476166, "label": "go-test-logs-destination-1777453740358113000", + "access_key": "OTN92JKY9L00JDN7QJHW", "secret_key": "yLuzTppwdVxZwVBwm40BMSDUap4cffuIquAmEmWJ", + "limited": false, "bucket_access": null, "regions": [{"id": "us-east", "s3_endpoint": + "us-east-1.linodeobjects.com", "endpoint_type": "E0"}, {"id": "us-iad", "s3_endpoint": + "us-iad-10.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-lax", "s3_endpoint": + "us-lax-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-lax", "s3_endpoint": + "us-lax-4.linodeobjects.com", "endpoint_type": "E3"}, {"id": "us-mia", "s3_endpoint": + "us-mia-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-ord", "s3_endpoint": + "us-ord-10.linodeobjects.com", "endpoint_type": "E3"}, {"id": "us-ord", "s3_endpoint": + "us-ord-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-sea", "s3_endpoint": + "us-sea-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-southeast", + "s3_endpoint": "us-southeast-1.linodeobjects.com", "endpoint_type": "E0"}]}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 29 Apr 2026 09:09:03 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - object_storage:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "60" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" +- request: + body: '{"label":"go-test-logs-destination-1777453743353878000","type":"akamai_object_storage","details":{"access_key_id":"OTN92JKY9L00JDN7QJHW","access_key_secret":"yLuzTppwdVxZwVBwm40BMSDUap4cffuIquAmEmWJ","bucket_name":"go-test-logs-destination-1777453739072557000","host":"go-test-logs-destination-1777453739072557000.us-southeast-1.linodeobjects.com"}}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/monitor/streams/destinations + method: POST + response: + body: '{"id": 357, "label": "go-test-logs-destination-1777453743353878000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-destination-1777453739072557000.us-southeast-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1777453739072557000", "access_key_id": + "OTN92JKY9L00JDN7QJHW"}, "version": 1, "status": "active", "created_by": "dola-klipensk", + "created": "2018-01-02T03:04:05Z", "updated_by": "dola-klipensk", "updated": + "2018-01-02T03:04:05Z"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "473" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 29 Apr 2026 09:09:04 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - monitor: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: '{"destinations":[357],"label":"go-test-log-stream-1777453744129959000","type":"audit_logs"}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/monitor/streams + method: POST + response: + body: '{"id": 161, "label": "go-test-log-stream-1777453744129959000", "type": + "audit_logs", "destinations": [{"id": 357, "type": "akamai_object_storage", + "label": "go-test-logs-destination-1777453743353878000", "details": {"host": + "go-test-logs-destination-1777453739072557000.us-southeast-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1777453739072557000", "access_key_id": + "OTN92JKY9L00JDN7QJHW"}}], "details": null, "version": 1, "status": "provisioning", + "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05Z", "updated_by": + "dola-klipensk", "updated": "2018-01-02T03:04:05Z"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "600" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 29 Apr 2026 09:09:04 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - monitor: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/account + method: GET + response: + body: '{"company": "Akamai Technologies - Edge Experience - Dola", "email": "dl-pdx-dw-dola@akamai.com", + "first_name": "", "last_name": "", "address_1": "", "address_2": "", "city": + "", "state": "MA", "zip": "02142", "country": "US", "phone": "", "balance": + 0.0, "tax_id": "", "billing_source": "linode", "credit_card": {"last_four": + null, "expiry": null}, "balance_uninvoiced": 0.0, "active_since": "2018-01-02T03:04:05", + "capabilities": ["Linodes", "NodeBalancers", "Block Storage", "Object Storage", + "Kubernetes", "Cloud Firewall", "Vlans", "LKE HA Control Planes", "VPCs", "Block + Storage Encryption", "Machine Images", "Managed Databases", "Akamai Cloud Pulse + Logs", "LKE Network Access Control List (IP ACL)", "Placement Group", "Object + Storage Access Key Regions", "Object Storage Endpoint Types", "Disk Encryption", + "LA Disk Encryption", "SMTP Enabled", "NETINT Quadra T1U", "Linode Interfaces"], + "active_promotions": [], "euuid": "BED02C05-67D6-4FAA-BC8BB63BB77C1197"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 29 Apr 2026 09:09:04 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - account: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: '{"region":"us-southeast","label":"go-test-logs-destination-1777453744771479000","acl":"private","cors_enabled":false}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets + method: POST + response: + body: '{"hostname": "go-test-logs-destination-1777453744771479000.us-southeast-1.linodeobjects.com", + "label": "go-test-logs-destination-1777453744771479000", "created": "2018-01-02T03:04:05", + "region": "us-southeast", "cluster": "us-southeast-1", "size": 0, "objects": + 0, "endpoint_type": "E0", "s3_endpoint": "us-southeast-1.linodeobjects.com"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "338" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 29 Apr 2026 09:09:05 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "60" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" +- request: + body: '{"label":"go-test-logs-destination-1777453745937327000"}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/keys + method: POST + response: + body: '{"id": 3476170, "label": "go-test-logs-destination-1777453745937327000", + "access_key": "88OS0BXWI766DSD0OLM7", "secret_key": "5M3BktWIitoiYAFyyEUmZiApvkerpj6jCAqXLLnc", + "limited": false, "bucket_access": null, "regions": [{"id": "us-east", "s3_endpoint": + "us-east-1.linodeobjects.com", "endpoint_type": "E0"}, {"id": "us-iad", "s3_endpoint": + "us-iad-10.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-lax", "s3_endpoint": + "us-lax-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-lax", "s3_endpoint": + "us-lax-4.linodeobjects.com", "endpoint_type": "E3"}, {"id": "us-mia", "s3_endpoint": + "us-mia-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-ord", "s3_endpoint": + "us-ord-10.linodeobjects.com", "endpoint_type": "E3"}, {"id": "us-ord", "s3_endpoint": + "us-ord-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-sea", "s3_endpoint": + "us-sea-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-southeast", + "s3_endpoint": "us-southeast-1.linodeobjects.com", "endpoint_type": "E0"}]}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 29 Apr 2026 09:09:08 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - object_storage:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "60" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" +- request: + body: '{"label":"go-test-logs-destination-1777453748191673000","type":"akamai_object_storage","details":{"access_key_id":"88OS0BXWI766DSD0OLM7","access_key_secret":"5M3BktWIitoiYAFyyEUmZiApvkerpj6jCAqXLLnc","bucket_name":"go-test-logs-destination-1777453744771479000","host":"go-test-logs-destination-1777453744771479000.us-southeast-1.linodeobjects.com"}}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/monitor/streams/destinations + method: POST + response: + body: '{"id": 358, "label": "go-test-logs-destination-1777453748191673000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-destination-1777453744771479000.us-southeast-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1777453744771479000", "access_key_id": + "88OS0BXWI766DSD0OLM7"}, "version": 1, "status": "active", "created_by": "dola-klipensk", + "created": "2018-01-02T03:04:05Z", "updated_by": "dola-klipensk", "updated": + "2018-01-02T03:04:05Z"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "473" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 29 Apr 2026 09:09:08 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - monitor: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/monitor/streams/161 + method: GET + response: + body: '{"id": 161, "label": "go-test-log-stream-1777453744129959000", "type": + "audit_logs", "destinations": [{"id": 357, "type": "akamai_object_storage", + "label": "go-test-logs-destination-1777453743353878000", "details": {"host": + "go-test-logs-destination-1777453739072557000.us-southeast-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1777453739072557000", "access_key_id": + "OTN92JKY9L00JDN7QJHW"}}], "details": null, "version": 1, "status": "active", + "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05Z", "updated_by": + "dola-klipensk", "updated": "2018-01-02T03:04:05Z"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "594" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 29 Apr 2026 09:35:20 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - monitor: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: '{"destinations":[358]}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/monitor/streams/161 + method: PUT + response: + body: '{"id": 161, "label": "go-test-log-stream-1777453744129959000", "type": + "audit_logs", "destinations": [{"id": 358, "type": "akamai_object_storage", + "label": "go-test-logs-destination-1777453748191673000", "details": {"host": + "go-test-logs-destination-1777453744771479000.us-southeast-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1777453744771479000", "access_key_id": + "88OS0BXWI766DSD0OLM7"}}], "details": null, "version": 2, "status": "active", + "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05Z", "updated_by": + "dola-klipensk", "updated": "2018-01-02T03:04:05Z"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "594" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 29 Apr 2026 09:35:21 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - monitor: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/monitor/streams/161/history?page=1 + method: GET + response: + body: '{"pages": 1, "page": 1, "results": 2, "data": [{"id": 161, "label": "go-test-log-stream-1777453744129959000", + "type": "audit_logs", "destinations": [{"id": 358, "type": "akamai_object_storage", + "label": "go-test-logs-destination-1777453748191673000", "details": {"host": + "go-test-logs-destination-1777453744771479000.us-southeast-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1777453744771479000", "access_key_id": + "88OS0BXWI766DSD0OLM7"}}], "details": null, "version": 2, "status": "active", + "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05Z", "updated_by": + "dola-klipensk", "updated": "2018-01-02T03:04:05Z"}, {"id": 161, "label": "go-test-log-stream-1777453744129959000", + "type": "audit_logs", "destinations": [{"id": 357, "type": "akamai_object_storage", + "label": "go-test-logs-destination-1777453743353878000", "details": {"host": + "go-test-logs-destination-1777453739072557000.us-southeast-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1777453739072557000", "access_key_id": + "OTN92JKY9L00JDN7QJHW"}}], "details": null, "version": 1, "status": "inactive", + "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05Z", "updated_by": + "dola-klipensk", "updated": "2018-01-02T03:04:05Z"}]}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 29 Apr 2026 09:35:21 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - monitor: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: '{"destinations":[357]}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/monitor/streams/161 + method: PUT + response: + body: '{"id": 161, "label": "go-test-log-stream-1777453744129959000", "type": + "audit_logs", "destinations": [{"id": 357, "type": "akamai_object_storage", + "label": "go-test-logs-destination-1777453743353878000", "details": {"host": + "go-test-logs-destination-1777453739072557000.us-southeast-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1777453739072557000", "access_key_id": + "OTN92JKY9L00JDN7QJHW"}}], "details": null, "version": 3, "status": "active", + "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05Z", "updated_by": + "dola-klipensk", "updated": "2018-01-02T03:04:05Z"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "594" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 29 Apr 2026 09:35:22 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - monitor: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/monitor/streams/destinations/358 + method: DELETE + response: + body: '{}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Length: + - "2" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 29 Apr 2026 09:35:22 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - monitor: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/object-storage/keys/3476170 + method: DELETE + response: + body: '{}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Length: + - "2" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 29 Apr 2026 09:35:23 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "60" + 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/object-storage/buckets/us-southeast/go-test-logs-destination-1777453744771479000/object-list + method: GET + response: + body: '{"data": [{"name": "cloud-logs-test-connection-20260429T090908", "size": + 9, "last_modified": "2018-01-02T03:04:05.738Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}], "next_marker": null, "is_truncated": + false}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "259" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 29 Apr 2026 09:35:23 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage: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: '{"name":"cloud-logs-test-connection-20260429T090908","method":"DELETE","expires_in":360}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1777453744771479000/object-url + method: POST + response: + body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1777453744771479000/cloud-logs-test-connection-20260429T090908?Signature=ubOQZLCHj3tpr%2F%2B6qCWwF%2BLTrHs%3D&Expires=1777455685&AWSAccessKeyID=SANITIZED", + "exists": true}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "261" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 29 Apr 2026 09:35:25 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage: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/object-storage/buckets/us-southeast/go-test-logs-destination-1777453744771479000 + method: DELETE + response: + body: '{}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Length: + - "2" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 29 Apr 2026 09:35:30 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage: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/monitor/streams/161 + method: DELETE + response: + body: '{}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Length: + - "2" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 29 Apr 2026 09:35:31 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - monitor: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/monitor/streams/destinations/357 + method: GET + response: + body: '{"id": 357, "label": "go-test-logs-destination-1777453743353878000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-destination-1777453739072557000.us-southeast-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1777453739072557000", "access_key_id": + "OTN92JKY9L00JDN7QJHW"}, "version": 1, "status": "active", "created_by": "dola-klipensk", + "created": "2018-01-02T03:04:05Z", "updated_by": "dola-klipensk", "updated": + "2018-01-02T03:04:05Z"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "473" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 29 Apr 2026 09:35:31 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - monitor: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/monitor/streams/destinations/357 + method: DELETE + response: + body: '{}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Length: + - "2" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 29 Apr 2026 09:35:31 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - monitor: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/object-storage/keys/3476166 + method: DELETE + response: + body: '{}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Length: + - "2" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 29 Apr 2026 09:35:32 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "60" + 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/object-storage/buckets/us-southeast/go-test-logs-destination-1777453739072557000/object-list + method: GET + response: + body: '{"data": [{"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/29/akamai_log-006576-1777455211-813232-config.gz", + "size": 682, "last_modified": "2018-01-02T03:04:05.485Z", "etag": "f63f404c510e3665e0c68c56aaaa8c18", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/29/akamai_log-464674-1777454809-650004-config.gz", + "size": 576, "last_modified": "2018-01-02T03:04:05.727Z", "etag": "fc6b5fdafb1801a55c3fbd6e68ea4fd1", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/29/akamai_log-507918-1777454787-308855-config.gz", + "size": 1027, "last_modified": "2018-01-02T03:04:05.181Z", "etag": "71262a570138481a671c54a5e3b51218", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/29/akamai_log-725237-1777454754-163326-config.gz", + "size": 513, "last_modified": "2018-01-02T03:04:05.524Z", "etag": "4f1d115f6aa9534a16edb400aa0f8257", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/29/akamai_log-745479-1777454458-729638-config.gz", + "size": 576, "last_modified": "2018-01-02T03:04:05.319Z", "etag": "48afe110c880cbf37f7d4dfb143f2aa3", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/29/akamai_log-857774-1777454149-028428-config.gz", + "size": 679, "last_modified": "2018-01-02T03:04:05.387Z", "etag": "ccb95918dd955f1c17af384c21aa88f2", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "cloud-logs-test-connection-20260429T090903", + "size": 9, "last_modified": "2018-01-02T03:04:05.905Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}], "next_marker": null, "is_truncated": + false}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 29 Apr 2026 09:35:33 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - object_storage: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: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/29/akamai_log-006576-1777455211-813232-config.gz","method":"DELETE","expires_in":360}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1777453739072557000/object-url + method: POST + response: + body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1777453739072557000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/29/akamai_log-006576-1777455211-813232-config.gz?Signature=yJdtrBNWAd4kk9Z1QXZxUsqJwGI%3D&Expires=1777455695&AWSAccessKeyID=SANITIZED", + "exists": true}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "333" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 29 Apr 2026 09:35:35 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage: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: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/29/akamai_log-464674-1777454809-650004-config.gz","method":"DELETE","expires_in":360}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1777453739072557000/object-url + method: POST + response: + body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1777453739072557000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/29/akamai_log-464674-1777454809-650004-config.gz?Signature=OXieKQpHoxXUTW51%2BCfbUtfzTPU%3D&Expires=1777455697&AWSAccessKeyID=SANITIZED", + "exists": true}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "335" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 29 Apr 2026 09:35:37 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage: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: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/29/akamai_log-507918-1777454787-308855-config.gz","method":"DELETE","expires_in":360}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1777453739072557000/object-url + method: POST + response: + body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1777453739072557000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/29/akamai_log-507918-1777454787-308855-config.gz?Signature=%2Fn7DoM3N06BiOj0GhZvZBdvkZtU%3D&Expires=1777455698&AWSAccessKeyID=SANITIZED", + "exists": true}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "335" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 29 Apr 2026 09:35:38 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage: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: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/29/akamai_log-725237-1777454754-163326-config.gz","method":"DELETE","expires_in":360}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1777453739072557000/object-url + method: POST + response: + body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1777453739072557000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/29/akamai_log-725237-1777454754-163326-config.gz?Signature=1wbtpzZaMTG9aUlhKWiEy7EaZ7Q%3D&Expires=1777455700&AWSAccessKeyID=SANITIZED", + "exists": true}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "333" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 29 Apr 2026 09:35:40 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage: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: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/29/akamai_log-745479-1777454458-729638-config.gz","method":"DELETE","expires_in":360}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1777453739072557000/object-url + method: POST + response: + body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1777453739072557000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/29/akamai_log-745479-1777454458-729638-config.gz?Signature=dM8190KyitG4dmberPzXCwey1VA%3D&Expires=1777455702&AWSAccessKeyID=SANITIZED", + "exists": true}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "333" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 29 Apr 2026 09:35:42 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage: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: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/29/akamai_log-857774-1777454149-028428-config.gz","method":"DELETE","expires_in":360}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1777453739072557000/object-url + method: POST + response: + body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1777453739072557000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/29/akamai_log-857774-1777454149-028428-config.gz?Signature=x%2FavNn8AegenCKvmSCGRW2Hh%2BHY%3D&Expires=1777455703&AWSAccessKeyID=SANITIZED", + "exists": true}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "337" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 29 Apr 2026 09:35:43 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage: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: '{"name":"cloud-logs-test-connection-20260429T090903","method":"DELETE","expires_in":360}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1777453739072557000/object-url + method: POST + response: + body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1777453739072557000/cloud-logs-test-connection-20260429T090903?Signature=9Rnsu8j8DzWtyBqtHsO4CmTJtWY%3D&Expires=1777455704&AWSAccessKeyID=SANITIZED", + "exists": true}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "255" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 29 Apr 2026 09:35:45 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage: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/object-storage/buckets/us-southeast/go-test-logs-destination-1777453739072557000 + method: DELETE + response: + body: '{}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Length: + - "2" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 29 Apr 2026 09:35:47 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "1840" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" diff --git a/test/integration/fixtures/TestLogStream_Update_LabelAndStatus.yaml b/test/integration/fixtures/TestLogStream_Update_LabelAndStatus.yaml new file mode 100644 index 000000000..bde25b5f8 --- /dev/null +++ b/test/integration/fixtures/TestLogStream_Update_LabelAndStatus.yaml @@ -0,0 +1,1509 @@ +--- +version: 1 +interactions: +- request: + body: '{"region":"us-southeast","label":"go-test-logs-destination-1777451063219336000","acl":"private","cors_enabled":false}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets + method: POST + response: + body: '{"hostname": "go-test-logs-destination-1777451063219336000.us-southeast-1.linodeobjects.com", + "label": "go-test-logs-destination-1777451063219336000", "created": "2018-01-02T03:04:05", + "region": "us-southeast", "cluster": "us-southeast-1", "size": 0, "objects": + 0, "endpoint_type": "E0", "s3_endpoint": "us-southeast-1.linodeobjects.com"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "338" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 29 Apr 2026 08:24:24 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "60" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" +- request: + body: '{"label":"go-test-logs-destination-1777451064954802000"}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/keys + method: POST + response: + body: '{"id": 3475655, "label": "go-test-logs-destination-1777451064954802000", + "access_key": "DP06WUG9OBGY2Z72T61G", "secret_key": "fgsrmzrJKn2YT2Re7UI89X2xkl0acpzddNmPMtry", + "limited": false, "bucket_access": null, "regions": [{"id": "us-east", "s3_endpoint": + "us-east-1.linodeobjects.com", "endpoint_type": "E0"}, {"id": "us-iad", "s3_endpoint": + "us-iad-10.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-lax", "s3_endpoint": + "us-lax-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-lax", "s3_endpoint": + "us-lax-4.linodeobjects.com", "endpoint_type": "E3"}, {"id": "us-mia", "s3_endpoint": + "us-mia-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-ord", "s3_endpoint": + "us-ord-10.linodeobjects.com", "endpoint_type": "E3"}, {"id": "us-ord", "s3_endpoint": + "us-ord-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-sea", "s3_endpoint": + "us-sea-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-southeast", + "s3_endpoint": "us-southeast-1.linodeobjects.com", "endpoint_type": "E0"}]}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 29 Apr 2026 08:24:26 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - object_storage:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "60" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" +- request: + body: '{"label":"go-test-logs-destination-1777451066964536000","type":"akamai_object_storage","details":{"access_key_id":"DP06WUG9OBGY2Z72T61G","access_key_secret":"fgsrmzrJKn2YT2Re7UI89X2xkl0acpzddNmPMtry","bucket_name":"go-test-logs-destination-1777451063219336000","host":"go-test-logs-destination-1777451063219336000.us-southeast-1.linodeobjects.com"}}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/monitor/streams/destinations + method: POST + response: + body: '{"id": 356, "label": "go-test-logs-destination-1777451066964536000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-destination-1777451063219336000.us-southeast-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1777451063219336000", "access_key_id": + "DP06WUG9OBGY2Z72T61G"}, "version": 1, "status": "active", "created_by": "dola-klipensk", + "created": "2018-01-02T03:04:05Z", "updated_by": "dola-klipensk", "updated": + "2018-01-02T03:04:05Z"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "473" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 29 Apr 2026 08:24:27 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - monitor: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: '{"destinations":[356],"label":"go-test-log-stream-1777451067797799000","type":"audit_logs"}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/monitor/streams + method: POST + response: + body: '{"id": 160, "label": "go-test-log-stream-1777451067797799000", "type": + "audit_logs", "destinations": [{"id": 356, "type": "akamai_object_storage", + "label": "go-test-logs-destination-1777451066964536000", "details": {"host": + "go-test-logs-destination-1777451063219336000.us-southeast-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1777451063219336000", "access_key_id": + "DP06WUG9OBGY2Z72T61G"}}], "details": null, "version": 1, "status": "provisioning", + "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05Z", "updated_by": + "dola-klipensk", "updated": "2018-01-02T03:04:05Z"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "600" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 29 Apr 2026 08:24:28 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - monitor: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/account + method: GET + response: + body: '{"company": "Akamai Technologies - Edge Experience - Dola", "email": "dl-pdx-dw-dola@akamai.com", + "first_name": "", "last_name": "", "address_1": "", "address_2": "", "city": + "", "state": "MA", "zip": "02142", "country": "US", "phone": "", "balance": + 0.0, "tax_id": "", "billing_source": "linode", "credit_card": {"last_four": + null, "expiry": null}, "balance_uninvoiced": 0.0, "active_since": "2018-01-02T03:04:05", + "capabilities": ["Linodes", "NodeBalancers", "Block Storage", "Object Storage", + "Kubernetes", "Cloud Firewall", "Vlans", "LKE HA Control Planes", "VPCs", "Block + Storage Encryption", "Machine Images", "Managed Databases", "Akamai Cloud Pulse + Logs", "LKE Network Access Control List (IP ACL)", "Placement Group", "Object + Storage Access Key Regions", "Object Storage Endpoint Types", "Disk Encryption", + "LA Disk Encryption", "SMTP Enabled", "NETINT Quadra T1U", "Linode Interfaces"], + "active_promotions": [], "euuid": "BED02C05-67D6-4FAA-BC8BB63BB77C1197"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 29 Apr 2026 08:24:28 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - account: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/monitor/streams/160 + method: GET + response: + body: '{"id": 160, "label": "go-test-log-stream-1777451067797799000", "type": + "audit_logs", "destinations": [{"id": 356, "type": "akamai_object_storage", + "label": "go-test-logs-destination-1777451066964536000", "details": {"host": + "go-test-logs-destination-1777451063219336000.us-southeast-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1777451063219336000", "access_key_id": + "DP06WUG9OBGY2Z72T61G"}}], "details": null, "version": 1, "status": "active", + "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05Z", "updated_by": + "dola-klipensk", "updated": "2018-01-02T03:04:05Z"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "594" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 29 Apr 2026 09:05:46 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - monitor: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-test-log-stream-1777451067797799000-upd","status":"inactive"}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/monitor/streams/160 + method: PUT + response: + body: '{"id": 160, "label": "go-test-log-stream-1777451067797799000-upd", "type": + "audit_logs", "destinations": [{"id": 356, "type": "akamai_object_storage", + "label": "go-test-logs-destination-1777451066964536000", "details": {"host": + "go-test-logs-destination-1777451063219336000.us-southeast-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1777451063219336000", "access_key_id": + "DP06WUG9OBGY2Z72T61G"}}], "details": null, "version": 2, "status": "inactive", + "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05Z", "updated_by": + "dola-klipensk", "updated": "2018-01-02T03:04:05Z"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "600" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 29 Apr 2026 09:05:47 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - monitor: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/monitor/streams/160/history?page=1 + method: GET + response: + body: '{"pages": 1, "page": 1, "results": 2, "data": [{"id": 160, "label": "go-test-log-stream-1777451067797799000-upd", + "type": "audit_logs", "destinations": [{"id": 356, "type": "akamai_object_storage", + "label": "go-test-logs-destination-1777451066964536000", "details": {"host": + "go-test-logs-destination-1777451063219336000.us-southeast-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1777451063219336000", "access_key_id": + "DP06WUG9OBGY2Z72T61G"}}], "details": null, "version": 2, "status": "inactive", + "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05Z", "updated_by": + "dola-klipensk", "updated": "2018-01-02T03:04:05Z"}, {"id": 160, "label": "go-test-log-stream-1777451067797799000", + "type": "audit_logs", "destinations": [{"id": 356, "type": "akamai_object_storage", + "label": "go-test-logs-destination-1777451066964536000", "details": {"host": + "go-test-logs-destination-1777451063219336000.us-southeast-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1777451063219336000", "access_key_id": + "DP06WUG9OBGY2Z72T61G"}}], "details": null, "version": 1, "status": "inactive", + "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05Z", "updated_by": + "dola-klipensk", "updated": "2018-01-02T03:04:05Z"}]}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 29 Apr 2026 09:05:47 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - monitor: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-test-log-stream-1777451067797799000","status":"active"}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/monitor/streams/160 + method: PUT + response: + body: '{"id": 160, "label": "go-test-log-stream-1777451067797799000", "type": + "audit_logs", "destinations": [{"id": 356, "type": "akamai_object_storage", + "label": "go-test-logs-destination-1777451066964536000", "details": {"host": + "go-test-logs-destination-1777451063219336000.us-southeast-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1777451063219336000", "access_key_id": + "DP06WUG9OBGY2Z72T61G"}}], "details": null, "version": 3, "status": "active", + "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05Z", "updated_by": + "dola-klipensk", "updated": "2018-01-02T03:04:05Z"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "594" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 29 Apr 2026 09:05:48 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - monitor: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/monitor/streams/160 + method: DELETE + response: + body: '{}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Length: + - "2" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 29 Apr 2026 09:05:48 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - monitor: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/monitor/streams/destinations/356 + method: GET + response: + body: '{"id": 356, "label": "go-test-logs-destination-1777451066964536000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-destination-1777451063219336000.us-southeast-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1777451063219336000", "access_key_id": + "DP06WUG9OBGY2Z72T61G"}, "version": 1, "status": "active", "created_by": "dola-klipensk", + "created": "2018-01-02T03:04:05Z", "updated_by": "dola-klipensk", "updated": + "2018-01-02T03:04:05Z"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "473" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 29 Apr 2026 09:05:49 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - monitor: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/monitor/streams/destinations/356 + method: DELETE + response: + body: '{}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Length: + - "2" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 29 Apr 2026 09:05:49 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - monitor: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/object-storage/keys/3475655 + method: DELETE + response: + body: '{}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Length: + - "2" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 29 Apr 2026 09:05:50 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "60" + 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/object-storage/buckets/us-southeast/go-test-logs-destination-1777451063219336000/object-list + method: GET + response: + body: '{"data": [{"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/29/akamai_log-024003-1777453498-910679-config.gz", + "size": 576, "last_modified": "2018-01-02T03:04:05.210Z", "etag": "f1555208616fb4969d0b8abf8da82573", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/29/akamai_log-100150-1777452278-320673-config.gz", + "size": 1767, "last_modified": "2018-01-02T03:04:05.056Z", "etag": "0b18196418d4d768cd5562851d2200b3", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/29/akamai_log-193479-1777453335-507577-config.gz", + "size": 575, "last_modified": "2018-01-02T03:04:05.141Z", "etag": "bc6e218c6947d51ef4fc1651138a8ec0", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/29/akamai_log-375856-1777452468-993600-config.gz", + "size": 576, "last_modified": "2018-01-02T03:04:05.869Z", "etag": "2bbf1682a11db7376ac06272e0551550", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/29/akamai_log-457998-1777452797-777777-config.gz", + "size": 577, "last_modified": "2018-01-02T03:04:05.970Z", "etag": "31a69672a0273cca643ebc6a15ba9736", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/29/akamai_log-843828-1777452324-874359-config.gz", + "size": 1368, "last_modified": "2018-01-02T03:04:05.763Z", "etag": "3ccba3c4ad1d4d613b4bd4deaada8131", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/29/akamai_log-989492-1777452398-275336-config.gz", + "size": 1254, "last_modified": "2018-01-02T03:04:05.627Z", "etag": "a97e59ce6d95cf4ce35caf74a0fd83c3", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "cloud-logs-test-connection-20260429T082427", + "size": 9, "last_modified": "2018-01-02T03:04:05.544Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}], "next_marker": null, "is_truncated": + false}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 29 Apr 2026 09:05:50 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - object_storage: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: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/29/akamai_log-024003-1777453498-910679-config.gz","method":"DELETE","expires_in":360}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1777451063219336000/object-url + method: POST + response: + body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1777451063219336000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/29/akamai_log-024003-1777453498-910679-config.gz?Signature=QK7y07BCZ3NO38FZjV%2Fbmhvu6Bs%3D&Expires=1777453912&AWSAccessKeyID=SANITIZED", + "exists": true}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "335" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 29 Apr 2026 09:05:52 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage: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: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/29/akamai_log-100150-1777452278-320673-config.gz","method":"DELETE","expires_in":360}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1777451063219336000/object-url + method: POST + response: + body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1777451063219336000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/29/akamai_log-100150-1777452278-320673-config.gz?Signature=eqoCAFD5kchXGaeaDK7J4J%2FRRQc%3D&Expires=1777453915&AWSAccessKeyID=SANITIZED", + "exists": true}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "335" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 29 Apr 2026 09:05:55 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage: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: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/29/akamai_log-193479-1777453335-507577-config.gz","method":"DELETE","expires_in":360}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1777451063219336000/object-url + method: POST + response: + body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1777451063219336000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/29/akamai_log-193479-1777453335-507577-config.gz?Signature=9VN9zM0AtZKxNKvD043AqO%2FSpQg%3D&Expires=1777453917&AWSAccessKeyID=SANITIZED", + "exists": true}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "335" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 29 Apr 2026 09:05:57 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage: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: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/29/akamai_log-375856-1777452468-993600-config.gz","method":"DELETE","expires_in":360}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1777451063219336000/object-url + method: POST + response: + body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1777451063219336000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/29/akamai_log-375856-1777452468-993600-config.gz?Signature=cfUiL12yaOyp6iND%2BgEB2XY2TrA%3D&Expires=1777453918&AWSAccessKeyID=SANITIZED", + "exists": true}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "335" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 29 Apr 2026 09:05:58 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage: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: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/29/akamai_log-457998-1777452797-777777-config.gz","method":"DELETE","expires_in":360}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1777451063219336000/object-url + method: POST + response: + body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1777451063219336000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/29/akamai_log-457998-1777452797-777777-config.gz?Signature=Y3wp23Xgk4LJ9rMtas32tv7cpFQ%3D&Expires=1777453920&AWSAccessKeyID=SANITIZED", + "exists": true}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "333" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 29 Apr 2026 09:06:00 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage: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: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/29/akamai_log-843828-1777452324-874359-config.gz","method":"DELETE","expires_in":360}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1777451063219336000/object-url + method: POST + response: + body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1777451063219336000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/29/akamai_log-843828-1777452324-874359-config.gz?Signature=MIQsXO9RinSSKX6aiyglfkPI%2FAo%3D&Expires=1777453922&AWSAccessKeyID=SANITIZED", + "exists": true}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "335" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 29 Apr 2026 09:06:02 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage: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: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/29/akamai_log-989492-1777452398-275336-config.gz","method":"DELETE","expires_in":360}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1777451063219336000/object-url + method: POST + response: + body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1777451063219336000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/29/akamai_log-989492-1777452398-275336-config.gz?Signature=XcO8FfWN8BxnYp%2BmYfZhAqV2KcE%3D&Expires=1777453924&AWSAccessKeyID=SANITIZED", + "exists": true}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "335" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 29 Apr 2026 09:06:04 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage: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: '{"name":"cloud-logs-test-connection-20260429T082427","method":"DELETE","expires_in":360}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1777451063219336000/object-url + method: POST + response: + body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1777451063219336000/cloud-logs-test-connection-20260429T082427?Signature=uNcvAmwN%2Bt2bXwnDPWdtwucULQw%3D&Expires=1777453925&AWSAccessKeyID=SANITIZED", + "exists": true}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "257" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 29 Apr 2026 09:06:05 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage: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/object-storage/buckets/us-southeast/go-test-logs-destination-1777451063219336000 + method: DELETE + response: + body: '{}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Length: + - "2" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 29 Apr 2026 09:06:08 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "1840" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" diff --git a/test/integration/fixtures/TestLogsDestination_Create_InvalidSecret.yaml b/test/integration/fixtures/TestLogsDestination_Create_InvalidSecret.yaml new file mode 100644 index 000000000..2b07ca25a --- /dev/null +++ b/test/integration/fixtures/TestLogsDestination_Create_InvalidSecret.yaml @@ -0,0 +1,369 @@ +--- +version: 1 +interactions: +- request: + body: '{"region":"us-southeast","label":"go-test-logs-destination-1778050357277893000","acl":"private","cors_enabled":false}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets + method: POST + response: + body: '{"hostname": "go-test-logs-destination-1778050357277893000.us-southeast-1.linodeobjects.com", + "label": "go-test-logs-destination-1778050357277893000", "created": "2018-01-02T03:04:05", + "region": "us-southeast", "cluster": "us-southeast-1", "size": 0, "objects": + 0, "endpoint_type": "E0", "s3_endpoint": "us-southeast-1.linodeobjects.com"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "338" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 06 May 2026 06:52:38 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "60" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" +- request: + body: '{"label":"go-test-logs-destination-1778050358505777000"}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/keys + method: POST + response: + body: '{"id": 3576470, "label": "go-test-logs-destination-1778050358505777000", + "access_key": "[SANITIZED]", "secret_key": "[SANITIZED]", "limited": false, + "bucket_access": null, "regions": [{"id": "us-east", "s3_endpoint": "us-east-1.linodeobjects.com", + "endpoint_type": "E0"}, {"id": "us-iad", "s3_endpoint": "us-iad-10.linodeobjects.com", + "endpoint_type": "E1"}, {"id": "us-lax", "s3_endpoint": "us-lax-1.linodeobjects.com", + "endpoint_type": "E1"}, {"id": "us-lax", "s3_endpoint": "us-lax-4.linodeobjects.com", + "endpoint_type": "E3"}, {"id": "us-mia", "s3_endpoint": "us-mia-1.linodeobjects.com", + "endpoint_type": "E1"}, {"id": "us-ord", "s3_endpoint": "us-ord-10.linodeobjects.com", + "endpoint_type": "E3"}, {"id": "us-ord", "s3_endpoint": "us-ord-1.linodeobjects.com", + "endpoint_type": "E1"}, {"id": "us-sea", "s3_endpoint": "us-sea-1.linodeobjects.com", + "endpoint_type": "E1"}, {"id": "us-southeast", "s3_endpoint": "us-southeast-1.linodeobjects.com", + "endpoint_type": "E0"}]}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 06 May 2026 06:52:41 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - object_storage:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "60" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" +- request: + body: '{"label":"go-test-logs-destination-1778050360962451000","type":"akamai_object_storage","details":{"access_key_id":"1","access_key_secret":"1","bucket_name":"go-test-logs-destination-1778050357277893000","host":"go-test-logs-destination-1778050357277893000.us-southeast-1.linodeobjects.com"}}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/monitor/streams/destinations + method: POST + response: + body: '{"errors": [{"reason": "Invalid access key id or secret key", "field": + "access_key_id/access_secret_key"}]}' + headers: + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Content-Length: + - "107" + Content-Type: + - application/json + Expires: + - Wed, 06 May 2026 06:52:41 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + X-Accepted-Oauth-Scopes: + - monitor:read_write + X-Frame-Options: + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "1840" + status: 400 Bad Request + code: 400 + duration: "" +- request: + body: "" + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/keys/3576470 + method: DELETE + response: + body: '{}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Length: + - "2" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 06 May 2026 06:52:42 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "60" + 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/object-storage/buckets/us-southeast/go-test-logs-destination-1778050357277893000/object-list + method: GET + response: + body: '{"data": [], "next_marker": null, "is_truncated": false}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "56" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 06 May 2026 06:52:43 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage: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/object-storage/buckets/us-southeast/go-test-logs-destination-1778050357277893000 + method: DELETE + response: + body: '{}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Length: + - "2" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 06 May 2026 06:52:46 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "1840" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" diff --git a/test/integration/fixtures/TestLogsDestination_Create_InvalidType.yaml b/test/integration/fixtures/TestLogsDestination_Create_InvalidType.yaml new file mode 100644 index 000000000..25967bf85 --- /dev/null +++ b/test/integration/fixtures/TestLogsDestination_Create_InvalidType.yaml @@ -0,0 +1,369 @@ +--- +version: 1 +interactions: +- request: + body: '{"region":"us-southeast","label":"go-test-logs-destination-1778050366803952000","acl":"private","cors_enabled":false}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets + method: POST + response: + body: '{"hostname": "go-test-logs-destination-1778050366803952000.us-southeast-1.linodeobjects.com", + "label": "go-test-logs-destination-1778050366803952000", "created": "2018-01-02T03:04:05", + "region": "us-southeast", "cluster": "us-southeast-1", "size": 0, "objects": + 0, "endpoint_type": "E0", "s3_endpoint": "us-southeast-1.linodeobjects.com"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "338" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 06 May 2026 06:52:49 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "60" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" +- request: + body: '{"label":"go-test-logs-destination-1778050369234853000"}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/keys + method: POST + response: + body: '{"id": 3576474, "label": "go-test-logs-destination-1778050369234853000", + "access_key": "[SANITIZED]", "secret_key": "[SANITIZED]", "limited": false, + "bucket_access": null, "regions": [{"id": "us-east", "s3_endpoint": "us-east-1.linodeobjects.com", + "endpoint_type": "E0"}, {"id": "us-iad", "s3_endpoint": "us-iad-10.linodeobjects.com", + "endpoint_type": "E1"}, {"id": "us-lax", "s3_endpoint": "us-lax-1.linodeobjects.com", + "endpoint_type": "E1"}, {"id": "us-lax", "s3_endpoint": "us-lax-4.linodeobjects.com", + "endpoint_type": "E3"}, {"id": "us-mia", "s3_endpoint": "us-mia-1.linodeobjects.com", + "endpoint_type": "E1"}, {"id": "us-ord", "s3_endpoint": "us-ord-10.linodeobjects.com", + "endpoint_type": "E3"}, {"id": "us-ord", "s3_endpoint": "us-ord-1.linodeobjects.com", + "endpoint_type": "E1"}, {"id": "us-sea", "s3_endpoint": "us-sea-1.linodeobjects.com", + "endpoint_type": "E1"}, {"id": "us-southeast", "s3_endpoint": "us-southeast-1.linodeobjects.com", + "endpoint_type": "E0"}]}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 06 May 2026 06:52:51 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - object_storage:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "60" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" +- request: + body: '{"label":"go-test-logs-destination-1778050371723025000","type":"invalid_type","details":{"access_key_id":"[SANITIZED]","access_key_secret":"[SANITIZED]","bucket_name":"go-test-logs-destination-1778050366803952000","host":"go-test-logs-destination-1778050366803952000.us-southeast-1.linodeobjects.com"}}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/monitor/streams/destinations + method: POST + response: + body: '{"errors": [{"reason": "Must be one of akamai_object_storage, custom_https", + "field": "type"}]}' + headers: + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Content-Length: + - "95" + Content-Type: + - application/json + Expires: + - Wed, 06 May 2026 06:52:52 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + X-Accepted-Oauth-Scopes: + - monitor:read_write + X-Frame-Options: + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "1840" + status: 400 Bad Request + code: 400 + duration: "" +- request: + body: "" + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/keys/3576474 + method: DELETE + response: + body: '{}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Length: + - "2" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 06 May 2026 06:52:52 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "60" + 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/object-storage/buckets/us-southeast/go-test-logs-destination-1778050366803952000/object-list + method: GET + response: + body: '{"data": [], "next_marker": null, "is_truncated": false}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "56" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 06 May 2026 06:52:53 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage: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/object-storage/buckets/us-southeast/go-test-logs-destination-1778050366803952000 + method: DELETE + response: + body: '{}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Length: + - "2" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 06 May 2026 06:52:56 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "1840" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" diff --git a/test/integration/fixtures/TestLogsDestination_Delete.yaml b/test/integration/fixtures/TestLogsDestination_Delete.yaml new file mode 100644 index 000000000..b106c6b88 --- /dev/null +++ b/test/integration/fixtures/TestLogsDestination_Delete.yaml @@ -0,0 +1,614 @@ +--- +version: 1 +interactions: +- request: + body: '{"region":"us-southeast","label":"go-test-logs-destination-1778050316010853000","acl":"private","cors_enabled":false}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets + method: POST + response: + body: '{"hostname": "go-test-logs-destination-1778050316010853000.us-southeast-1.linodeobjects.com", + "label": "go-test-logs-destination-1778050316010853000", "created": "2018-01-02T03:04:05", + "region": "us-southeast", "cluster": "us-southeast-1", "size": 0, "objects": + 0, "endpoint_type": "E0", "s3_endpoint": "us-southeast-1.linodeobjects.com"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "338" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 06 May 2026 06:51:57 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "60" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" +- request: + body: '{"label":"go-test-logs-destination-1778050317804344000"}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/keys + method: POST + response: + body: '{"id": 3576466, "label": "go-test-logs-destination-1778050317804344000", + "access_key": "[SANITIZED]", "secret_key": "[SANITIZED]", "limited": false, + "bucket_access": null, "regions": [{"id": "us-east", "s3_endpoint": "us-east-1.linodeobjects.com", + "endpoint_type": "E0"}, {"id": "us-iad", "s3_endpoint": "us-iad-10.linodeobjects.com", + "endpoint_type": "E1"}, {"id": "us-lax", "s3_endpoint": "us-lax-1.linodeobjects.com", + "endpoint_type": "E1"}, {"id": "us-lax", "s3_endpoint": "us-lax-4.linodeobjects.com", + "endpoint_type": "E3"}, {"id": "us-mia", "s3_endpoint": "us-mia-1.linodeobjects.com", + "endpoint_type": "E1"}, {"id": "us-ord", "s3_endpoint": "us-ord-10.linodeobjects.com", + "endpoint_type": "E3"}, {"id": "us-ord", "s3_endpoint": "us-ord-1.linodeobjects.com", + "endpoint_type": "E1"}, {"id": "us-sea", "s3_endpoint": "us-sea-1.linodeobjects.com", + "endpoint_type": "E1"}, {"id": "us-southeast", "s3_endpoint": "us-southeast-1.linodeobjects.com", + "endpoint_type": "E0"}]}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 06 May 2026 06:52:00 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - object_storage:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "60" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" +- request: + body: '{"label":"go-test-logs-destination-1778050319979774000","type":"akamai_object_storage","details":{"access_key_id":"[SANITIZED]","access_key_secret":"[SANITIZED]","bucket_name":"go-test-logs-destination-1778050316010853000","host":"go-test-logs-destination-1778050316010853000.us-southeast-1.linodeobjects.com"}}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/monitor/streams/destinations + method: POST + response: + body: '{"id": 404, "label": "go-test-logs-destination-1778050319979774000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778050316010853000.us-southeast-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1778050316010853000", "access_key_id": + "[SANITIZED]"}, "version": 1, "status": "active", "created_by": "user", + "created": "2018-01-02T03:04:05", "updated_by": "user", + "updated": "2018-01-02T03:04:05"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Length: + - "499" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 06 May 2026 06:52:00 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - monitor: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/monitor/streams/destinations/404 + method: DELETE + response: + body: '{}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Length: + - "2" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 06 May 2026 06:52:01 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - monitor: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/monitor/streams/destinations/404 + method: GET + response: + body: '{"errors": [{"reason": "Destination not found"}]}' + headers: + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Length: + - "49" + Content-Type: + - application/json + Expires: + - Wed, 06 May 2026 06:52:01 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - monitor:read_only + X-Frame-Options: + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "1840" + status: 404 Not Found + code: 404 + 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/monitor/streams/destinations/404 + method: GET + response: + body: '{"errors": [{"reason": "Destination not found"}]}' + headers: + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Length: + - "49" + Content-Type: + - application/json + Expires: + - Wed, 06 May 2026 06:52:01 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - monitor:read_only + X-Frame-Options: + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "1840" + status: 404 Not Found + code: 404 + 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/object-storage/keys/3576466 + method: DELETE + response: + body: '{}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Length: + - "2" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 06 May 2026 06:52:02 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "60" + 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/object-storage/buckets/us-southeast/go-test-logs-destination-1778050316010853000/object-list + method: GET + response: + body: '{"data": [{"name": "cloud-logs-test-connection-20260506T065200", "size": + 9, "last_modified": "2018-01-02T03:04:05.602Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}], "next_marker": null, "is_truncated": + false}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "259" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 06 May 2026 06:52:03 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage: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: '{"name":"cloud-logs-test-connection-20260506T065200","method":"DELETE","expires_in":360}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1778050316010853000/object-url + method: POST + response: + body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1778050316010853000/cloud-logs-test-connection-20260506T065200?Signature=6uEELrZEPnQMzw5TGqwIE23mSRM%3D&Expires=1778050683&AWSAccessKeyID=SANITIZED", + "exists": true}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "255" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 06 May 2026 06:52:04 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage: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/object-storage/buckets/us-southeast/go-test-logs-destination-1778050316010853000 + method: DELETE + response: + body: '{}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Length: + - "2" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 06 May 2026 06:52:07 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "1840" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" diff --git a/test/integration/fixtures/TestLogsDestination_Get.yaml b/test/integration/fixtures/TestLogsDestination_Get.yaml new file mode 100644 index 000000000..0adfcbc2a --- /dev/null +++ b/test/integration/fixtures/TestLogsDestination_Get.yaml @@ -0,0 +1,648 @@ +--- +version: 1 +interactions: +- request: + body: '{"region":"us-southeast","label":"go-test-logs-destination-1778050327857586000","acl":"private","cors_enabled":false}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets + method: POST + response: + body: '{"hostname": "go-test-logs-destination-1778050327857586000.us-southeast-1.linodeobjects.com", + "label": "go-test-logs-destination-1778050327857586000", "created": "2018-01-02T03:04:05", + "region": "us-southeast", "cluster": "us-southeast-1", "size": 0, "objects": + 0, "endpoint_type": "E0", "s3_endpoint": "us-southeast-1.linodeobjects.com"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "338" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 06 May 2026 06:52:09 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "60" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" +- request: + body: '{"label":"go-test-logs-destination-1778050329787087000"}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/keys + method: POST + response: + body: '{"id": 3576467, "label": "go-test-logs-destination-1778050329787087000", + "access_key": "[SANITIZED]", "secret_key": "[SANITIZED]", "limited": false, + "bucket_access": null, "regions": [{"id": "us-east", "s3_endpoint": "us-east-1.linodeobjects.com", + "endpoint_type": "E0"}, {"id": "us-iad", "s3_endpoint": "us-iad-10.linodeobjects.com", + "endpoint_type": "E1"}, {"id": "us-lax", "s3_endpoint": "us-lax-1.linodeobjects.com", + "endpoint_type": "E1"}, {"id": "us-lax", "s3_endpoint": "us-lax-4.linodeobjects.com", + "endpoint_type": "E3"}, {"id": "us-mia", "s3_endpoint": "us-mia-1.linodeobjects.com", + "endpoint_type": "E1"}, {"id": "us-ord", "s3_endpoint": "us-ord-10.linodeobjects.com", + "endpoint_type": "E3"}, {"id": "us-ord", "s3_endpoint": "us-ord-1.linodeobjects.com", + "endpoint_type": "E1"}, {"id": "us-sea", "s3_endpoint": "us-sea-1.linodeobjects.com", + "endpoint_type": "E1"}, {"id": "us-southeast", "s3_endpoint": "us-southeast-1.linodeobjects.com", + "endpoint_type": "E0"}]}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 06 May 2026 06:52:12 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - object_storage:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "60" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" +- request: + body: '{"label":"go-test-logs-destination-1778050332159629000","type":"akamai_object_storage","details":{"access_key_id":"[SANITIZED]","access_key_secret":"[SANITIZED]","bucket_name":"go-test-logs-destination-1778050327857586000","host":"go-test-logs-destination-1778050327857586000.us-southeast-1.linodeobjects.com"}}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/monitor/streams/destinations + method: POST + response: + body: '{"id": 405, "label": "go-test-logs-destination-1778050332159629000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778050327857586000.us-southeast-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1778050327857586000", "access_key_id": + "[SANITIZED]"}, "version": 1, "status": "active", "created_by": "user", + "created": "2018-01-02T03:04:05", "updated_by": "user", + "updated": "2018-01-02T03:04:05"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Length: + - "499" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 06 May 2026 06:52:12 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - monitor: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/monitor/streams/destinations/405 + method: GET + response: + body: '{"id": 405, "label": "go-test-logs-destination-1778050332159629000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778050327857586000.us-southeast-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1778050327857586000", "access_key_id": + "[SANITIZED]"}, "version": 1, "status": "active", "created_by": "user", + "created": "2018-01-02T03:04:05", "updated_by": "user", + "updated": "2018-01-02T03:04:05"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Length: + - "499" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 06 May 2026 06:52:13 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - monitor: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/monitor/streams/destinations/405 + method: GET + response: + body: '{"id": 405, "label": "go-test-logs-destination-1778050332159629000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778050327857586000.us-southeast-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1778050327857586000", "access_key_id": + "[SANITIZED]"}, "version": 1, "status": "active", "created_by": "user", + "created": "2018-01-02T03:04:05", "updated_by": "user", + "updated": "2018-01-02T03:04:05"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Length: + - "499" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 06 May 2026 06:52:13 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - monitor: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/monitor/streams/destinations/405 + method: DELETE + response: + body: '{}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Length: + - "2" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 06 May 2026 06:52:13 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - monitor: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/object-storage/keys/3576467 + method: DELETE + response: + body: '{}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Length: + - "2" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 06 May 2026 06:52:14 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "60" + 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/object-storage/buckets/us-southeast/go-test-logs-destination-1778050327857586000/object-list + method: GET + response: + body: '{"data": [{"name": "cloud-logs-test-connection-20260506T065212", "size": + 9, "last_modified": "2018-01-02T03:04:05.778Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}], "next_marker": null, "is_truncated": + false}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "259" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 06 May 2026 06:52:15 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage: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: '{"name":"cloud-logs-test-connection-20260506T065212","method":"DELETE","expires_in":360}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1778050327857586000/object-url + method: POST + response: + body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1778050327857586000/cloud-logs-test-connection-20260506T065212?Signature=4qcGXTa9wKZ85RInpMJy6B7dF7M%3D&Expires=1778050697&AWSAccessKeyID=SANITIZED", + "exists": true}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "255" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 06 May 2026 06:52:17 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage: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/object-storage/buckets/us-southeast/go-test-logs-destination-1778050327857586000 + method: DELETE + response: + body: '{}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Length: + - "2" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 06 May 2026 06:52:20 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "1840" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" diff --git a/test/integration/fixtures/TestLogsDestination_List.yaml b/test/integration/fixtures/TestLogsDestination_List.yaml new file mode 100644 index 000000000..b6e1e0f9b --- /dev/null +++ b/test/integration/fixtures/TestLogsDestination_List.yaml @@ -0,0 +1,652 @@ +--- +version: 1 +interactions: +- request: + body: '{"region":"us-southeast","label":"go-test-logs-destination-1778050304029729000","acl":"private","cors_enabled":false}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets + method: POST + response: + body: '{"hostname": "go-test-logs-destination-1778050304029729000.us-southeast-1.linodeobjects.com", + "label": "go-test-logs-destination-1778050304029729000", "created": "2018-01-02T03:04:05", + "region": "us-southeast", "cluster": "us-southeast-1", "size": 0, "objects": + 0, "endpoint_type": "E0", "s3_endpoint": "us-southeast-1.linodeobjects.com"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "338" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 06 May 2026 06:51:45 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "60" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" +- request: + body: '{"label":"go-test-logs-destination-1778050305259697000"}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/keys + method: POST + response: + body: '{"id": 3576463, "label": "go-test-logs-destination-1778050305259697000", + "access_key": "[SANITIZED]", "secret_key": "[SANITIZED]", "limited": false, + "bucket_access": null, "regions": [{"id": "us-east", "s3_endpoint": "us-east-1.linodeobjects.com", + "endpoint_type": "E0"}, {"id": "us-iad", "s3_endpoint": "us-iad-10.linodeobjects.com", + "endpoint_type": "E1"}, {"id": "us-lax", "s3_endpoint": "us-lax-1.linodeobjects.com", + "endpoint_type": "E1"}, {"id": "us-lax", "s3_endpoint": "us-lax-4.linodeobjects.com", + "endpoint_type": "E3"}, {"id": "us-mia", "s3_endpoint": "us-mia-1.linodeobjects.com", + "endpoint_type": "E1"}, {"id": "us-ord", "s3_endpoint": "us-ord-10.linodeobjects.com", + "endpoint_type": "E3"}, {"id": "us-ord", "s3_endpoint": "us-ord-1.linodeobjects.com", + "endpoint_type": "E1"}, {"id": "us-sea", "s3_endpoint": "us-sea-1.linodeobjects.com", + "endpoint_type": "E1"}, {"id": "us-southeast", "s3_endpoint": "us-southeast-1.linodeobjects.com", + "endpoint_type": "E0"}]}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 06 May 2026 06:51:48 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - object_storage:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "60" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" +- request: + body: '{"label":"go-test-logs-destination-1778050307918035000","type":"akamai_object_storage","details":{"access_key_id":"[SANITIZED]","access_key_secret":"[SANITIZED]","bucket_name":"go-test-logs-destination-1778050304029729000","host":"go-test-logs-destination-1778050304029729000.us-southeast-1.linodeobjects.com"}}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/monitor/streams/destinations + method: POST + response: + body: '{"id": 403, "label": "go-test-logs-destination-1778050307918035000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778050304029729000.us-southeast-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1778050304029729000", "access_key_id": + "[SANITIZED]"}, "version": 1, "status": "active", "created_by": "user", + "created": "2018-01-02T03:04:05", "updated_by": "user", + "updated": "2018-01-02T03:04:05"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Length: + - "499" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 06 May 2026 06:51:48 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - monitor: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/monitor/streams/destinations?page=1 + method: GET + response: + body: '{"pages": 1, "page": 1, "results": 2, "data": [{"id": 296, "label": "go-test-logs-destination-1777279324004188000", + "type": "akamai_object_storage", "details": {"host": "go-test-logs-destination-1777279319044234000.us-southeast-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1777279319044234000", "access_key_id": + "[SANITIZED]"}, "version": 1, "status": "active", "created_by": "dola-klipensk", + "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": + "2018-01-02T03:04:05"}, {"id": 403, "label": "go-test-logs-destination-1778050307918035000", + "type": "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778050304029729000.us-southeast-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1778050304029729000", "access_key_id": + "[SANITIZED]"}, "version": 1, "status": "active", "created_by": "user", + "created": "2018-01-02T03:04:05", "updated_by": "user", + "updated": "2018-01-02T03:04:05"}]}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 06 May 2026 06:51:49 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - monitor: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/monitor/streams/destinations/403 + method: GET + response: + body: '{"id": 403, "label": "go-test-logs-destination-1778050307918035000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778050304029729000.us-southeast-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1778050304029729000", "access_key_id": + "[SANITIZED]"}, "version": 1, "status": "active", "created_by": "user", + "created": "2018-01-02T03:04:05", "updated_by": "user", + "updated": "2018-01-02T03:04:05"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Length: + - "499" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 06 May 2026 06:51:49 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - monitor: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/monitor/streams/destinations/403 + method: DELETE + response: + body: '{}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Length: + - "2" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 06 May 2026 06:51:49 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - monitor: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/object-storage/keys/3576463 + method: DELETE + response: + body: '{}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Length: + - "2" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 06 May 2026 06:51:50 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "60" + 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/object-storage/buckets/us-southeast/go-test-logs-destination-1778050304029729000/object-list + method: GET + response: + body: '{"data": [{"name": "cloud-logs-test-connection-20260506T065148", "size": + 9, "last_modified": "2018-01-02T03:04:05.550Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}], "next_marker": null, "is_truncated": + false}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "259" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 06 May 2026 06:51:51 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage: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: '{"name":"cloud-logs-test-connection-20260506T065148","method":"DELETE","expires_in":360}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1778050304029729000/object-url + method: POST + response: + body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1778050304029729000/cloud-logs-test-connection-20260506T065148?Signature=GG7%2B3uyfsu9l%2FcjsqUhtj4Q31%2FE%3D&Expires=1778050672&AWSAccessKeyID=SANITIZED", + "exists": true}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "261" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 06 May 2026 06:51:52 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage: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/object-storage/buckets/us-southeast/go-test-logs-destination-1778050304029729000 + method: DELETE + response: + body: '{}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Length: + - "2" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 06 May 2026 06:51:56 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "1840" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" diff --git a/test/integration/fixtures/TestLogsDestination_UpdateAndHistory.yaml b/test/integration/fixtures/TestLogsDestination_UpdateAndHistory.yaml new file mode 100644 index 000000000..d40deacd4 --- /dev/null +++ b/test/integration/fixtures/TestLogsDestination_UpdateAndHistory.yaml @@ -0,0 +1,847 @@ +--- +version: 1 +interactions: +- request: + body: '{"region":"us-southeast","label":"go-test-logs-destination-1778050340582306000","acl":"private","cors_enabled":false}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets + method: POST + response: + body: '{"hostname": "go-test-logs-destination-1778050340582306000.us-southeast-1.linodeobjects.com", + "label": "go-test-logs-destination-1778050340582306000", "created": "2018-01-02T03:04:05", + "region": "us-southeast", "cluster": "us-southeast-1", "size": 0, "objects": + 0, "endpoint_type": "E0", "s3_endpoint": "us-southeast-1.linodeobjects.com"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "338" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 06 May 2026 06:52:22 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "60" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" +- request: + body: '{"label":"go-test-logs-destination-1778050342631137000"}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/keys + method: POST + response: + body: '{"id": 3576469, "label": "go-test-logs-destination-1778050342631137000", + "access_key": "[SANITIZED]", "secret_key": "[SANITIZED]", "limited": false, + "bucket_access": null, "regions": [{"id": "us-east", "s3_endpoint": "us-east-1.linodeobjects.com", + "endpoint_type": "E0"}, {"id": "us-iad", "s3_endpoint": "us-iad-10.linodeobjects.com", + "endpoint_type": "E1"}, {"id": "us-lax", "s3_endpoint": "us-lax-1.linodeobjects.com", + "endpoint_type": "E1"}, {"id": "us-lax", "s3_endpoint": "us-lax-4.linodeobjects.com", + "endpoint_type": "E3"}, {"id": "us-mia", "s3_endpoint": "us-mia-1.linodeobjects.com", + "endpoint_type": "E1"}, {"id": "us-ord", "s3_endpoint": "us-ord-10.linodeobjects.com", + "endpoint_type": "E3"}, {"id": "us-ord", "s3_endpoint": "us-ord-1.linodeobjects.com", + "endpoint_type": "E1"}, {"id": "us-sea", "s3_endpoint": "us-sea-1.linodeobjects.com", + "endpoint_type": "E1"}, {"id": "us-southeast", "s3_endpoint": "us-southeast-1.linodeobjects.com", + "endpoint_type": "E0"}]}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 06 May 2026 06:52:25 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - object_storage:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "60" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" +- request: + body: '{"label":"go-test-logs-destination-1778050344927369000","type":"akamai_object_storage","details":{"access_key_id":"[SANITIZED]","access_key_secret":"[SANITIZED]","bucket_name":"go-test-logs-destination-1778050340582306000","host":"go-test-logs-destination-1778050340582306000.us-southeast-1.linodeobjects.com"}}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/monitor/streams/destinations + method: POST + response: + body: '{"id": 406, "label": "go-test-logs-destination-1778050344927369000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778050340582306000.us-southeast-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1778050340582306000", "access_key_id": + "[SANITIZED]"}, "version": 1, "status": "active", "created_by": "user", + "created": "2018-01-02T03:04:05", "updated_by": "user", + "updated": "2018-01-02T03:04:05"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Length: + - "499" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 06 May 2026 06:52:25 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - monitor: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: '{"label":"go-test-logs-destination-1778050344927369000-upd","details":{"access_key_id":"[SANITIZED]","access_key_secret":"[SANITIZED]","bucket_name":"go-test-logs-destination-1778050340582306000","host":"go-test-logs-destination-1778050340582306000.us-southeast-1.linodeobjects.com","path":"updated/logs/path/"}}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/monitor/streams/destinations/406 + method: PUT + response: + body: '{"id": 406, "label": "go-test-logs-destination-1778050344927369000-upd", + "type": "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778050340582306000.us-southeast-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1778050340582306000", "path": "updated/logs/path/", + "access_key_id": "[SANITIZED]"}, "version": 2, "status": "active", + "created_by": "user", "created": "2018-01-02T03:04:05", + "updated_by": "user", "updated": "2018-01-02T03:04:05"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Length: + - "533" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 06 May 2026 06:52:26 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - monitor: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/monitor/streams/destinations/406/history?page=1 + method: GET + response: + body: '{"pages": 1, "page": 1, "results": 2, "data": [{"id": 406, "label": "go-test-logs-destination-1778050344927369000-upd", + "type": "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778050340582306000.us-southeast-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1778050340582306000", "path": "updated/logs/path/", + "access_key_id": "[SANITIZED]"}, "version": 2, "status": "active", + "created_by": "user", "created": "2018-01-02T03:04:05", + "updated_by": "user", "updated": "2018-01-02T03:04:05"}, + {"id": 406, "label": "go-test-logs-destination-1778050344927369000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778050340582306000.us-southeast-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1778050340582306000", "access_key_id": + "[SANITIZED]"}, "version": 1, "status": "inactive", "created_by": "user", + "created": "2018-01-02T03:04:05", "updated_by": "user", + "updated": "2018-01-02T03:04:05"}]}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 06 May 2026 06:52:27 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - monitor: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/monitor/streams/destinations/406 + method: GET + response: + body: '{"id": 406, "label": "go-test-logs-destination-1778050344927369000-upd", + "type": "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778050340582306000.us-southeast-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1778050340582306000", "path": "updated/logs/path/", + "access_key_id": "[SANITIZED]"}, "version": 2, "status": "active", + "created_by": "user", "created": "2018-01-02T03:04:05", + "updated_by": "user", "updated": "2018-01-02T03:04:05"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Length: + - "533" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 06 May 2026 06:52:27 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - monitor: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/monitor/streams/destinations/406 + method: DELETE + response: + body: '{}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Length: + - "2" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 06 May 2026 06:52:27 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - monitor: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/object-storage/keys/3576469 + method: DELETE + response: + body: '{}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Length: + - "2" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 06 May 2026 06:52:28 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "60" + 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/object-storage/buckets/us-southeast/go-test-logs-destination-1778050340582306000/object-list + method: GET + response: + body: '{"data": [{"name": "cloud-logs-test-connection-20260506T065225", "size": + 9, "last_modified": "2018-01-02T03:04:05.542Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "updated/logs/path/", + "size": 0, "last_modified": "2018-01-02T03:04:05.441Z", "etag": "d41d8cd98f00b204e9800998ecf8427e", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "updated/logs/path/cloud-logs-test-connection-20260506T065226", + "size": 9, "last_modified": "2018-01-02T03:04:05.512Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}], "next_marker": null, "is_truncated": + false}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "663" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 06 May 2026 06:52:29 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage: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: '{"name":"cloud-logs-test-connection-20260506T065225","method":"DELETE","expires_in":360}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1778050340582306000/object-url + method: POST + response: + body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1778050340582306000/cloud-logs-test-connection-20260506T065225?Signature=LHgYXKB%2FMLp4NRgdqhn11wRdfW4%3D&Expires=1778050710&AWSAccessKeyID=SANITIZED", + "exists": true}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "257" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 06 May 2026 06:52:30 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage: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: '{"name":"updated/logs/path/","method":"DELETE","expires_in":360}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1778050340582306000/object-url + method: POST + response: + body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1778050340582306000/updated/logs/path/?Signature=4iJ00dQJ77NY6ZU2OO8X2W1OCPo%3D&Expires=1778050711&AWSAccessKeyID=SANITIZED", + "exists": true}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "231" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 06 May 2026 06:52:31 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage: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: '{"name":"updated/logs/path/cloud-logs-test-connection-20260506T065226","method":"DELETE","expires_in":360}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1778050340582306000/object-url + method: POST + response: + body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1778050340582306000/updated/logs/path/cloud-logs-test-connection-20260506T065226?Signature=31dIv2zHtx8eDE9%2BNpg3EGnU0BE%3D&Expires=1778050714&AWSAccessKeyID=SANITIZED", + "exists": true}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "275" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 06 May 2026 06:52:34 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage: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/object-storage/buckets/us-southeast/go-test-logs-destination-1778050340582306000 + method: DELETE + response: + body: '{}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Length: + - "2" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 06 May 2026 06:52:37 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage: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/integration_suite_test.go b/test/integration/integration_suite_test.go index 3ca0cb8a2..3052ae092 100644 --- a/test/integration/integration_suite_test.go +++ b/test/integration/integration_suite_test.go @@ -102,11 +102,7 @@ func testRecorder(t *testing.T, fixturesYaml string, testingMode recorder.Mode, }) r.AddFilter(func(i *cassette.Interaction) error { - re := regexp.MustCompile(`"access_key": "[[:alnum:]]*"`) - i.Response.Body = re.ReplaceAllString(i.Response.Body, `"access_key": "[SANITIZED]"`) - re = regexp.MustCompile(`"secret_key": "[[:alnum:]]*"`) - i.Response.Body = re.ReplaceAllString(i.Response.Body, `"secret_key": "[SANITIZED]"`) - re = regexp.MustCompile("20[0-9]{2}-[01][0-9]-[0-3][0-9]T[0-2][0-9]:[0-9]{2}:[0-9]{2}") + re := regexp.MustCompile("20[0-9]{2}-[01][0-9]-[0-3][0-9]T[0-2][0-9]:[0-9]{2}:[0-9]{2}") i.Response.Body = re.ReplaceAllString(i.Response.Body, "2018-01-02T03:04:05") // re = regexp.MustCompile("192\\.168\\.((1?[0-9][0-9]?|2[0-4][0-9]|25[0-5])\\.)(1?[0-9][0-9]?|2[0-4][0-9]|25[0-5])") // i.Response.Body = re.ReplaceAllString(i.Response.Body, "10.0.0.1") @@ -118,7 +114,15 @@ func testRecorder(t *testing.T, fixturesYaml string, testingMode recorder.Mode, }) r.AddSaveFilter(func(i *cassette.Interaction) error { - re := regexp.MustCompile("AWSAccessKeyId=[[:alnum:]]{20}") + // Sanitize credentials only when saving to cassette, so that real access/secret + // keys are available to test code during recording (e.g. for creating a + // LogsDestination that requires valid object-storage credentials). + re := regexp.MustCompile(`"access_key": "[[:alnum:]]*"`) + i.Response.Body = re.ReplaceAllString(i.Response.Body, `"access_key": "[SANITIZED]"`) + re = regexp.MustCompile(`"secret_key": "[[:alnum:]]*"`) + i.Response.Body = re.ReplaceAllString(i.Response.Body, `"secret_key": "[SANITIZED]"`) + + re = regexp.MustCompile("AWSAccessKeyId=[[:alnum:]]{20}") i.Response.Body = re.ReplaceAllString(i.Response.Body, "AWSAccessKeyID=SANITIZED") i.Request.URL = re.ReplaceAllString(i.Request.URL, "AWSAccessKeyID=SANITIZED") return nil diff --git a/test/integration/monitor_logs_test.go b/test/integration/monitor_logs_test.go new file mode 100644 index 000000000..cb180dbac --- /dev/null +++ b/test/integration/monitor_logs_test.go @@ -0,0 +1,659 @@ +package integration + +import ( + "context" + "fmt" + "net/http" + "os" + "testing" + "time" + + "github.com/dnaeon/go-vcr/recorder" + "github.com/linode/linodego" + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" +) + +const ( + aclpLogsCapability = "Akamai Cloud Pulse Logs" +) + +// requireACLPLogsStreamTests skips the test if RUN_ACLP_LOGS_STREAM_TESTS is not set. +// Call this before creating a test client so the env check short-circuits early. +func requireACLPLogsStreamTests(t *testing.T) { + if testingMode == recorder.ModeReplaying { + return + } + t.Helper() + val := os.Getenv("RUN_ACLP_LOGS_STREAM_TESTS") + if val != "yes" && val != "true" { + t.Skipf("RUN_ACLP_LOGS_STREAM_TESTS must be set to 'yes' or 'true' to run stream tests") + } +} + +// requireACLPLogsCapability skips the test if the aclp_logs capability is not enabled. +// Call this after creating a test client. +func requireACLPLogsCapability(t *testing.T, client *linodego.Client) { + if testingMode == recorder.ModeReplaying { + return + } + t.Helper() + account, err := client.GetAccount(context.Background()) + require.NoError(t, err) + for _, cap := range account.Capabilities { + if cap == aclpLogsCapability { + return + } + } + t.Skipf("aclp_logs capability not enabled for this account") +} + +// creates a object storage and access keys for use in tests +func setupObjectStorageForLogs(t *testing.T, client *linodego.Client) (*linodego.ObjectStorageBucket, *linodego.ObjectStorageKey, func()) { + t.Helper() + + bucket, err := client.CreateObjectStorageBucket(context.Background(), linodego.ObjectStorageBucketCreateOptions{ + Region: "us-southeast", + Label: testLabel(), + ACL: "private", + CorsEnabled: linodego.Pointer(false), + }) + if err != nil { + t.Fatalf("Error creating storage bucket, got error %v", err) + } + + storageKey, err := client.CreateObjectStorageKey(context.Background(), linodego.ObjectStorageKeyCreateOptions{ + Label: testLabel(), + }) + if err != nil { + _ = client.DeleteObjectStorageBucket(context.Background(), bucket.Region, bucket.Label) + t.Fatalf("Error creating storage key, got error %v", err) + } + + teardown := func() { + if terr := client.DeleteObjectStorageKey(context.Background(), storageKey.ID); terr != nil { + t.Errorf("Expected to delete a storage key, but got %v", terr) + } + + bucketObjects, terr := client.ListObjectStorageBucketContents(context.Background(), bucket.Region, bucket.Label, nil) + if terr == nil { + for _, obj := range bucketObjects.Data { + url, err := client.CreateObjectStorageObjectURL(context.TODO(), bucket.Cluster, bucket.Label, linodego.ObjectStorageObjectURLCreateOptions{ + Name: obj.Name, + Method: http.MethodDelete, + ExpiresIn: &objectStorageObjectURLExpirySeconds, + }) + + if err != nil { + t.Errorf("failed to get object DELETE url: %s", err) + continue + } + + if testingMode == recorder.ModeReplaying { + continue + } + + req, err := http.NewRequest(http.MethodDelete, url.URL, nil) + if err != nil { + t.Errorf("failed to build request: %s", err) + continue + } + + res, err := http.DefaultClient.Do(req) + if err != nil { + t.Errorf("failed to delete object: %s", err) + continue + } + if res.StatusCode != 204 { + t.Errorf("expected status code to be 204; got %d", res.StatusCode) + } + } + } else { + t.Errorf("Expected to list objects in object storage, but got %v", terr) + } + + if terr := client.DeleteObjectStorageBucket(context.Background(), bucket.Region, bucket.Label); terr != nil { + t.Errorf("Expected to delete object storage bucket, but got %v", terr) + } + } + + return bucket, storageKey, teardown +} + +// creates a LogsDestination for use in tests +func setupLogsDestination(t *testing.T, fixturesYaml string) (*linodego.Client, *linodego.LogsDestination, *linodego.ObjectStorageKey, func()) { + t.Helper() + + client, fixtureTeardown := createTestClient(t, fixturesYaml) + + bucket, storageKey, storageTeardown := setupObjectStorageForLogs(t, client) + + dest, err := client.CreateLogsDestination(context.Background(), linodego.LogsDestinationCreateOptions{ + Label: testLabel(), + Type: linodego.LogsDestinationTypeAkamaiObjectStorage, + Details: linodego.LogsDestinationDetailsCreateOptions{ + AccessKeyID: storageKey.AccessKey, + AccessKeySecret: storageKey.SecretKey, + BucketName: bucket.Label, + Host: bucket.Hostname, + }, + }) + if err != nil { + storageTeardown() + fixtureTeardown() + t.Fatalf("Error creating logs destination, got error %v", err) + } + + teardown := func() { + _, terr := client.GetLogsDestination(context.Background(), dest.ID) + if apiErr, ok := terr.(*linodego.Error); ok && apiErr.Code == 404 { + // Already gone — nothing to do. + } else { + if terr != nil { + t.Errorf("Error while checking destination existence: %v", terr) + } + // Object exists or GET failed for another reason — try to delete anyway. + if terr := client.DeleteLogsDestination(context.Background(), dest.ID); terr != nil { + t.Errorf("Expected to delete a logs destination, but got %v", terr) + } + } + storageTeardown() + fixtureTeardown() + } + + return client, dest, storageKey, teardown +} + +func testLabel() string { + return "go-test-logs-destination-" + getUniqueText() +} + +// setupLogStream creates a test client, Object Storage resources, a LogsDestination, +// and a LogStream. The returned teardown cleans up all resources in reverse order. +func setupLogStream(t *testing.T, fixturesYaml string) (*linodego.Client, *linodego.Stream, *linodego.LogsDestination, func()) { + t.Helper() + + client, dest, _, destTeardown := setupLogsDestination(t, fixturesYaml) + + stream, err := client.CreateLogStream(context.Background(), linodego.StreamCreateOptions{ + Label: fmt.Sprintf("go-test-log-stream-%d", time.Now().UnixNano()), + Type: linodego.StreamTypeAuditLogs, + Destinations: []int{dest.ID}, + }) + if err != nil { + destTeardown() + t.Fatalf("Error creating log stream, got error %v", err) + } + + teardown := func() { + _ = client.DeleteLogStream(context.Background(), stream.ID) + destTeardown() + } + + return client, stream, dest, teardown +} + +// waitForLogStreamProvisioned polls until the stream leaves provisioning state. +// Stream provisioning can take up to 60 minutes; timeoutSeconds should be set accordingly. +func waitForLogStreamProvisioned( + ctx context.Context, + client *linodego.Client, + streamID int, + pollIntervalSeconds int, + timeoutSeconds int, +) (*linodego.Stream, error) { + deadline := time.Now().Add(time.Duration(timeoutSeconds) * time.Second) + for { + stream, err := client.GetLogStream(ctx, streamID) + if err != nil { + return nil, err + } + if stream.Status == linodego.StreamStatusActive || stream.Status == linodego.StreamStatusInactive { + return stream, nil + } + if time.Now().After(deadline) { + return nil, fmt.Errorf("timed out waiting for log stream %d to leave provisioning state", streamID) + } + if testingMode != recorder.ModeReplaying { + time.Sleep(time.Duration(pollIntervalSeconds) * time.Second) + } + } +} + +// ---- Logs Destination tests ---- + +func TestLogsDestination_List(t *testing.T) { + client, dest, _, teardown := setupLogsDestination(t, "fixtures/TestLogsDestination_List") + defer teardown() + + destinations, err := client.ListLogsDestinations(context.Background(), nil) + assert.NoError(t, err) + assert.NotEmpty(t, destinations) + + for _, d := range destinations { + assert.NotZero(t, d.ID) + assert.NotEmpty(t, d.Label) + assert.Equal(t, linodego.LogsDestinationTypeAkamaiObjectStorage, d.Type) + assert.Contains(t, + []linodego.LogsDestinationStatus{ + linodego.LogsDestinationStatusActive, + linodego.LogsDestinationStatusInactive, + }, + d.Status, + ) + assert.NotEmpty(t, d.Details.AccessKeyID) + assert.NotEmpty(t, d.Details.BucketName) + assert.NotEmpty(t, d.Details.Host) + } + + ids := make([]int, len(destinations)) + for i, d := range destinations { + ids[i] = d.ID + } + + assert.Contains(t, ids, dest.ID) +} + +func TestLogsDestination_Delete(t *testing.T) { + client, dest, _, teardown := setupLogsDestination(t, "fixtures/TestLogsDestination_Delete") + defer teardown() + + err := client.DeleteLogsDestination(context.Background(), dest.ID) + assert.NoError(t, err) + + // Verify it's gone + _, err = client.GetLogsDestination(context.Background(), dest.ID) + require.Error(t, err) + + apiErr, ok := err.(*linodego.Error) + require.True(t, ok, "expected linodego.Error") + assert.Equal(t, 404, apiErr.Code) +} + +func TestLogsDestination_Get(t *testing.T) { + client, dest, _, teardown := setupLogsDestination(t, "fixtures/TestLogsDestination_Get") + defer teardown() + + fetched, err := client.GetLogsDestination(context.Background(), dest.ID) + assert.NoError(t, err) + assert.NotNil(t, fetched) + assert.Equal(t, dest.ID, fetched.ID) + assert.Equal(t, dest.Label, fetched.Label) + assert.Equal(t, dest.Type, fetched.Type) +} + +func TestLogsDestination_UpdateAndHistory(t *testing.T) { + client, dest, storageKey, teardown := setupLogsDestination(t, "fixtures/TestLogsDestination_UpdateAndHistory") + defer teardown() + + newLabel := dest.Label + "-upd" + newPath := "updated/logs/path/" + + // should update logs destination + updated, err := client.UpdateLogsDestination(context.Background(), dest.ID, linodego.LogsDestinationUpdateOptions{ + Label: newLabel, + Details: &linodego.LogsDestinationDetailsUpdateOptions{ + AccessKeyID: dest.Details.AccessKeyID, + AccessKeySecret: storageKey.SecretKey, + BucketName: dest.Details.BucketName, + Host: dest.Details.Host, + Path: &newPath, + }, + }) + assert.NoError(t, err) + require.NotNil(t, updated) + assert.Equal(t, newLabel, updated.Label) + assert.Equal(t, newPath, updated.Details.Path) + + // history should contain both versions + history, err := client.ListLogsDestinationHistory(context.Background(), dest.ID, nil) + assert.NoError(t, err) + assert.GreaterOrEqual(t, len(history), 2) + + var v1, v2 *linodego.LogsDestination + for i := range history { + switch history[i].Version { + case 1: + v1 = &history[i] + case 2: + v2 = &history[i] + } + } + + require.NotNil(t, v1, "expected version 1 in history") + require.NotNil(t, v2, "expected version 2 in history") + + assert.Equal(t, dest.Label, v1.Label) + assert.Equal(t, newLabel, v2.Label) +} + +func TestLogsDestination_Create_InvalidSecret(t *testing.T) { + client, teardown := createTestClient(t, "fixtures/TestLogsDestination_Create_InvalidSecret") + defer teardown() + + bucket, _, storageTeardown := setupObjectStorageForLogs(t, client) + defer storageTeardown() + + _, err := client.CreateLogsDestination(context.Background(), linodego.LogsDestinationCreateOptions{ + Label: testLabel(), + Type: linodego.LogsDestinationTypeAkamaiObjectStorage, + Details: linodego.LogsDestinationDetailsCreateOptions{ + AccessKeyID: "1", + AccessKeySecret: "1", + BucketName: bucket.Label, + Host: bucket.Hostname, + }, + }) + require.Error(t, err) + + apiErr, ok := err.(*linodego.Error) + require.True(t, ok, "expected linodego.Error") + assert.Equal(t, 400, apiErr.Code) + assert.Contains(t, apiErr.Message, "Invalid access key id or secret key") +} + +func TestLogsDestination_Create_InvalidType(t *testing.T) { + client, teardown := createTestClient(t, "fixtures/TestLogsDestination_Create_InvalidType") + defer teardown() + + bucket, storageKey, storageTeardown := setupObjectStorageForLogs(t, client) + defer storageTeardown() + + _, err := client.CreateLogsDestination(context.Background(), linodego.LogsDestinationCreateOptions{ + Label: testLabel(), + Type: "invalid_type", + Details: linodego.LogsDestinationDetailsCreateOptions{ + AccessKeyID: storageKey.AccessKey, + AccessKeySecret: storageKey.SecretKey, + BucketName: bucket.Label, + Host: bucket.Hostname, + }, + }) + require.Error(t, err) + + apiErr, ok := err.(*linodego.Error) + require.True(t, ok, "expected linodego.Error") + assert.Equal(t, 400, apiErr.Code) + assert.Contains(t, apiErr.Message, "[type] Must be one of akamai_object_storage, custom_https") +} + +// ---- Log Stream tests ---- + +// requireNoExistingStreams skips the test if a stream already exists on the account, +// since only one stream is allowed per account. +func requireNoExistingStreams(t *testing.T, client *linodego.Client) { + t.Helper() + existing, err := client.ListLogStreams(context.Background(), nil) + require.NoError(t, err) + if len(existing) > 0 { + ids := make([]int, len(existing)) + for i, s := range existing { + ids[i] = s.ID + } + t.Skipf("existing stream(s) on account (IDs: %v); only one stream allowed per account", ids) + } +} + +func TestLogStream_Create_InvalidDestination(t *testing.T) { + requireACLPLogsStreamTests(t) + + client, teardown := createTestClient(t, "fixtures/TestLogStream_Create_InvalidDestination") + defer teardown() + requireACLPLogsCapability(t, client) + requireNoExistingStreams(t, client) + + _, err := client.CreateLogStream(context.Background(), linodego.StreamCreateOptions{ + Label: fmt.Sprintf("go-test-invalid-dest-%d", time.Now().UnixNano()), + Type: linodego.StreamTypeAuditLogs, + Destinations: []int{999999999}, + }) + require.Error(t, err) + + apiErr, ok := err.(*linodego.Error) + require.True(t, ok, "expected *linodego.Error") + assert.Equal(t, 400, apiErr.Code) +} + +func TestLogStream_Create_EmptyDestinations(t *testing.T) { + requireACLPLogsStreamTests(t) + + client, teardown := createTestClient(t, "fixtures/TestLogStream_Create_EmptyDestinations") + defer teardown() + requireACLPLogsCapability(t, client) + requireNoExistingStreams(t, client) + + _, err := client.CreateLogStream(context.Background(), linodego.StreamCreateOptions{ + Label: fmt.Sprintf("go-test-empty-dest-%d", time.Now().UnixNano()), + Type: linodego.StreamTypeAuditLogs, + Destinations: []int{}, + }) + require.Error(t, err) + + apiErr, ok := err.(*linodego.Error) + require.True(t, ok, "expected *linodego.Error") + assert.Equal(t, 400, apiErr.Code) +} + +func TestLogStream_Create_TwoDestinations(t *testing.T) { + requireACLPLogsStreamTests(t) + + client, teardown := createTestClient(t, "fixtures/TestLogStream_Create_TwoDestinations") + defer teardown() + requireACLPLogsCapability(t, client) + requireNoExistingStreams(t, client) + + bucket1, storageKey1, storageTeardown1 := setupObjectStorageForLogs(t, client) + defer storageTeardown1() + bucket2, storageKey2, storageTeardown2 := setupObjectStorageForLogs(t, client) + defer storageTeardown2() + + dest1, err := client.CreateLogsDestination(context.Background(), linodego.LogsDestinationCreateOptions{ + Label: testLabel(), + Type: linodego.LogsDestinationTypeAkamaiObjectStorage, + Details: linodego.LogsDestinationDetailsCreateOptions{ + AccessKeyID: storageKey1.AccessKey, + AccessKeySecret: storageKey1.SecretKey, + BucketName: bucket1.Label, + Host: bucket1.Hostname, + }, + }) + require.NoError(t, err) + defer func() { _ = client.DeleteLogsDestination(context.Background(), dest1.ID) }() + + dest2, err := client.CreateLogsDestination(context.Background(), linodego.LogsDestinationCreateOptions{ + Label: testLabel(), + Type: linodego.LogsDestinationTypeAkamaiObjectStorage, + Details: linodego.LogsDestinationDetailsCreateOptions{ + AccessKeyID: storageKey2.AccessKey, + AccessKeySecret: storageKey2.SecretKey, + BucketName: bucket2.Label, + Host: bucket2.Hostname, + }, + }) + require.NoError(t, err) + defer func() { _ = client.DeleteLogsDestination(context.Background(), dest2.ID) }() + + _, err = client.CreateLogStream(context.Background(), linodego.StreamCreateOptions{ + Label: fmt.Sprintf("go-test-two-dest-%d", time.Now().UnixNano()), + Type: linodego.StreamTypeAuditLogs, + Destinations: []int{dest1.ID, dest2.ID}, + }) + require.Error(t, err) + + apiErr, ok := err.(*linodego.Error) + require.True(t, ok, "expected *linodego.Error") + assert.Equal(t, 400, apiErr.Code) +} + +func TestLogStream_Delete(t *testing.T) { + requireACLPLogsStreamTests(t) + + client, stream, _, teardown := setupLogStream(t, "fixtures/TestLogStream_Delete") + defer teardown() + requireACLPLogsCapability(t, client) + + provisioned, err := waitForLogStreamProvisioned(context.Background(), client, stream.ID, 60, 3600) + require.NoError(t, err) + + err = client.DeleteLogStream(context.Background(), provisioned.ID) + require.NoError(t, err) + + _, err = client.GetLogStream(context.Background(), provisioned.ID) + assert.Error(t, err, "expected error fetching deleted stream") +} + +func TestLogStream_List(t *testing.T) { + requireACLPLogsStreamTests(t) + + client, stream, _, teardown := setupLogStream(t, "fixtures/TestLogStream_List") + defer teardown() + requireACLPLogsCapability(t, client) + + provisioned, err := waitForLogStreamProvisioned(context.Background(), client, stream.ID, 60, 3600) + require.NoError(t, err) + + streams, err := client.ListLogStreams(context.Background(), nil) + require.NoError(t, err) + assert.NotEmpty(t, streams) + + found := false + for _, s := range streams { + if s.ID == provisioned.ID { + found = true + break + } + } + assert.True(t, found, "created stream not found in list") +} + +func TestLogStream_Get(t *testing.T) { + requireACLPLogsStreamTests(t) + + client, stream, _, teardown := setupLogStream(t, "fixtures/TestLogStream_Get") + defer teardown() + requireACLPLogsCapability(t, client) + + provisioned, err := waitForLogStreamProvisioned(context.Background(), client, stream.ID, 60, 3600) + require.NoError(t, err) + + fetched, err := client.GetLogStream(context.Background(), provisioned.ID) + require.NoError(t, err) + assert.Equal(t, provisioned.ID, fetched.ID) + assert.Equal(t, provisioned.Label, fetched.Label) + assert.Equal(t, provisioned.Status, fetched.Status) + assert.Len(t, fetched.Destinations, 1) +} + +func TestLogStream_Update_LabelAndStatus(t *testing.T) { + requireACLPLogsStreamTests(t) + + client, stream, _, teardown := setupLogStream(t, "fixtures/TestLogStream_Update_LabelAndStatus") + defer teardown() + requireACLPLogsCapability(t, client) + + provisioned, err := waitForLogStreamProvisioned(context.Background(), client, stream.ID, 60, 3600) + require.NoError(t, err) + + originalLabel := provisioned.Label + originalStatus := provisioned.Status + versionBefore := provisioned.Version + + newLabel := originalLabel + "-upd" + newStatus := linodego.StreamStatusInactive + if originalStatus == linodego.StreamStatusInactive { + newStatus = linodego.StreamStatusActive + } + + updated, err := client.UpdateLogStream(context.Background(), provisioned.ID, linodego.StreamUpdateOptions{ + Label: &newLabel, + Status: &newStatus, + }) + require.NoError(t, err) + assert.Equal(t, newLabel, updated.Label) + assert.Equal(t, newStatus, updated.Status) + + defer func() { + _, _ = client.UpdateLogStream(context.Background(), provisioned.ID, linodego.StreamUpdateOptions{ + Label: &originalLabel, + Status: &originalStatus, + }) + }() + + history, err := client.ListLogStreamHistory(context.Background(), provisioned.ID, nil) + require.NoError(t, err) + + var snapOriginal, snapUpdated *linodego.Stream + for i := range history { + switch history[i].Version { + case versionBefore: + snapOriginal = &history[i] + case updated.Version: + snapUpdated = &history[i] + } + } + require.NotNil(t, snapOriginal, "original version not found in history") + require.NotNil(t, snapUpdated, "updated version not found in history") + assert.Equal(t, originalLabel, snapOriginal.Label) + assert.Equal(t, newLabel, snapUpdated.Label) + assert.Equal(t, provisioned.ID, snapUpdated.ID) +} + +func TestLogStream_Update_Destinations(t *testing.T) { + requireACLPLogsStreamTests(t) + + client, stream, dest, teardown := setupLogStream(t, "fixtures/TestLogStream_Update_Destinations") + defer teardown() + requireACLPLogsCapability(t, client) + + objBucket2, objKey2, objTeardown2 := setupObjectStorageForLogs(t, client) + defer objTeardown2() + secondaryDest, err := client.CreateLogsDestination(context.Background(), linodego.LogsDestinationCreateOptions{ + Label: testLabel(), + Type: linodego.LogsDestinationTypeAkamaiObjectStorage, + Details: linodego.LogsDestinationDetailsCreateOptions{ + AccessKeyID: objKey2.AccessKey, + AccessKeySecret: objKey2.SecretKey, + BucketName: objBucket2.Label, + Host: objBucket2.Hostname, + }, + }) + require.NoError(t, err) + defer func() { + _ = client.DeleteLogsDestination(context.Background(), secondaryDest.ID) + }() + + provisioned, err := waitForLogStreamProvisioned(context.Background(), client, stream.ID, 60, 3600) + require.NoError(t, err) + + versionBefore := provisioned.Version + + updated, err := client.UpdateLogStream(context.Background(), provisioned.ID, linodego.StreamUpdateOptions{ + Destinations: []int{secondaryDest.ID}, + }) + require.NoError(t, err) + require.Len(t, updated.Destinations, 1) + assert.Equal(t, secondaryDest.ID, updated.Destinations[0].ID) + + defer func() { + _, _ = client.UpdateLogStream(context.Background(), provisioned.ID, linodego.StreamUpdateOptions{ + Destinations: []int{dest.ID}, + }) + }() + + history, err := client.ListLogStreamHistory(context.Background(), provisioned.ID, nil) + require.NoError(t, err) + + var snapOriginal, snapUpdated *linodego.Stream + for i := range history { + switch history[i].Version { + case versionBefore: + snapOriginal = &history[i] + case updated.Version: + snapUpdated = &history[i] + } + } + require.NotNil(t, snapOriginal, "original version not found in history") + require.NotNil(t, snapUpdated, "updated version not found in history") + assert.Equal(t, dest.ID, snapOriginal.Destinations[0].ID) + assert.Equal(t, secondaryDest.ID, snapUpdated.Destinations[0].ID) +} diff --git a/test/unit/fixtures/monitor_log_destinations_custom_https_get.json b/test/unit/fixtures/monitor_log_destinations_custom_https_get.json new file mode 100644 index 000000000..8709f6260 --- /dev/null +++ b/test/unit/fixtures/monitor_log_destinations_custom_https_get.json @@ -0,0 +1,31 @@ +{ + "created": "2025-07-20T09:45:13", + "created_by": "user", + "details": { + "endpoint_url": "https://my-site.com/log-storage/database-info", + "authentication": { + "type": "basic", + "details": { + "basic_authentication_user": "John_Q", + "basic_authentication_password": "p@$$w0Rd" + } + }, + "client_certificate_details": null, + "content_type": "application/json", + "custom_headers": [ + { + "name": "Cache-Control", + "value": "max-age=0" + } + ], + "data_compression": "gzip" + }, + "id": 67890, + "label": "HTTPS_logs_destination", + "status": "active", + "type": "custom_https", + "updated": "2025-07-21T12:41:09", + "updated_by": "user", + "version": 1 +} + diff --git a/test/unit/fixtures/monitor_log_destinations_get.json b/test/unit/fixtures/monitor_log_destinations_get.json new file mode 100644 index 000000000..ef19580f2 --- /dev/null +++ b/test/unit/fixtures/monitor_log_destinations_get.json @@ -0,0 +1,17 @@ +{ + "created": "2025-07-20T09:45:13", + "created_by": "user", + "details": { + "access_key_id": "1ABCD23EFG4HIJKLMNO5", + "bucket_name": "primary-bucket", + "host": "primary-bucket-1.us-iad-12.linodeobjects.com", + "path": "audit-logs" + }, + "id": 12345, + "label": "OBJ_logs_destination", + "status": "active", + "type": "akamai_object_storage", + "updated": "2025-07-21T12:41:09", + "updated_by": "user", + "version": 1 +} \ No newline at end of file diff --git a/test/unit/fixtures/monitor_log_destinations_history_list.json b/test/unit/fixtures/monitor_log_destinations_history_list.json new file mode 100644 index 000000000..c39f79f23 --- /dev/null +++ b/test/unit/fixtures/monitor_log_destinations_history_list.json @@ -0,0 +1,25 @@ +{ + "data":[ + { + "created": "2025-07-20T09:45:13", + "created_by": "user", + "details": { + "access_key_id": "123", + "bucket_name": "primary-bucket", + "host": "primary-bucket-1.us-iad-12.linodeobjects.com", + "path": "audit-logs" + }, + "id": 12345, + "label": "OBJ_logs_destination", + "status": "active", + "type": "akamai_object_storage", + "updated": "2025-07-21T12:41:09", + "updated_by": "user", + "version": 1 + } + ], + "page":1, + "pages":1, + "results":1 +} + diff --git a/test/unit/fixtures/monitor_log_destinations_list.json b/test/unit/fixtures/monitor_log_destinations_list.json new file mode 100644 index 000000000..3b08695a3 --- /dev/null +++ b/test/unit/fixtures/monitor_log_destinations_list.json @@ -0,0 +1,53 @@ +{ + "data":[ + { + "created": "2025-07-20T09:45:13", + "created_by": "user", + "details": { + "access_key_id": "123", + "bucket_name": "primary-bucket", + "host": "primary-bucket-1.us-iad-12.linodeobjects.com", + "path": "audit-logs" + }, + "id": 12345, + "label": "OBJ_logs_destination", + "status": "active", + "type": "akamai_object_storage", + "updated": "2025-07-21T12:41:09", + "updated_by": "user", + "version": 1 + }, + { + "created": "2025-08-01T10:00:00", + "created_by": "user", + "details": { + "endpoint_url": "https://my-site.com/log-storage/database-info", + "authentication": { + "type": "basic", + "details": { + "basic_authentication_user": "John_Q", + "basic_authentication_password": "p@$$w0Rd" + } + }, + "content_type": "application/json", + "custom_headers": [ + { + "name": "Cache-Control", + "value": "max-age=0" + } + ], + "data_compression": "gzip" + }, + "id": 67890, + "label": "HTTPS_logs_destination", + "status": "active", + "type": "custom_https", + "updated": "2025-08-02T11:00:00", + "updated_by": "user", + "version": 1 + } + ], + "page":1, + "pages":1, + "results":2 +} \ No newline at end of file diff --git a/test/unit/fixtures/monitor_log_stream.json b/test/unit/fixtures/monitor_log_stream.json new file mode 100644 index 000000000..6e024ccf4 --- /dev/null +++ b/test/unit/fixtures/monitor_log_stream.json @@ -0,0 +1,24 @@ +{ + "created": "2025-03-20T01:41:09", + "created_by": "John Q. Linode", + "destinations": [ + { + "details": { + "access_key_id": 123, + "bucket_name": "primary-bucket", + "host": "primary-bucket-1.us-iad-12.linodeobjects.com", + "path": "audit-logs" + }, + "id": 12345, + "label": "OBJ_logs_destination", + "type": "akamai_object_storage" + } + ], + "id": 456, + "label": "AuditLog-config", + "status": "active", + "type": "audit_logs", + "updated": "2025-03-20T01:41:09", + "updated_by": "Jane Q. Linode", + "version": 1 +} diff --git a/test/unit/fixtures/monitor_log_streams_history.json b/test/unit/fixtures/monitor_log_streams_history.json new file mode 100644 index 000000000..935da599f --- /dev/null +++ b/test/unit/fixtures/monitor_log_streams_history.json @@ -0,0 +1,55 @@ +{ + "data": [ + { + "created": "2025-03-20T01:41:09", + "created_by": "John Q. Linode", + "destinations": [ + { + "details": { + "access_key_id": 123, + "bucket_name": "primary-bucket", + "host": "primary-bucket-1.us-iad-12.linodeobjects.com", + "path": "audit-logs" + }, + "id": 12345, + "label": "OBJ_logs_destination", + "type": "akamai_object_storage" + } + ], + "id": 456, + "label": "AuditLog-config", + "status": "active", + "type": "audit_logs", + "updated": "2025-03-20T01:41:09", + "updated_by": "Jane Q. Linode", + "version": 1 + }, + { + "created": "2025-03-20T01:41:09", + "created_by": "John Q. Linode", + "destinations": [ + { + "details": { + "access_key_id": 123, + "bucket_name": "primary-bucket", + "host": "primary-bucket-1.us-iad-12.linodeobjects.com", + "path": "audit-logs-v2" + }, + "id": 12345, + "label": "OBJ_logs_destination", + "type": "akamai_object_storage" + } + ], + "id": 456, + "label": "AuditLog-config-updated", + "status": "inactive", + "type": "audit_logs", + "updated": "2025-03-21T01:41:09", + "updated_by": "Jane Q. Linode", + "version": 2 + } + ], + "page": 1, + "pages": 1, + "results": 2 +} diff --git a/test/unit/fixtures/monitor_log_streams_list.json b/test/unit/fixtures/monitor_log_streams_list.json new file mode 100644 index 000000000..a1a96071a --- /dev/null +++ b/test/unit/fixtures/monitor_log_streams_list.json @@ -0,0 +1,31 @@ +{ + "data": [ + { + "created": "2025-03-20T01:41:09", + "created_by": "John Q. Linode", + "destinations": [ + { + "details": { + "access_key_id": 123, + "bucket_name": "primary-bucket", + "host": "primary-bucket-1.us-iad-12.linodeobjects.com", + "path": "audit-logs" + }, + "id": 12345, + "label": "OBJ_logs_destination", + "type": "akamai_object_storage" + } + ], + "id": 456, + "label": "AuditLog-config", + "status": "active", + "type": "audit_logs", + "updated": "2025-03-20T01:41:09", + "updated_by": "Jane Q. Linode", + "version": 1 + } + ], + "page": 1, + "pages": 1, + "results": 1 +} diff --git a/test/unit/monitor_logs_test.go b/test/unit/monitor_logs_test.go new file mode 100644 index 000000000..48dc9c90c --- /dev/null +++ b/test/unit/monitor_logs_test.go @@ -0,0 +1,482 @@ +package unit + +import ( + "context" + "testing" + + "github.com/linode/linodego" + "github.com/stretchr/testify/assert" +) + +const ( + testLogsDestinationID = 12345 + testLogStreamID = 456 +) + +// ---- Logs Destination tests ---- + +func TestCreateLogsDestination(t *testing.T) { + fixtureData, err := fixtures.GetFixture("monitor_log_destinations_get") + assert.NoError(t, err) + + var base ClientBaseCase + base.SetUp(t) + defer base.TearDown(t) + + base.MockPost("monitor/streams/destinations", fixtureData) + + path := "audit-logs" + opts := linodego.LogsDestinationCreateOptions{ + Label: "my-logs-destination", + Type: linodego.LogsDestinationTypeAkamaiObjectStorage, + Details: linodego.LogsDestinationDetailsCreateOptions{ + AccessKeyID: "1ABCD23EFG4HIJKLMNO5", + AccessKeySecret: "1aB2CD3e4fgHi5JK6lmnop7qR8STU9VxYzabcdefHh", + BucketName: "primary-bucket", + Host: "primary-bucket-1.us-iad-12.linodeobjects.com", + Path: &path, + }, + } + + dest, err := base.Client.CreateLogsDestination(context.Background(), opts) + assert.NoError(t, err) + assert.NotNil(t, dest) + assert.Equal(t, testLogsDestinationID, dest.ID) + assert.Equal(t, "OBJ_logs_destination", dest.Label) + assert.Equal(t, linodego.LogsDestinationStatusActive, dest.Status) + assert.Equal(t, linodego.LogsDestinationTypeAkamaiObjectStorage, dest.Type) + assert.Equal(t, "1ABCD23EFG4HIJKLMNO5", string(dest.Details.AccessKeyID)) + assert.Equal(t, "primary-bucket", dest.Details.BucketName) + assert.Equal(t, "primary-bucket-1.us-iad-12.linodeobjects.com", dest.Details.Host) + assert.Equal(t, "audit-logs", dest.Details.Path) + assert.NotNil(t, dest.Created) + assert.NotNil(t, dest.Updated) +} + +func TestCreateLogsDestination_NoPath(t *testing.T) { + fixtureData, err := fixtures.GetFixture("monitor_log_destinations_get") + assert.NoError(t, err) + + var base ClientBaseCase + base.SetUp(t) + defer base.TearDown(t) + + base.MockPost("monitor/streams/destinations", fixtureData) + + opts := linodego.LogsDestinationCreateOptions{ + Label: "my-logs-destination", + Type: linodego.LogsDestinationTypeAkamaiObjectStorage, + Details: linodego.LogsDestinationDetailsCreateOptions{ + AccessKeyID: "1ABCD23EFG4HIJKLMNO5", + AccessKeySecret: "1aB2CD3e4fgHi5JK6lmnop7qR8STU9VxYzabcdefHh", + BucketName: "primary-bucket", + Host: "primary-bucket-1.us-iad-12.linodeobjects.com", + // Path intentionally omitted + }, + } + + dest, err := base.Client.CreateLogsDestination(context.Background(), opts) + assert.NoError(t, err) + assert.NotNil(t, dest) + assert.Equal(t, testLogsDestinationID, dest.ID) +} + +func TestGetLogsDestination(t *testing.T) { + fixtureData, err := fixtures.GetFixture("monitor_log_destinations_get") + assert.NoError(t, err) + + var base ClientBaseCase + base.SetUp(t) + defer base.TearDown(t) + + base.MockGet("monitor/streams/destinations/12345", fixtureData) + + dest, err := base.Client.GetLogsDestination(context.Background(), testLogsDestinationID) + assert.NoError(t, err) + assert.NotNil(t, dest) + assert.Equal(t, testLogsDestinationID, dest.ID) + assert.Equal(t, "OBJ_logs_destination", dest.Label) + assert.Equal(t, linodego.LogsDestinationStatusActive, dest.Status) + assert.Equal(t, linodego.LogsDestinationTypeAkamaiObjectStorage, dest.Type) + assert.Equal(t, "user", dest.CreatedBy) + assert.Equal(t, "user", dest.UpdatedBy) + assert.Equal(t, 1, dest.Version) + assert.Equal(t, "1ABCD23EFG4HIJKLMNO5", string(dest.Details.AccessKeyID)) + assert.Equal(t, "primary-bucket", dest.Details.BucketName) + assert.Equal(t, "primary-bucket-1.us-iad-12.linodeobjects.com", dest.Details.Host) + assert.Equal(t, "audit-logs", dest.Details.Path) + assert.NotNil(t, dest.Created) + assert.NotNil(t, dest.Updated) +} + +func TestListLogsDestinations(t *testing.T) { + fixtureData, err := fixtures.GetFixture("monitor_log_destinations_list") + assert.NoError(t, err) + + var base ClientBaseCase + base.SetUp(t) + defer base.TearDown(t) + + base.MockGet("monitor/streams/destinations", fixtureData) + + dests, err := base.Client.ListLogsDestinations(context.Background(), nil) + assert.NoError(t, err) + assert.Len(t, dests, 2) + + // First destination: akamai_object_storage + assert.Equal(t, testLogsDestinationID, dests[0].ID) + assert.Equal(t, "OBJ_logs_destination", dests[0].Label) + assert.Equal(t, linodego.LogsDestinationStatusActive, dests[0].Status) + assert.Equal(t, linodego.LogsDestinationTypeAkamaiObjectStorage, dests[0].Type) + assert.Equal(t, "123", dests[0].Details.AccessKeyID) + assert.Equal(t, "primary-bucket", dests[0].Details.BucketName) + assert.Equal(t, "primary-bucket-1.us-iad-12.linodeobjects.com", dests[0].Details.Host) + assert.Equal(t, "audit-logs", dests[0].Details.Path) + + // Second destination: custom_https + assert.Equal(t, 67890, dests[1].ID) + assert.Equal(t, "HTTPS_logs_destination", dests[1].Label) + assert.Equal(t, linodego.LogsDestinationStatusActive, dests[1].Status) + assert.Equal(t, linodego.LogsDestinationTypeCustomHTTPS, dests[1].Type) + assert.Equal(t, "https://my-site.com/log-storage/database-info", dests[1].Details.EndpointURL) + assert.NotNil(t, dests[1].Details.Authentication) + assert.Equal(t, linodego.LogsDestinationCustomHTTPSAuthTypeBasic, dests[1].Details.Authentication.Type) + assert.NotNil(t, dests[1].Details.Authentication.Details) + assert.Equal(t, "John_Q", dests[1].Details.Authentication.Details.Username) + assert.Equal(t, "application/json", dests[1].Details.ContentType) + assert.Len(t, dests[1].Details.CustomHeaders, 1) + assert.Equal(t, "Cache-Control", dests[1].Details.CustomHeaders[0].Name) + assert.Equal(t, "max-age=0", dests[1].Details.CustomHeaders[0].Value) + assert.Equal(t, "gzip", dests[1].Details.DataCompression) +} + +func TestUpdateLogsDestination(t *testing.T) { + fixtureData, err := fixtures.GetFixture("monitor_log_destinations_get") + assert.NoError(t, err) + + var base ClientBaseCase + base.SetUp(t) + defer base.TearDown(t) + + base.MockPut("monitor/streams/destinations/12345", fixtureData) + + opts := linodego.LogsDestinationUpdateOptions{ + Label: "my-logs-destination-renamed", + } + + dest, err := base.Client.UpdateLogsDestination(context.Background(), testLogsDestinationID, opts) + assert.NoError(t, err) + assert.NotNil(t, dest) +} + +func TestDeleteLogsDestination(t *testing.T) { + var base ClientBaseCase + base.SetUp(t) + defer base.TearDown(t) + + base.MockDelete("monitor/streams/destinations/12345", nil) + + err := base.Client.DeleteLogsDestination(context.Background(), testLogsDestinationID) + assert.NoError(t, err) +} + +func TestCreateLogsDestination_CustomHTTPS(t *testing.T) { + fixtureData, err := fixtures.GetFixture("monitor_log_destinations_custom_https_get") + assert.NoError(t, err) + + var base ClientBaseCase + base.SetUp(t) + defer base.TearDown(t) + + base.MockPost("monitor/streams/destinations", fixtureData) + + opts := linodego.LogsDestinationCreateOptions{ + Label: "HTTPS_logs_destination", + Type: linodego.LogsDestinationTypeCustomHTTPS, + Details: linodego.LogsDestinationCustomHTTPSDetailsCreateOptions{ + EndpointURL: "https://my-site.com/log-storage/database-info", + Authentication: &linodego.LogsDestinationCustomHTTPSAuthDetails{ + Type: linodego.LogsDestinationCustomHTTPSAuthTypeBasic, + Details: &linodego.LogsDestinationCustomHTTPSBasicAuthDetails{ + Username: "John_Q", + Password: "p@$$w0Rd", + }, + }, + ContentType: "application/json", + DataCompression: "gzip", + CustomHeaders: []linodego.LogsDestinationCustomHTTPSHeader{ + {Name: "Cache-Control", Value: "max-age=0"}, + }, + }, + } + + dest, err := base.Client.CreateLogsDestination(context.Background(), opts) + assert.NoError(t, err) + assert.NotNil(t, dest) + assert.Equal(t, 67890, dest.ID) + assert.Equal(t, "HTTPS_logs_destination", dest.Label) + assert.Equal(t, linodego.LogsDestinationStatusActive, dest.Status) + assert.Equal(t, linodego.LogsDestinationTypeCustomHTTPS, dest.Type) + assert.Equal(t, "https://my-site.com/log-storage/database-info", dest.Details.EndpointURL) + assert.NotNil(t, dest.Details.Authentication) + assert.Equal(t, linodego.LogsDestinationCustomHTTPSAuthTypeBasic, dest.Details.Authentication.Type) + assert.Equal(t, "application/json", dest.Details.ContentType) + assert.Equal(t, "gzip", dest.Details.DataCompression) + assert.Len(t, dest.Details.CustomHeaders, 1) + assert.Equal(t, "Cache-Control", dest.Details.CustomHeaders[0].Name) + assert.NotNil(t, dest.Created) + assert.NotNil(t, dest.Updated) +} + +func TestUpdateLogsDestination_CustomHTTPS(t *testing.T) { + fixtureData, err := fixtures.GetFixture("monitor_log_destinations_custom_https_get") + assert.NoError(t, err) + + var base ClientBaseCase + base.SetUp(t) + defer base.TearDown(t) + + base.MockPut("monitor/streams/destinations/67890", fixtureData) + + newURL := "https://my-site.com/log-storage/v2" + opts := linodego.LogsDestinationUpdateOptions{ + Label: "HTTPS_logs_destination_renamed", + Details: &linodego.LogsDestinationCustomHTTPSDetailsUpdateOptions{ + EndpointURL: newURL, + Authentication: &linodego.LogsDestinationCustomHTTPSAuthDetails{ + Type: linodego.LogsDestinationCustomHTTPSAuthTypeBasic, + Details: &linodego.LogsDestinationCustomHTTPSBasicAuthDetails{ + Username: "John_Q", + Password: "newpassword", + }, + }, + }, + } + + dest, err := base.Client.UpdateLogsDestination(context.Background(), 67890, opts) + assert.NoError(t, err) + assert.NotNil(t, dest) + assert.Equal(t, 67890, dest.ID) + assert.Equal(t, linodego.LogsDestinationTypeCustomHTTPS, dest.Type) +} + +func TestListLogsDestinationHistory(t *testing.T) { + fixtureData, err := fixtures.GetFixture("monitor_log_destinations_history_list") + assert.NoError(t, err) + + var base ClientBaseCase + base.SetUp(t) + defer base.TearDown(t) + + base.MockGet("monitor/streams/destinations/12345/history", fixtureData) + + history, err := base.Client.ListLogsDestinationHistory(context.Background(), testLogsDestinationID, nil) + assert.NoError(t, err) + assert.Len(t, history, 1) + assert.Equal(t, testLogsDestinationID, history[0].ID) + assert.Equal(t, "OBJ_logs_destination", history[0].Label) + assert.Equal(t, linodego.LogsDestinationStatusActive, history[0].Status) + assert.Equal(t, linodego.LogsDestinationTypeAkamaiObjectStorage, history[0].Type) + assert.Equal(t, 1, history[0].Version) + assert.Equal(t, "123", history[0].Details.AccessKeyID) + assert.Equal(t, "primary-bucket", history[0].Details.BucketName) + assert.NotNil(t, history[0].Created) + assert.NotNil(t, history[0].Updated) +} + +// ---- Log Stream tests ---- + +func TestCreateLogStream(t *testing.T) { + fixtureData, err := fixtures.GetFixture("monitor_log_stream") + assert.NoError(t, err) + + var base ClientBaseCase + base.SetUp(t) + defer base.TearDown(t) + + base.MockPost("monitor/streams", fixtureData) + + status := linodego.StreamStatusActive + createOpts := linodego.StreamCreateOptions{ + Destinations: []int{testLogsDestinationID}, + Label: "AuditLog-config", + Type: linodego.StreamTypeAuditLogs, + Status: &status, + } + + stream, err := base.Client.CreateLogStream(context.Background(), createOpts) + assert.NoError(t, err) + assert.NotNil(t, stream) + assert.Equal(t, testLogStreamID, stream.ID) + assert.Equal(t, "AuditLog-config", stream.Label) + assert.Equal(t, linodego.StreamStatusActive, stream.Status) + assert.Equal(t, linodego.StreamTypeAuditLogs, stream.Type) + assert.NotNil(t, stream.Created) + assert.NotNil(t, stream.Updated) + assert.Len(t, stream.Destinations, 1) + assert.Equal(t, testLogsDestinationID, stream.Destinations[0].ID) + assert.Equal(t, linodego.StreamDestinationTypeAkamaiObjectStorage, stream.Destinations[0].Type) +} + +func TestListLogStreams(t *testing.T) { + fixtureData, err := fixtures.GetFixture("monitor_log_streams_list") + assert.NoError(t, err) + + var base ClientBaseCase + base.SetUp(t) + defer base.TearDown(t) + + base.MockGet("monitor/streams", fixtureData) + + streams, err := base.Client.ListLogStreams(context.Background(), &linodego.ListOptions{}) + assert.NoError(t, err) + assert.Len(t, streams, 1) + assert.Equal(t, testLogStreamID, streams[0].ID) + assert.Equal(t, "AuditLog-config", streams[0].Label) + assert.Equal(t, linodego.StreamStatusActive, streams[0].Status) + assert.Equal(t, 1, streams[0].Version) +} + +func TestGetLogStream(t *testing.T) { + fixtureData, err := fixtures.GetFixture("monitor_log_stream") + assert.NoError(t, err) + + var base ClientBaseCase + base.SetUp(t) + defer base.TearDown(t) + + base.MockGet("monitor/streams/456", fixtureData) + + stream, err := base.Client.GetLogStream(context.Background(), testLogStreamID) + assert.NoError(t, err) + assert.NotNil(t, stream) + assert.Equal(t, testLogStreamID, stream.ID) + assert.Equal(t, "AuditLog-config", stream.Label) + assert.Equal(t, linodego.StreamStatusActive, stream.Status) + assert.NotNil(t, stream.Created) + assert.NotNil(t, stream.Updated) +} + +func TestUpdateLogStream(t *testing.T) { + fixtureData, err := fixtures.GetFixture("monitor_log_stream") + assert.NoError(t, err) + + var base ClientBaseCase + base.SetUp(t) + defer base.TearDown(t) + + base.MockPut("monitor/streams/456", fixtureData) + + label := "AuditLog-config" + streamType := linodego.StreamTypeAuditLogs + status := linodego.StreamStatusActive + updateOpts := linodego.StreamUpdateOptions{ + Destinations: []int{testLogsDestinationID}, + Label: &label, + Type: &streamType, + Status: &status, + } + + stream, err := base.Client.UpdateLogStream(context.Background(), testLogStreamID, updateOpts) + assert.NoError(t, err) + assert.NotNil(t, stream) + assert.Equal(t, testLogStreamID, stream.ID) + assert.Equal(t, "AuditLog-config", stream.Label) + assert.Equal(t, linodego.StreamStatusActive, stream.Status) + assert.Equal(t, 1, stream.Version) +} + +func TestListLogStreamHistory(t *testing.T) { + fixtureData, err := fixtures.GetFixture("monitor_log_streams_history") + assert.NoError(t, err) + + var base ClientBaseCase + base.SetUp(t) + defer base.TearDown(t) + + base.MockGet("monitor/streams/456/history", fixtureData) + + streams, err := base.Client.ListLogStreamHistory(context.Background(), testLogStreamID, nil) + assert.NoError(t, err) + assert.Len(t, streams, 2) + assert.Equal(t, "AuditLog-config", streams[0].Label) + assert.Equal(t, 1, streams[0].Version) + assert.Equal(t, "AuditLog-config-updated", streams[1].Label) + assert.Equal(t, 2, streams[1].Version) + assert.Equal(t, linodego.StreamStatusInactive, streams[1].Status) +} + +func TestGetLogStream_DestinationDetails(t *testing.T) { + fixtureData, err := fixtures.GetFixture("monitor_log_stream") + assert.NoError(t, err) + + var base ClientBaseCase + base.SetUp(t) + defer base.TearDown(t) + + base.MockGet("monitor/streams/456", fixtureData) + + stream, err := base.Client.GetLogStream(context.Background(), testLogStreamID) + assert.NoError(t, err) + assert.Len(t, stream.Destinations, 1) + + dest := stream.Destinations[0] + assert.Equal(t, testLogsDestinationID, dest.ID) + assert.Equal(t, "OBJ_logs_destination", dest.Label) + assert.Equal(t, linodego.StreamDestinationTypeAkamaiObjectStorage, dest.Type) + assert.Equal(t, 123, dest.Details.AccessKeyID) + assert.Equal(t, "primary-bucket", dest.Details.BucketName) + assert.Equal(t, "primary-bucket-1.us-iad-12.linodeobjects.com", dest.Details.Host) + assert.Equal(t, "audit-logs", dest.Details.Path) +} + +func TestUpdateLogStream_DestinationsOnly(t *testing.T) { + fixtureData, err := fixtures.GetFixture("monitor_log_stream") + assert.NoError(t, err) + + var base ClientBaseCase + base.SetUp(t) + defer base.TearDown(t) + + base.MockPut("monitor/streams/456", fixtureData) + + stream, err := base.Client.UpdateLogStream(context.Background(), testLogStreamID, linodego.StreamUpdateOptions{ + Destinations: []int{testLogsDestinationID}, + }) + assert.NoError(t, err) + assert.NotNil(t, stream) + assert.Len(t, stream.Destinations, 1) + assert.Equal(t, testLogsDestinationID, stream.Destinations[0].ID) +} + +func TestUpdateLogStream_LabelAndStatus(t *testing.T) { + fixtureData, err := fixtures.GetFixture("monitor_log_stream") + assert.NoError(t, err) + + var base ClientBaseCase + base.SetUp(t) + defer base.TearDown(t) + + base.MockPut("monitor/streams/456", fixtureData) + + label := "AuditLog-config" + status := linodego.StreamStatusActive + stream, err := base.Client.UpdateLogStream(context.Background(), testLogStreamID, linodego.StreamUpdateOptions{ + Label: &label, + Status: &status, + }) + assert.NoError(t, err) + assert.Equal(t, "AuditLog-config", stream.Label) + assert.Equal(t, linodego.StreamStatusActive, stream.Status) +} + +func TestDeleteLogStream(t *testing.T) { + var base ClientBaseCase + base.SetUp(t) + defer base.TearDown(t) + + base.MockDelete("monitor/streams/456", nil) + + err := base.Client.DeleteLogStream(context.Background(), testLogStreamID) + assert.NoError(t, err) +} From e0b4971b0b2d1460e13df737197d0a96350743a9 Mon Sep 17 00:00:00 2001 From: Kajetan Date: Thu, 7 May 2026 15:00:12 +0200 Subject: [PATCH 08/21] [DPS-42279] [ACLP SDK] [Go] ACLP Logs stream API - fixtures and fixes --- monitor_log_streams.go | 44 +- ...estLogStream_Create_EmptyDestinations.yaml | 157 +-- ...stLogStream_Create_InvalidDestination.yaml | 157 +-- .../TestLogStream_Create_TwoDestinations.yaml | 1179 +---------------- .../fixtures/TestLogStream_Delete.yaml | 557 +++----- .../fixtures/TestLogStream_Get.yaml | 684 +++------- .../fixtures/TestLogStream_List.yaml | 696 +++------- .../TestLogStream_Update_Destinations.yaml | 1042 ++++----------- .../TestLogStream_Update_LabelAndStatus.yaml | 887 ++++--------- ...tLogsDestination_Create_InvalidSecret.yaml | 198 ++- ...estLogsDestination_Create_InvalidType.yaml | 198 ++- .../fixtures/TestLogsDestination_Delete.yaml | 274 ++-- .../fixtures/TestLogsDestination_Get.yaml | 296 +++-- .../fixtures/TestLogsDestination_List.yaml | 367 +++-- .../TestLogsDestination_UpdateAndHistory.yaml | 376 +++--- test/integration/monitor_logs_test.go | 128 +- test/unit/fixtures/monitor_log_stream.json | 2 +- .../unit/fixtures/monitor_log_stream_lke.json | 28 + .../fixtures/monitor_log_streams_history.json | 4 +- .../fixtures/monitor_log_streams_list.json | 2 +- test/unit/monitor_logs_test.go | 94 +- 21 files changed, 2422 insertions(+), 4948 deletions(-) create mode 100644 test/unit/fixtures/monitor_log_stream_lke.json diff --git a/monitor_log_streams.go b/monitor_log_streams.go index f17eab397..d2f011e43 100644 --- a/monitor_log_streams.go +++ b/monitor_log_streams.go @@ -14,6 +14,8 @@ type StreamType string const ( // StreamTypeAuditLogs configures a stream for ACLP audit logs. StreamTypeAuditLogs StreamType = "audit_logs" + // StreamTypeLKEAuditLogs configures a stream for LKE enterprise cluster audit logs. + StreamTypeLKEAuditLogs StreamType = "lke_audit_logs" ) // StreamStatus represents the availability state of an ACLP logs stream. @@ -24,6 +26,10 @@ const ( StreamStatusActive StreamStatus = "active" // StreamStatusInactive means the stream is paused. StreamStatusInactive StreamStatus = "inactive" + // StreamStatusProvisioning means the stream is being set up. + StreamStatusProvisioning StreamStatus = "provisioning" + // StreamStatusDeactivating means the stream is being deactivated. + StreamStatusDeactivating StreamStatus = "deactivating" ) // StreamDestinationType represents the destination type for ACLP logs streams. @@ -34,20 +40,19 @@ const ( StreamDestinationTypeAkamaiObjectStorage StreamDestinationType = "akamai_object_storage" ) -// StreamDestinationDetails contains destination-specific settings for log delivery. -type StreamDestinationDetails struct { - AccessKeyID string `json:"access_key_id"` - BucketName string `json:"bucket_name"` - Host string `json:"host"` - Path string `json:"path"` +// StreamDetails contains additional details for a logs stream. +// This only applies to streams with a Type of StreamTypeLKEAuditLogs. +type StreamDetails struct { + ClusterIDs []int `json:"cluster_ids,omitempty"` + IsAutoAddAllClustersEnabled bool `json:"is_auto_add_all_clusters_enabled"` } // StreamDestination is a destination configured on an ACLP logs stream. type StreamDestination struct { - ID int `json:"id"` - Label string `json:"label"` - Type StreamDestinationType `json:"type"` - Details StreamDestinationDetails `json:"details"` + ID int `json:"id"` + Label string `json:"label"` + Type StreamDestinationType `json:"type"` + Details LogsDestinationDetails `json:"details"` } // Stream represents an ACLP logs stream. @@ -58,6 +63,7 @@ type Stream struct { Status StreamStatus `json:"status"` Version int `json:"version"` Destinations []StreamDestination `json:"destinations"` + Details *StreamDetails `json:"details,omitempty"` Created *time.Time `json:"-"` Updated *time.Time `json:"-"` CreatedBy string `json:"created_by"` @@ -66,18 +72,20 @@ type Stream struct { // StreamCreateOptions are the fields used to create an ACLP logs stream. type StreamCreateOptions struct { - Destinations []int `json:"destinations"` - Label string `json:"label"` - Type StreamType `json:"type"` - Status *StreamStatus `json:"status,omitempty"` + Destinations []int `json:"destinations"` + Label string `json:"label"` + Type StreamType `json:"type"` + Status *StreamStatus `json:"status,omitempty"` + Details *StreamDetails `json:"details,omitempty"` } // StreamUpdateOptions are the fields used to update an ACLP logs stream. type StreamUpdateOptions struct { - Destinations []int `json:"destinations,omitempty"` - Label *string `json:"label,omitempty"` - Type *StreamType `json:"type,omitempty"` - Status *StreamStatus `json:"status,omitempty"` + Destinations []int `json:"destinations,omitempty"` + Label *string `json:"label,omitempty"` + Type *StreamType `json:"type,omitempty"` + Status *StreamStatus `json:"status,omitempty"` + Details *StreamDetails `json:"details,omitempty"` } // UnmarshalJSON implements the json.Unmarshaler interface. diff --git a/test/integration/fixtures/TestLogStream_Create_EmptyDestinations.yaml b/test/integration/fixtures/TestLogStream_Create_EmptyDestinations.yaml index 2f1bd6938..b5909f56f 100644 --- a/test/integration/fixtures/TestLogStream_Create_EmptyDestinations.yaml +++ b/test/integration/fixtures/TestLogStream_Create_EmptyDestinations.yaml @@ -11,21 +11,32 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/account + url: https://api.devcloud.linode.com/v4beta/monitor/streams?page=1 method: GET response: - body: '{"company": "Akamai Technologies - Edge Experience - Dola", "email": "dl-pdx-dw-dola@akamai.com", - "first_name": "", "last_name": "", "address_1": "", "address_2": "", "city": - "", "state": "MA", "zip": "02142", "country": "US", "phone": "", "balance": - 0.0, "tax_id": "", "billing_source": "linode", "credit_card": {"last_four": - null, "expiry": null}, "balance_uninvoiced": 0.0, "active_since": "2018-01-02T03:04:05", - "capabilities": ["Linodes", "NodeBalancers", "Block Storage", "Object Storage", - "Kubernetes", "Cloud Firewall", "Vlans", "LKE HA Control Planes", "VPCs", "Block - Storage Encryption", "Machine Images", "Managed Databases", "Akamai Cloud Pulse - Logs", "LKE Network Access Control List (IP ACL)", "Placement Group", "Object - Storage Access Key Regions", "Object Storage Endpoint Types", "Disk Encryption", - "LA Disk Encryption", "SMTP Enabled", "NETINT Quadra T1U", "Linode Interfaces"], - "active_promotions": [], "euuid": "BED02C05-67D6-4FAA-BC8BB63BB77C1197"}' + body: '{"pages": 1, "page": 1, "results": 4, "data": [{"id": 1288, "label": "heliosstream1", + "type": "audit_logs", "destinations": [{"id": 584, "type": "akamai_object_storage", + "label": "helioslogstreamdestination", "details": {"host": "pl-labkrk2-1.devcloud.linodeobjects.com", + "bucket_name": "helios-bucket", "path": "helioslogs", "access_key_id": "JEYJTV5JQJ86H6ZHNBAX"}}], + "details": null, "version": 2, "status": "active", "created_by": "ndeverse-aclp", + "created": "2018-01-02T03:04:05", "updated_by": "vivkumar-aclp", "updated": + "2018-01-02T03:04:05"}, {"id": 2114, "label": "tgfjszqd", "type": "audit_logs", + "destinations": [{"id": 1084, "type": "akamai_object_storage", "label": "klfikshb-upd", + "details": {"host": "waimfikm.pl-labkrk2-1.devcloud.linodeobjects.com", "bucket_name": + "waimfikm", "path": "updated/logs/path/", "access_key_id": "ZFYLHL1J17IJZIXDEK0V"}}], + "details": null, "version": 1, "status": "inactive", "created_by": "sjerecze-aclp", + "created": "2018-01-02T03:04:05", "updated_by": "sjerecze-aclp", "updated": + "2018-01-02T03:04:05"}, {"id": 2116, "label": "dqukxuje-upd", "type": "audit_logs", + "destinations": [{"id": 1086, "type": "akamai_object_storage", "label": "hcclrgmo", + "details": {"host": "xqhicizn.pl-labkrk2-1.devcloud.linodeobjects.com", "bucket_name": + "xqhicizn", "access_key_id": "VX1VWTK7OCLBDH58RBPY"}}], "details": null, "version": + 3, "status": "active", "created_by": "sjerecze-aclp", "created": "2018-01-02T03:04:05", + "updated_by": "sjerecze-aclp", "updated": "2018-01-02T03:04:05"}, {"id": 2118, + "label": "agsdsoop-upd", "type": "audit_logs", "destinations": [{"id": 1087, + "type": "akamai_object_storage", "label": "wprylqfw", "details": {"host": "vjftvrbl.pl-labkrk2-1.devcloud.linodeobjects.com", + "bucket_name": "vjftvrbl", "access_key_id": "GXUK06GMN46SNHMDUILT"}}], "details": + null, "version": 2, "status": "active", "created_by": "sjerecze-aclp", "created": + "2018-01-02T03:04:05", "updated_by": "sjerecze-aclp", "updated": "2018-01-02T03:04:05"}]}' headers: Access-Control-Allow-Credentials: - "true" @@ -40,80 +51,16 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=0, s-maxage=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Expires: - - Tue, 28 Apr 2026 12:04:04 GMT - Pragma: - - no-cache - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization, X-Filter - - Authorization, X-Filter - - Accept-Encoding - X-Accepted-Oauth-Scopes: - - account: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/monitor/streams?page=1 - method: GET - response: - body: '{"pages": 0, "page": 1, "results": 0, "data": []}' - headers: - Access-Control-Allow-Credentials: - - "true" - Access-Control-Allow-Headers: - - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter - Access-Control-Allow-Methods: - - HEAD, GET, OPTIONS, POST, PUT, DELETE - Access-Control-Allow-Origin: - - '*' - Access-Control-Expose-Headers: - - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status - Akamai-Internal-Account: - - '*' - Cache-Control: - - max-age=0, no-cache, no-store - Connection: - - keep-alive - Content-Length: - - "49" - Content-Security-Policy: - - default-src 'none' - Content-Type: - - application/json - Expires: - - Tue, 28 Apr 2026 12:04:04 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: @@ -129,55 +76,9 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" + - "400" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" -- request: - body: '{"destinations":[],"label":"go-test-empty-dest-1777377844780014000","type":"audit_logs"}' - form: {} - headers: - Accept: - - application/json - Content-Type: - - application/json - User-Agent: - - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams - method: POST - response: - body: '{"errors": [{"reason": "Must contain one item", "field": "destinations"}]}' - headers: - Access-Control-Allow-Headers: - - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter - Access-Control-Allow-Methods: - - HEAD, GET, OPTIONS, POST, PUT, DELETE - Access-Control-Allow-Origin: - - '*' - Akamai-Internal-Account: - - '*' - Cache-Control: - - max-age=0, no-cache, no-store - Content-Length: - - "74" - Content-Type: - - application/json - Expires: - - Tue, 28 Apr 2026 12:04:05 GMT - Pragma: - - no-cache - Strict-Transport-Security: - - max-age=31536000 - X-Accepted-Oauth-Scopes: - - monitor:read_write - X-Frame-Options: - - DENY - X-Oauth-Scopes: - - '*' - X-Ratelimit-Limit: - - "1840" - status: 400 Bad Request - code: 400 - duration: "" diff --git a/test/integration/fixtures/TestLogStream_Create_InvalidDestination.yaml b/test/integration/fixtures/TestLogStream_Create_InvalidDestination.yaml index ed846b97a..b5909f56f 100644 --- a/test/integration/fixtures/TestLogStream_Create_InvalidDestination.yaml +++ b/test/integration/fixtures/TestLogStream_Create_InvalidDestination.yaml @@ -11,21 +11,32 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/account + url: https://api.devcloud.linode.com/v4beta/monitor/streams?page=1 method: GET response: - body: '{"company": "Akamai Technologies - Edge Experience - Dola", "email": "dl-pdx-dw-dola@akamai.com", - "first_name": "", "last_name": "", "address_1": "", "address_2": "", "city": - "", "state": "MA", "zip": "02142", "country": "US", "phone": "", "balance": - 0.0, "tax_id": "", "billing_source": "linode", "credit_card": {"last_four": - null, "expiry": null}, "balance_uninvoiced": 0.0, "active_since": "2018-01-02T03:04:05", - "capabilities": ["Linodes", "NodeBalancers", "Block Storage", "Object Storage", - "Kubernetes", "Cloud Firewall", "Vlans", "LKE HA Control Planes", "VPCs", "Block - Storage Encryption", "Machine Images", "Managed Databases", "Akamai Cloud Pulse - Logs", "LKE Network Access Control List (IP ACL)", "Placement Group", "Object - Storage Access Key Regions", "Object Storage Endpoint Types", "Disk Encryption", - "LA Disk Encryption", "SMTP Enabled", "NETINT Quadra T1U", "Linode Interfaces"], - "active_promotions": [], "euuid": "BED02C05-67D6-4FAA-BC8BB63BB77C1197"}' + body: '{"pages": 1, "page": 1, "results": 4, "data": [{"id": 1288, "label": "heliosstream1", + "type": "audit_logs", "destinations": [{"id": 584, "type": "akamai_object_storage", + "label": "helioslogstreamdestination", "details": {"host": "pl-labkrk2-1.devcloud.linodeobjects.com", + "bucket_name": "helios-bucket", "path": "helioslogs", "access_key_id": "JEYJTV5JQJ86H6ZHNBAX"}}], + "details": null, "version": 2, "status": "active", "created_by": "ndeverse-aclp", + "created": "2018-01-02T03:04:05", "updated_by": "vivkumar-aclp", "updated": + "2018-01-02T03:04:05"}, {"id": 2114, "label": "tgfjszqd", "type": "audit_logs", + "destinations": [{"id": 1084, "type": "akamai_object_storage", "label": "klfikshb-upd", + "details": {"host": "waimfikm.pl-labkrk2-1.devcloud.linodeobjects.com", "bucket_name": + "waimfikm", "path": "updated/logs/path/", "access_key_id": "ZFYLHL1J17IJZIXDEK0V"}}], + "details": null, "version": 1, "status": "inactive", "created_by": "sjerecze-aclp", + "created": "2018-01-02T03:04:05", "updated_by": "sjerecze-aclp", "updated": + "2018-01-02T03:04:05"}, {"id": 2116, "label": "dqukxuje-upd", "type": "audit_logs", + "destinations": [{"id": 1086, "type": "akamai_object_storage", "label": "hcclrgmo", + "details": {"host": "xqhicizn.pl-labkrk2-1.devcloud.linodeobjects.com", "bucket_name": + "xqhicizn", "access_key_id": "VX1VWTK7OCLBDH58RBPY"}}], "details": null, "version": + 3, "status": "active", "created_by": "sjerecze-aclp", "created": "2018-01-02T03:04:05", + "updated_by": "sjerecze-aclp", "updated": "2018-01-02T03:04:05"}, {"id": 2118, + "label": "agsdsoop-upd", "type": "audit_logs", "destinations": [{"id": 1087, + "type": "akamai_object_storage", "label": "wprylqfw", "details": {"host": "vjftvrbl.pl-labkrk2-1.devcloud.linodeobjects.com", + "bucket_name": "vjftvrbl", "access_key_id": "GXUK06GMN46SNHMDUILT"}}], "details": + null, "version": 2, "status": "active", "created_by": "sjerecze-aclp", "created": + "2018-01-02T03:04:05", "updated_by": "sjerecze-aclp", "updated": "2018-01-02T03:04:05"}]}' headers: Access-Control-Allow-Credentials: - "true" @@ -40,80 +51,16 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=0, s-maxage=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Expires: - - Tue, 28 Apr 2026 12:02:40 GMT - Pragma: - - no-cache - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization, X-Filter - - Authorization, X-Filter - - Accept-Encoding - X-Accepted-Oauth-Scopes: - - account: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/monitor/streams?page=1 - method: GET - response: - body: '{"pages": 0, "page": 1, "results": 0, "data": []}' - headers: - Access-Control-Allow-Credentials: - - "true" - Access-Control-Allow-Headers: - - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter - Access-Control-Allow-Methods: - - HEAD, GET, OPTIONS, POST, PUT, DELETE - Access-Control-Allow-Origin: - - '*' - Access-Control-Expose-Headers: - - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status - Akamai-Internal-Account: - - '*' - Cache-Control: - - max-age=0, no-cache, no-store - Connection: - - keep-alive - Content-Length: - - "49" - Content-Security-Policy: - - default-src 'none' - Content-Type: - - application/json - Expires: - - Tue, 28 Apr 2026 12:02:40 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: @@ -129,55 +76,9 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" + - "400" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" -- request: - body: '{"destinations":[999999999],"label":"go-test-invalid-dest-1777377760933312000","type":"audit_logs"}' - form: {} - headers: - Accept: - - application/json - Content-Type: - - application/json - User-Agent: - - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams - method: POST - response: - body: '{"errors": [{"reason": "Destination not found", "field": "destination"}]}' - headers: - Access-Control-Allow-Headers: - - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter - Access-Control-Allow-Methods: - - HEAD, GET, OPTIONS, POST, PUT, DELETE - Access-Control-Allow-Origin: - - '*' - Akamai-Internal-Account: - - '*' - Cache-Control: - - max-age=0, no-cache, no-store - Content-Length: - - "73" - Content-Type: - - application/json - Expires: - - Tue, 28 Apr 2026 12:02:41 GMT - Pragma: - - no-cache - Strict-Transport-Security: - - max-age=31536000 - X-Accepted-Oauth-Scopes: - - monitor:read_write - X-Frame-Options: - - DENY - X-Oauth-Scopes: - - '*' - X-Ratelimit-Limit: - - "1840" - status: 400 Bad Request - code: 400 - duration: "" diff --git a/test/integration/fixtures/TestLogStream_Create_TwoDestinations.yaml b/test/integration/fixtures/TestLogStream_Create_TwoDestinations.yaml index 071804ac0..b5909f56f 100644 --- a/test/integration/fixtures/TestLogStream_Create_TwoDestinations.yaml +++ b/test/integration/fixtures/TestLogStream_Create_TwoDestinations.yaml @@ -11,21 +11,32 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/account + url: https://api.devcloud.linode.com/v4beta/monitor/streams?page=1 method: GET response: - body: '{"company": "Akamai Technologies - Edge Experience - Dola", "email": "dl-pdx-dw-dola@akamai.com", - "first_name": "", "last_name": "", "address_1": "", "address_2": "", "city": - "", "state": "MA", "zip": "02142", "country": "US", "phone": "", "balance": - 0.0, "tax_id": "", "billing_source": "linode", "credit_card": {"last_four": - null, "expiry": null}, "balance_uninvoiced": 0.0, "active_since": "2018-01-02T03:04:05", - "capabilities": ["Linodes", "NodeBalancers", "Block Storage", "Object Storage", - "Kubernetes", "Cloud Firewall", "Vlans", "LKE HA Control Planes", "VPCs", "Block - Storage Encryption", "Machine Images", "Managed Databases", "Akamai Cloud Pulse - Logs", "LKE Network Access Control List (IP ACL)", "Placement Group", "Object - Storage Access Key Regions", "Object Storage Endpoint Types", "Disk Encryption", - "LA Disk Encryption", "SMTP Enabled", "NETINT Quadra T1U", "Linode Interfaces"], - "active_promotions": [], "euuid": "BED02C05-67D6-4FAA-BC8BB63BB77C1197"}' + body: '{"pages": 1, "page": 1, "results": 4, "data": [{"id": 1288, "label": "heliosstream1", + "type": "audit_logs", "destinations": [{"id": 584, "type": "akamai_object_storage", + "label": "helioslogstreamdestination", "details": {"host": "pl-labkrk2-1.devcloud.linodeobjects.com", + "bucket_name": "helios-bucket", "path": "helioslogs", "access_key_id": "JEYJTV5JQJ86H6ZHNBAX"}}], + "details": null, "version": 2, "status": "active", "created_by": "ndeverse-aclp", + "created": "2018-01-02T03:04:05", "updated_by": "vivkumar-aclp", "updated": + "2018-01-02T03:04:05"}, {"id": 2114, "label": "tgfjszqd", "type": "audit_logs", + "destinations": [{"id": 1084, "type": "akamai_object_storage", "label": "klfikshb-upd", + "details": {"host": "waimfikm.pl-labkrk2-1.devcloud.linodeobjects.com", "bucket_name": + "waimfikm", "path": "updated/logs/path/", "access_key_id": "ZFYLHL1J17IJZIXDEK0V"}}], + "details": null, "version": 1, "status": "inactive", "created_by": "sjerecze-aclp", + "created": "2018-01-02T03:04:05", "updated_by": "sjerecze-aclp", "updated": + "2018-01-02T03:04:05"}, {"id": 2116, "label": "dqukxuje-upd", "type": "audit_logs", + "destinations": [{"id": 1086, "type": "akamai_object_storage", "label": "hcclrgmo", + "details": {"host": "xqhicizn.pl-labkrk2-1.devcloud.linodeobjects.com", "bucket_name": + "xqhicizn", "access_key_id": "VX1VWTK7OCLBDH58RBPY"}}], "details": null, "version": + 3, "status": "active", "created_by": "sjerecze-aclp", "created": "2018-01-02T03:04:05", + "updated_by": "sjerecze-aclp", "updated": "2018-01-02T03:04:05"}, {"id": 2118, + "label": "agsdsoop-upd", "type": "audit_logs", "destinations": [{"id": 1087, + "type": "akamai_object_storage", "label": "wprylqfw", "details": {"host": "vjftvrbl.pl-labkrk2-1.devcloud.linodeobjects.com", + "bucket_name": "vjftvrbl", "access_key_id": "GXUK06GMN46SNHMDUILT"}}], "details": + null, "version": 2, "status": "active", "created_by": "sjerecze-aclp", "created": + "2018-01-02T03:04:05", "updated_by": "sjerecze-aclp", "updated": "2018-01-02T03:04:05"}]}' headers: Access-Control-Allow-Credentials: - "true" @@ -40,80 +51,16 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=0, s-maxage=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Expires: - - Tue, 28 Apr 2026 12:05:34 GMT - Pragma: - - no-cache - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization, X-Filter - - Authorization, X-Filter - - Accept-Encoding - X-Accepted-Oauth-Scopes: - - account: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/monitor/streams?page=1 - method: GET - response: - body: '{"pages": 0, "page": 1, "results": 0, "data": []}' - headers: - Access-Control-Allow-Credentials: - - "true" - Access-Control-Allow-Headers: - - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter - Access-Control-Allow-Methods: - - HEAD, GET, OPTIONS, POST, PUT, DELETE - Access-Control-Allow-Origin: - - '*' - Access-Control-Expose-Headers: - - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status - Akamai-Internal-Account: - - '*' - Cache-Control: - - max-age=0, no-cache, no-store - Connection: - - keep-alive - Content-Length: - - "49" - Content-Security-Policy: - - default-src 'none' - Content-Type: - - application/json - Expires: - - Tue, 28 Apr 2026 12:05:34 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: @@ -129,1075 +76,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" - X-Xss-Protection: - - 1; mode=block - status: 200 OK - code: 200 - duration: "" -- request: - body: '{"region":"us-southeast","label":"go-test-logs-destination-1777377934856713000","acl":"private","cors_enabled":false}' - form: {} - headers: - Accept: - - application/json - Content-Type: - - application/json - User-Agent: - - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets - method: POST - response: - body: '{"hostname": "go-test-logs-destination-1777377934856713000.us-southeast-1.linodeobjects.com", - "label": "go-test-logs-destination-1777377934856713000", "created": "2018-01-02T03:04:05", - "region": "us-southeast", "cluster": "us-southeast-1", "size": 0, "objects": - 0, "endpoint_type": "E0", "s3_endpoint": "us-southeast-1.linodeobjects.com"}' - headers: - Access-Control-Allow-Credentials: - - "true" - Access-Control-Allow-Headers: - - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter - Access-Control-Allow-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: - - "338" - Content-Security-Policy: - - default-src 'none' - Content-Type: - - application/json - Expires: - - Tue, 28 Apr 2026 12:05:36 GMT - Pragma: - - no-cache - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization, X-Filter - X-Accepted-Oauth-Scopes: - - object_storage:read_write - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - DENY - - DENY - X-Oauth-Scopes: - - '*' - X-Ratelimit-Limit: - - "60" - X-Xss-Protection: - - 1; mode=block - status: 200 OK - code: 200 - duration: "" -- request: - body: '{"label":"go-test-logs-destination-1777377936149930000"}' - form: {} - headers: - Accept: - - application/json - Content-Type: - - application/json - User-Agent: - - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/keys - method: POST - response: - body: '{"id": 3463426, "label": "go-test-logs-destination-1777377936149930000", - "access_key": "9OB5151U3Q8XPEU2BKIH", "secret_key": "sDMb4OydhputKDCh8Xxh2kPsBDfr87nucwwZ2ucA", - "limited": false, "bucket_access": null, "regions": [{"id": "us-east", "s3_endpoint": - "us-east-1.linodeobjects.com", "endpoint_type": "E0"}, {"id": "us-iad", "s3_endpoint": - "us-iad-10.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-lax", "s3_endpoint": - "us-lax-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-lax", "s3_endpoint": - "us-lax-4.linodeobjects.com", "endpoint_type": "E3"}, {"id": "us-mia", "s3_endpoint": - "us-mia-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-ord", "s3_endpoint": - "us-ord-10.linodeobjects.com", "endpoint_type": "E3"}, {"id": "us-ord", "s3_endpoint": - "us-ord-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-sea", "s3_endpoint": - "us-sea-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-southeast", - "s3_endpoint": "us-southeast-1.linodeobjects.com", "endpoint_type": "E0"}]}' - headers: - Access-Control-Allow-Credentials: - - "true" - Access-Control-Allow-Headers: - - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter - Access-Control-Allow-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: - - Tue, 28 Apr 2026 12:05:38 GMT - Pragma: - - no-cache - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization, X-Filter - - Accept-Encoding - X-Accepted-Oauth-Scopes: - - object_storage:read_write - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - DENY - - DENY - X-Oauth-Scopes: - - '*' - X-Ratelimit-Limit: - - "60" - X-Xss-Protection: - - 1; mode=block - status: 200 OK - code: 200 - duration: "" -- request: - body: '{"region":"us-southeast","label":"go-test-logs-destination-1777377938435308000","acl":"private","cors_enabled":false}' - form: {} - headers: - Accept: - - application/json - Content-Type: - - application/json - User-Agent: - - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets - method: POST - response: - body: '{"hostname": "go-test-logs-destination-1777377938435308000.us-southeast-1.linodeobjects.com", - "label": "go-test-logs-destination-1777377938435308000", "created": "2018-01-02T03:04:05", - "region": "us-southeast", "cluster": "us-southeast-1", "size": 0, "objects": - 0, "endpoint_type": "E0", "s3_endpoint": "us-southeast-1.linodeobjects.com"}' - headers: - Access-Control-Allow-Credentials: - - "true" - Access-Control-Allow-Headers: - - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter - Access-Control-Allow-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: - - "338" - Content-Security-Policy: - - default-src 'none' - Content-Type: - - application/json - Expires: - - Tue, 28 Apr 2026 12:05:40 GMT - Pragma: - - no-cache - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization, X-Filter - X-Accepted-Oauth-Scopes: - - object_storage:read_write - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - DENY - - DENY - X-Oauth-Scopes: - - '*' - X-Ratelimit-Limit: - - "60" - X-Xss-Protection: - - 1; mode=block - status: 200 OK - code: 200 - duration: "" -- request: - body: '{"label":"go-test-logs-destination-1777377940564417000"}' - form: {} - headers: - Accept: - - application/json - Content-Type: - - application/json - User-Agent: - - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/keys - method: POST - response: - body: '{"id": 3463429, "label": "go-test-logs-destination-1777377940564417000", - "access_key": "BR8ZPY5AKP5EI0OM3KJD", "secret_key": "cTtXjecijL1HyDNhhUfe0m8iTwTIu03JtKU986Sa", - "limited": false, "bucket_access": null, "regions": [{"id": "us-east", "s3_endpoint": - "us-east-1.linodeobjects.com", "endpoint_type": "E0"}, {"id": "us-iad", "s3_endpoint": - "us-iad-10.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-lax", "s3_endpoint": - "us-lax-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-lax", "s3_endpoint": - "us-lax-4.linodeobjects.com", "endpoint_type": "E3"}, {"id": "us-mia", "s3_endpoint": - "us-mia-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-ord", "s3_endpoint": - "us-ord-10.linodeobjects.com", "endpoint_type": "E3"}, {"id": "us-ord", "s3_endpoint": - "us-ord-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-sea", "s3_endpoint": - "us-sea-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-southeast", - "s3_endpoint": "us-southeast-1.linodeobjects.com", "endpoint_type": "E0"}]}' - headers: - Access-Control-Allow-Credentials: - - "true" - Access-Control-Allow-Headers: - - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter - Access-Control-Allow-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: - - Tue, 28 Apr 2026 12:05:43 GMT - Pragma: - - no-cache - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization, X-Filter - - Accept-Encoding - X-Accepted-Oauth-Scopes: - - object_storage:read_write - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - DENY - - DENY - X-Oauth-Scopes: - - '*' - X-Ratelimit-Limit: - - "60" - X-Xss-Protection: - - 1; mode=block - status: 200 OK - code: 200 - duration: "" -- request: - body: '{"label":"go-test-logs-destination-1777377943050791000","type":"akamai_object_storage","details":{"access_key_id":"9OB5151U3Q8XPEU2BKIH","access_key_secret":"sDMb4OydhputKDCh8Xxh2kPsBDfr87nucwwZ2ucA","bucket_name":"go-test-logs-destination-1777377934856713000","host":"go-test-logs-destination-1777377934856713000.us-southeast-1.linodeobjects.com"}}' - form: {} - headers: - Accept: - - application/json - Content-Type: - - application/json - User-Agent: - - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations - method: POST - response: - body: '{"id": 301, "label": "go-test-logs-destination-1777377943050791000", "type": - "akamai_object_storage", "details": {"host": "go-test-logs-destination-1777377934856713000.us-southeast-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1777377934856713000", "access_key_id": - "9OB5151U3Q8XPEU2BKIH"}, "version": 1, "status": "active", "created_by": "dola-klipensk", - "created": "2018-01-02T03:04:05Z", "updated_by": "dola-klipensk", "updated": - "2018-01-02T03:04:05Z"}' - headers: - Access-Control-Allow-Credentials: - - "true" - Access-Control-Allow-Headers: - - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter - Access-Control-Allow-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: - - "473" - Content-Security-Policy: - - default-src 'none' - Content-Type: - - application/json - Expires: - - Tue, 28 Apr 2026 12:05:44 GMT - Pragma: - - no-cache - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization, X-Filter - X-Accepted-Oauth-Scopes: - - monitor: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: '{"label":"go-test-logs-destination-1777377944271323000","type":"akamai_object_storage","details":{"access_key_id":"BR8ZPY5AKP5EI0OM3KJD","access_key_secret":"cTtXjecijL1HyDNhhUfe0m8iTwTIu03JtKU986Sa","bucket_name":"go-test-logs-destination-1777377938435308000","host":"go-test-logs-destination-1777377938435308000.us-southeast-1.linodeobjects.com"}}' - form: {} - headers: - Accept: - - application/json - Content-Type: - - application/json - User-Agent: - - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations - method: POST - response: - body: '{"id": 302, "label": "go-test-logs-destination-1777377944271323000", "type": - "akamai_object_storage", "details": {"host": "go-test-logs-destination-1777377938435308000.us-southeast-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1777377938435308000", "access_key_id": - "BR8ZPY5AKP5EI0OM3KJD"}, "version": 1, "status": "active", "created_by": "dola-klipensk", - "created": "2018-01-02T03:04:05Z", "updated_by": "dola-klipensk", "updated": - "2018-01-02T03:04:05Z"}' - headers: - Access-Control-Allow-Credentials: - - "true" - Access-Control-Allow-Headers: - - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter - Access-Control-Allow-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: - - "473" - Content-Security-Policy: - - default-src 'none' - Content-Type: - - application/json - Expires: - - Tue, 28 Apr 2026 12:05:45 GMT - Pragma: - - no-cache - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization, X-Filter - X-Accepted-Oauth-Scopes: - - monitor: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: '{"destinations":[301,302],"label":"go-test-two-dest-1777377945040332000","type":"audit_logs"}' - form: {} - headers: - Accept: - - application/json - Content-Type: - - application/json - User-Agent: - - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams - method: POST - response: - body: '{"errors": [{"reason": "Must contain one item", "field": "destinations"}]}' - headers: - Access-Control-Allow-Headers: - - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter - Access-Control-Allow-Methods: - - HEAD, GET, OPTIONS, POST, PUT, DELETE - Access-Control-Allow-Origin: - - '*' - Akamai-Internal-Account: - - '*' - Cache-Control: - - max-age=0, no-cache, no-store - Content-Length: - - "74" - Content-Type: - - application/json - Expires: - - Tue, 28 Apr 2026 12:05:45 GMT - Pragma: - - no-cache - Strict-Transport-Security: - - max-age=31536000 - X-Accepted-Oauth-Scopes: - - monitor:read_write - X-Frame-Options: - - DENY - X-Oauth-Scopes: - - '*' - X-Ratelimit-Limit: - - "1840" - status: 400 Bad Request - code: 400 - duration: "" -- request: - body: "" - form: {} - headers: - Accept: - - application/json - Content-Type: - - application/json - User-Agent: - - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations/302 - 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: - - Tue, 28 Apr 2026 12:05:45 GMT - Pragma: - - no-cache - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization, X-Filter - X-Accepted-Oauth-Scopes: - - monitor: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/monitor/streams/destinations/301 - 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: - - Tue, 28 Apr 2026 12:05:46 GMT - Pragma: - - no-cache - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization, X-Filter - X-Accepted-Oauth-Scopes: - - monitor: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/object-storage/keys/3463429 - 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: - - Tue, 28 Apr 2026 12:05:46 GMT - Pragma: - - no-cache - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization, X-Filter - X-Accepted-Oauth-Scopes: - - object_storage:read_write - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - DENY - - DENY - X-Oauth-Scopes: - - '*' - X-Ratelimit-Limit: - - "60" - 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/object-storage/buckets/us-southeast/go-test-logs-destination-1777377938435308000/object-list - method: GET - response: - body: '{"data": [{"name": "cloud-logs-test-connection-20260428T120544", "size": - 9, "last_modified": "2018-01-02T03:04:05.857Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", - "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}], "next_marker": null, "is_truncated": - false}' - headers: - Access-Control-Allow-Credentials: - - "true" - Access-Control-Allow-Headers: - - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter - Access-Control-Allow-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: - - "259" - Content-Security-Policy: - - default-src 'none' - Content-Type: - - application/json - Expires: - - Tue, 28 Apr 2026 12:05:47 GMT - Pragma: - - no-cache - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization, X-Filter - - Authorization, X-Filter - X-Accepted-Oauth-Scopes: - - object_storage: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: '{"name":"cloud-logs-test-connection-20260428T120544","method":"DELETE","expires_in":360}' - form: {} - headers: - Accept: - - application/json - Content-Type: - - application/json - User-Agent: - - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1777377938435308000/object-url - method: POST - response: - body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1777377938435308000/cloud-logs-test-connection-20260428T120544?Signature=pKF61sh8IhEZ4gRNZ%2B5Whbpoq2o%3D&Expires=1777378309&AWSAccessKeyID=SANITIZED", - "exists": true}' - headers: - Access-Control-Allow-Credentials: - - "true" - Access-Control-Allow-Headers: - - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter - Access-Control-Allow-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: - - "257" - Content-Security-Policy: - - default-src 'none' - Content-Type: - - application/json - Expires: - - Tue, 28 Apr 2026 12:05:49 GMT - Pragma: - - no-cache - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization, X-Filter - X-Accepted-Oauth-Scopes: - - object_storage: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/object-storage/buckets/us-southeast/go-test-logs-destination-1777377938435308000 - 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: - - Tue, 28 Apr 2026 12:05:53 GMT - Pragma: - - no-cache - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization, X-Filter - X-Accepted-Oauth-Scopes: - - object_storage: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/object-storage/keys/3463426 - 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: - - Tue, 28 Apr 2026 12:05:54 GMT - Pragma: - - no-cache - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization, X-Filter - X-Accepted-Oauth-Scopes: - - object_storage:read_write - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - DENY - - DENY - X-Oauth-Scopes: - - '*' - X-Ratelimit-Limit: - - "60" - 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/object-storage/buckets/us-southeast/go-test-logs-destination-1777377934856713000/object-list - method: GET - response: - body: '{"data": [{"name": "cloud-logs-test-connection-20260428T120543", "size": - 9, "last_modified": "2018-01-02T03:04:05.904Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", - "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}], "next_marker": null, "is_truncated": - false}' - headers: - Access-Control-Allow-Credentials: - - "true" - Access-Control-Allow-Headers: - - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter - Access-Control-Allow-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: - - "259" - Content-Security-Policy: - - default-src 'none' - Content-Type: - - application/json - Expires: - - Tue, 28 Apr 2026 12:05:55 GMT - Pragma: - - no-cache - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization, X-Filter - - Authorization, X-Filter - X-Accepted-Oauth-Scopes: - - object_storage: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: '{"name":"cloud-logs-test-connection-20260428T120543","method":"DELETE","expires_in":360}' - form: {} - headers: - Accept: - - application/json - Content-Type: - - application/json - User-Agent: - - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1777377934856713000/object-url - method: POST - response: - body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1777377934856713000/cloud-logs-test-connection-20260428T120543?Signature=645vcpnancz7eoRMeiqYUDPZJz8%3D&Expires=1777378316&AWSAccessKeyID=SANITIZED", - "exists": true}' - headers: - Access-Control-Allow-Credentials: - - "true" - Access-Control-Allow-Headers: - - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter - Access-Control-Allow-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: - - "255" - Content-Security-Policy: - - default-src 'none' - Content-Type: - - application/json - Expires: - - Tue, 28 Apr 2026 12:05:56 GMT - Pragma: - - no-cache - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization, X-Filter - X-Accepted-Oauth-Scopes: - - object_storage: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/object-storage/buckets/us-southeast/go-test-logs-destination-1777377934856713000 - 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: - - Tue, 28 Apr 2026 12:05:59 GMT - Pragma: - - no-cache - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization, X-Filter - X-Accepted-Oauth-Scopes: - - object_storage:read_write - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - DENY - - DENY - X-Oauth-Scopes: - - '*' - X-Ratelimit-Limit: - - "1840" + - "400" X-Xss-Protection: - 1; mode=block status: 200 OK diff --git a/test/integration/fixtures/TestLogStream_Delete.yaml b/test/integration/fixtures/TestLogStream_Delete.yaml index e6659c48b..1ae69bb14 100644 --- a/test/integration/fixtures/TestLogStream_Delete.yaml +++ b/test/integration/fixtures/TestLogStream_Delete.yaml @@ -2,7 +2,7 @@ version: 1 interactions: - request: - body: '{"region":"us-southeast","label":"go-test-logs-destination-1777367849643592000","acl":"private","cors_enabled":false}' + body: "" form: {} headers: Accept: @@ -11,13 +11,37 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets - method: POST + url: https://api.devcloud.linode.com/v4beta/regions?page=1 + method: GET response: - body: '{"hostname": "go-test-logs-destination-1777367849643592000.us-southeast-1.linodeobjects.com", - "label": "go-test-logs-destination-1777367849643592000", "created": "2018-01-02T03:04:05", - "region": "us-southeast", "cluster": "us-southeast-1", "size": 0, "objects": - 0, "endpoint_type": "E0", "s3_endpoint": "us-southeast-1.linodeobjects.com"}' + body: '{"data": [{"id": "pl-labkrk-2", "label": "Krakow, PL", "country": "pl", + "capabilities": ["Linodes", "Block Storage Encryption", "LA Disk Encryption", + "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", "Object Storage", + "GPU Linodes", "Kubernetes", "Kubernetes Enterprise", "Cloud Firewall", "Vlans", + "VPCs", "Block Storage Migrations", "Managed Databases", "Metadata", "Premium + Plans", "Placement Group", "StackScripts", "NETINT Quadra T1U", "Maintenance + Policy", "Linode Interfaces", "Network LoadBalancer", "ACLP Logs Datacenter + LKE-E"], "monitors": {"alerts": ["Block Storage", "Cloud Firewall", "Kubernetes", + "Linodes", "Managed Databases", "Network LoadBalancer", "NodeBalancers", "Object + Storage", "logs"], "metrics": ["Block Storage", "Cloud Firewall", "Kubernetes", + "Linodes", "Managed Databases", "Network LoadBalancer", "NodeBalancers", "Object + Storage", "logs"]}, "status": "ok", "resolvers": {"ipv4": "172.24.224.240,172.24.224.229,172.24.224.236,172.24.224.238,172.24.224.235,172.24.224.241,172.24.224.230,172.24.224.239,172.24.224.233,172.24.224.234", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-labedgeeat-2", + "label": "East Wenatchee, US", "country": "us", "capabilities": ["Linodes", + "Disk Encryption", "Cloud Firewall", "Vlans", "VPCs", "Metadata", "Distributed + Plans", "Linode Interfaces"], "monitors": {"alerts": [], "metrics": []}, "status": + "ok", "resolvers": {"ipv4": "173.223.100.53,173.223.101.53", "ipv6": "1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": 0, "maximum_linodes_per_pg": + 0, "maximum_linodes_per_flexible_pg": 0}, "site_type": "distributed"}, {"id": + "us-labedgeeat-3", "label": "East Wenatchee, US", "country": "us", "capabilities": + ["Linodes", "Disk Encryption", "Cloud Firewall", "Metadata", "Distributed Plans"], + "monitors": {"alerts": [], "metrics": []}, "status": "ok", "resolvers": {"ipv4": + "173.223.100.53,173.223.101.53", "ipv6": "1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": 0, "maximum_linodes_per_pg": + 0, "maximum_linodes_per_flexible_pg": 0}, "site_type": "distributed"}], "page": + 1, "pages": 1, "results": 3}' headers: Access-Control-Allow-Credentials: - "true" @@ -32,25 +56,23 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=900 + - private, max-age=60, s-maxage=60 Connection: - keep-alive - Content-Length: - - "338" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Expires: - - Tue, 28 Apr 2026 09:17:30 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: - Authorization, X-Filter + - Authorization, X-Filter X-Accepted-Oauth-Scopes: - - object_storage:read_write + - '*' X-Content-Type-Options: - nosniff X-Frame-Options: @@ -59,14 +81,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "60" + - "400" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1777367850850781000"}' + body: '{"region":"pl-labkrk-2","label":"go-test-logs-destination-1778070608785939000","acl":"private","cors_enabled":false}' form: {} headers: Accept: @@ -75,21 +97,13 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/keys + url: https://api.devcloud.linode.com/v4beta/object-storage/buckets method: POST response: - body: '{"id": 3461736, "label": "go-test-logs-destination-1777367850850781000", - "access_key": "66U9V5UKWGH44VKCS1TM", "secret_key": "fcNPXB1zOzT3o8IMFc9sVM0WdeOnPI494hjNnwoO", - "limited": false, "bucket_access": null, "regions": [{"id": "us-east", "s3_endpoint": - "us-east-1.linodeobjects.com", "endpoint_type": "E0"}, {"id": "us-iad", "s3_endpoint": - "us-iad-10.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-lax", "s3_endpoint": - "us-lax-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-lax", "s3_endpoint": - "us-lax-4.linodeobjects.com", "endpoint_type": "E3"}, {"id": "us-mia", "s3_endpoint": - "us-mia-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-ord", "s3_endpoint": - "us-ord-10.linodeobjects.com", "endpoint_type": "E3"}, {"id": "us-ord", "s3_endpoint": - "us-ord-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-sea", "s3_endpoint": - "us-sea-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-southeast", - "s3_endpoint": "us-southeast-1.linodeobjects.com", "endpoint_type": "E0"}]}' + body: '{"hostname": "go-test-logs-destination-1778070608785939000.pl-labkrk2-1.devcloud.linodeobjects.com", + "label": "go-test-logs-destination-1778070608785939000", "created": "2018-01-02T03:04:05", + "region": "pl-labkrk-2", "cluster": "pl-labkrk2-1", "size": 0, "objects": 0, + "endpoint_type": "E1", "s3_endpoint": "pl-labkrk2-1.devcloud.linodeobjects.com"}' headers: Access-Control-Allow-Credentials: - "true" @@ -104,22 +118,21 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive + Content-Length: + - "349" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Expires: - - Tue, 28 Apr 2026 09:17:33 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: - Authorization, X-Filter - - Accept-Encoding X-Accepted-Oauth-Scopes: - object_storage:read_write X-Content-Type-Options: @@ -130,14 +143,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "60" + - "12" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1777367853154875000","type":"akamai_object_storage","details":{"access_key_id":"66U9V5UKWGH44VKCS1TM","access_key_secret":"fcNPXB1zOzT3o8IMFc9sVM0WdeOnPI494hjNnwoO","bucket_name":"go-test-logs-destination-1777367849643592000","host":"go-test-logs-destination-1777367849643592000.us-southeast-1.linodeobjects.com"}}' + body: '{"label":"go-test-logs-destination-1778070609592758000"}' form: {} headers: Accept: @@ -146,15 +159,13 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations + url: https://api.devcloud.linode.com/v4beta/object-storage/keys method: POST response: - body: '{"id": 299, "label": "go-test-logs-destination-1777367853154875000", "type": - "akamai_object_storage", "details": {"host": "go-test-logs-destination-1777367849643592000.us-southeast-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1777367849643592000", "access_key_id": - "66U9V5UKWGH44VKCS1TM"}, "version": 1, "status": "active", "created_by": "dola-klipensk", - "created": "2018-01-02T03:04:05Z", "updated_by": "dola-klipensk", "updated": - "2018-01-02T03:04:05Z"}' + body: '{"id": 340229, "label": "go-test-logs-destination-1778070609592758000", + "access_key": "[SANITIZED]", "secret_key": "[SANITIZED]", "limited": false, + "bucket_access": null, "regions": [{"id": "pl-labkrk-2", "s3_endpoint": "pl-labkrk2-1.devcloud.linodeobjects.com", + "endpoint_type": "E1"}]}' headers: Access-Control-Allow-Credentials: - "true" @@ -169,25 +180,23 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: - - "473" + - "325" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Expires: - - Tue, 28 Apr 2026 09:17:33 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: - Authorization, X-Filter X-Accepted-Oauth-Scopes: - - monitor:read_write + - object_storage:read_write X-Content-Type-Options: - nosniff X-Frame-Options: @@ -196,14 +205,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" + - "12" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"destinations":[299],"label":"go-test-log-stream-1777367853935688000","type":"audit_logs"}' + body: '{"label":"go-test-logs-destination-1778070610236920000","type":"akamai_object_storage","details":{"access_key_id":"L3G818UP71COR0RIMUAN","access_key_secret":"Kf7uBbRv8WF2NslnZA9XIrLOEQhSHkax0PK3U3b7","bucket_name":"go-test-logs-destination-1778070608785939000","host":"go-test-logs-destination-1778070608785939000.pl-labkrk2-1.devcloud.linodeobjects.com"}}' form: {} headers: Accept: @@ -212,17 +221,15 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams + url: https://api.devcloud.linode.com/v4beta/monitor/streams/destinations method: POST response: - body: '{"id": 150, "label": "go-test-log-stream-1777367853935688000", "type": - "audit_logs", "destinations": [{"id": 299, "type": "akamai_object_storage", - "label": "go-test-logs-destination-1777367853154875000", "details": {"host": - "go-test-logs-destination-1777367849643592000.us-southeast-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1777367849643592000", "access_key_id": - "66U9V5UKWGH44VKCS1TM"}}], "details": null, "version": 1, "status": "provisioning", - "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05Z", "updated_by": - "dola-klipensk", "updated": "2018-01-02T03:04:05Z"}' + body: '{"id": 1090, "label": "go-test-logs-destination-1778070610236920000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778070608785939000.pl-labkrk2-1.devcloud.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1778070608785939000", "access_key_id": + "L3G818UP71COR0RIMUAN"}, "version": 1, "status": "active", "created_by": "klipensk-aclp", + "created": "2018-01-02T03:04:05", "updated_by": "klipensk-aclp", "updated": + "2018-01-02T03:04:05"}' headers: Access-Control-Allow-Credentials: - "true" @@ -237,19 +244,17 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: - - "600" + - "479" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Expires: - - Tue, 28 Apr 2026 09:17:34 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: @@ -264,14 +269,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" + - "400" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: "" + body: '{"destinations":[1090],"label":"go-test-log-stream-1778070612105601000","type":"audit_logs"}' form: {} headers: Accept: @@ -280,21 +285,17 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/account - method: GET + url: https://api.devcloud.linode.com/v4beta/monitor/streams + method: POST response: - body: '{"company": "Akamai Technologies - Edge Experience - Dola", "email": "dl-pdx-dw-dola@akamai.com", - "first_name": "", "last_name": "", "address_1": "", "address_2": "", "city": - "", "state": "MA", "zip": "02142", "country": "US", "phone": "", "balance": - 0.0, "tax_id": "", "billing_source": "linode", "credit_card": {"last_four": - null, "expiry": null}, "balance_uninvoiced": 0.0, "active_since": "2018-01-02T03:04:05", - "capabilities": ["Linodes", "NodeBalancers", "Block Storage", "Object Storage", - "Kubernetes", "Cloud Firewall", "Vlans", "LKE HA Control Planes", "VPCs", "Block - Storage Encryption", "Machine Images", "Managed Databases", "Akamai Cloud Pulse - Logs", "LKE Network Access Control List (IP ACL)", "Placement Group", "Object - Storage Access Key Regions", "Object Storage Endpoint Types", "Disk Encryption", - "LA Disk Encryption", "SMTP Enabled", "NETINT Quadra T1U", "Linode Interfaces"], - "active_promotions": [], "euuid": "BED02C05-67D6-4FAA-BC8BB63BB77C1197"}' + body: '{"id": 2121, "label": "go-test-log-stream-1778070612105601000", "type": + "audit_logs", "destinations": [{"id": 1090, "type": "akamai_object_storage", + "label": "go-test-logs-destination-1778070610236920000", "details": {"host": + "go-test-logs-destination-1778070608785939000.pl-labkrk2-1.devcloud.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1778070608785939000", "access_key_id": + "L3G818UP71COR0RIMUAN"}}], "details": null, "version": 1, "status": "provisioning", + "created_by": "klipensk-aclp", "created": "2018-01-02T03:04:05", "updated_by": + "klipensk-aclp", "updated": "2018-01-02T03:04:05"}' headers: Access-Control-Allow-Credentials: - "true" @@ -309,25 +310,23 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive + Content-Length: + - "607" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Expires: - - Tue, 28 Apr 2026 09:17:35 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: - Authorization, X-Filter - - Authorization, X-Filter - - Accept-Encoding X-Accepted-Oauth-Scopes: - - account:read_only + - monitor:read_write X-Content-Type-Options: - nosniff X-Frame-Options: @@ -336,7 +335,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" + - "400" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -352,17 +351,17 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/150 + url: https://api.devcloud.linode.com/v4beta/monitor/streams/2121 method: GET response: - body: '{"id": 150, "label": "go-test-log-stream-1777367853935688000", "type": - "audit_logs", "destinations": [{"id": 299, "type": "akamai_object_storage", - "label": "go-test-logs-destination-1777367853154875000", "details": {"host": - "go-test-logs-destination-1777367849643592000.us-southeast-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1777367849643592000", "access_key_id": - "66U9V5UKWGH44VKCS1TM"}}], "details": null, "version": 1, "status": "active", - "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05Z", "updated_by": - "dola-klipensk", "updated": "2018-01-02T03:04:05Z"}' + body: '{"id": 2121, "label": "go-test-log-stream-1778070612105601000", "type": + "audit_logs", "destinations": [{"id": 1090, "type": "akamai_object_storage", + "label": "go-test-logs-destination-1778070610236920000", "details": {"host": + "go-test-logs-destination-1778070608785939000.pl-labkrk2-1.devcloud.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1778070608785939000", "access_key_id": + "L3G818UP71COR0RIMUAN"}}], "details": null, "version": 1, "status": "active", + "created_by": "klipensk-aclp", "created": "2018-01-02T03:04:05", "updated_by": + "klipensk-aclp", "updated": "2018-01-02T03:04:05"}' headers: Access-Control-Allow-Credentials: - "true" @@ -377,19 +376,18 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=0, s-maxage=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: - - "594" + - "602" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Expires: - - Tue, 28 Apr 2026 09:40:45 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: @@ -405,7 +403,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" + - "400" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -421,7 +419,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/150 + url: https://api.devcloud.linode.com/v4beta/monitor/streams/2121 method: DELETE response: body: '{}' @@ -439,7 +437,7 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: @@ -448,10 +446,8 @@ interactions: - default-src 'none' Content-Type: - application/json - Expires: - - Tue, 28 Apr 2026 09:40:45 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: @@ -466,7 +462,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" + - "400" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -482,7 +478,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/150 + url: https://api.devcloud.linode.com/v4beta/monitor/streams/2121 method: GET response: body: '{"errors": [{"reason": "Stream not found"}]}' @@ -496,19 +492,15 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=0, s-maxage=0, no-cache, no-store Connection: - keep-alive Content-Length: - "44" Content-Type: - application/json - Expires: - - Tue, 28 Apr 2026 09:40:46 GMT - Pragma: - - no-cache - Strict-Transport-Security: - - max-age=31536000 + Server: + - nginx Vary: - Authorization, X-Filter X-Accepted-Oauth-Scopes: @@ -518,8 +510,8 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" - status: 404 Not Found + - "400" + status: 404 NOT FOUND code: 404 duration: "" - request: @@ -532,7 +524,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/150 + url: https://api.devcloud.linode.com/v4beta/monitor/streams/2121 method: DELETE response: body: '{"errors": [{"reason": "Stream not found"}]}' @@ -545,20 +537,14 @@ interactions: - '*' Akamai-Internal-Account: - '*' - Cache-Control: - - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: - "44" Content-Type: - application/json - Expires: - - Tue, 28 Apr 2026 09:40:46 GMT - Pragma: - - no-cache - Strict-Transport-Security: - - max-age=31536000 + Server: + - nginx X-Accepted-Oauth-Scopes: - monitor:read_write X-Frame-Options: @@ -566,8 +552,8 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" - status: 404 Not Found + - "400" + status: 404 NOT FOUND code: 404 duration: "" - request: @@ -580,15 +566,15 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations/299 + url: https://api.devcloud.linode.com/v4beta/monitor/streams/destinations/1090 method: GET response: - body: '{"id": 299, "label": "go-test-logs-destination-1777367853154875000", "type": - "akamai_object_storage", "details": {"host": "go-test-logs-destination-1777367849643592000.us-southeast-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1777367849643592000", "access_key_id": - "66U9V5UKWGH44VKCS1TM"}, "version": 1, "status": "active", "created_by": "dola-klipensk", - "created": "2018-01-02T03:04:05Z", "updated_by": "dola-klipensk", "updated": - "2018-01-02T03:04:05Z"}' + body: '{"id": 1090, "label": "go-test-logs-destination-1778070610236920000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778070608785939000.pl-labkrk2-1.devcloud.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1778070608785939000", "access_key_id": + "L3G818UP71COR0RIMUAN"}, "version": 1, "status": "active", "created_by": "klipensk-aclp", + "created": "2018-01-02T03:04:05", "updated_by": "klipensk-aclp", "updated": + "2018-01-02T03:04:05"}' headers: Access-Control-Allow-Credentials: - "true" @@ -603,19 +589,18 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=0, s-maxage=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: - - "473" + - "479" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Expires: - - Tue, 28 Apr 2026 09:40:46 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: @@ -631,7 +616,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" + - "400" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -647,7 +632,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations/299 + url: https://api.devcloud.linode.com/v4beta/monitor/streams/destinations/1090 method: DELETE response: body: '{}' @@ -665,7 +650,7 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: @@ -674,10 +659,8 @@ interactions: - default-src 'none' Content-Type: - application/json - Expires: - - Tue, 28 Apr 2026 09:40:47 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: @@ -692,7 +675,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" + - "400" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -708,7 +691,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/keys/3461736 + url: https://api.devcloud.linode.com/v4beta/object-storage/keys/340229 method: DELETE response: body: '{}' @@ -726,7 +709,7 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: @@ -735,10 +718,8 @@ interactions: - default-src 'none' Content-Type: - application/json - Expires: - - Tue, 28 Apr 2026 09:40:47 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: @@ -753,7 +734,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "60" + - "12" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -769,18 +750,12 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast/go-test-logs-destination-1777367849643592000/object-list + url: https://api.devcloud.linode.com/v4beta/object-storage/buckets/pl-labkrk-2/go-test-logs-destination-1778070608785939000/object-list method: GET response: - body: '{"data": [{"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/28/akamai_log-043083-1777368782-158401-config.gz", - "size": 576, "last_modified": "2018-01-02T03:04:05.332Z", "etag": "184bb0deea447ccdfd1918eb09785352", - "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/28/akamai_log-120157-1777368391-729331-config.gz", - "size": 577, "last_modified": "2018-01-02T03:04:05.851Z", "etag": "3048be732eb3bbce798bd07eca9c58fc", - "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/28/akamai_log-499706-1777368221-191293-config.gz", - "size": 576, "last_modified": "2018-01-02T03:04:05.248Z", "etag": "6f23c8b53d0d692950643f509bae2362", - "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "cloud-logs-test-connection-20260428T091733", - "size": 9, "last_modified": "2018-01-02T03:04:05.721Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", - "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}], "next_marker": null, "is_truncated": + body: '{"data": [{"name": "cloud-logs-test-connection-20260506T123011", "size": + 9, "last_modified": "2018-01-02T03:04:05.426Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", + "owner": "512fe32a-48a2-4a57-8a11-0eef806858d3"}], "next_marker": null, "is_truncated": false}' headers: Access-Control-Allow-Credentials: @@ -796,211 +771,25 @@ interactions: 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: - - Tue, 28 Apr 2026 09:40:48 GMT - Pragma: - - no-cache - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization, X-Filter - - Authorization, X-Filter - - Accept-Encoding - X-Accepted-Oauth-Scopes: - - object_storage: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: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/28/akamai_log-043083-1777368782-158401-config.gz","method":"DELETE","expires_in":360}' - form: {} - headers: - Accept: - - application/json - Content-Type: - - application/json - User-Agent: - - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1777367849643592000/object-url - method: POST - response: - body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1777367849643592000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/28/akamai_log-043083-1777368782-158401-config.gz?Signature=nr5v3yvueUJ5yEuaZYPnUEgxyew%3D&Expires=1777369609&AWSAccessKeyID=SANITIZED", - "exists": true}' - headers: - Access-Control-Allow-Credentials: - - "true" - Access-Control-Allow-Headers: - - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter - Access-Control-Allow-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: - - "333" - Content-Security-Policy: - - default-src 'none' - Content-Type: - - application/json - Expires: - - Tue, 28 Apr 2026 09:40:49 GMT - Pragma: - - no-cache - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization, X-Filter - X-Accepted-Oauth-Scopes: - - object_storage: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: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/28/akamai_log-120157-1777368391-729331-config.gz","method":"DELETE","expires_in":360}' - form: {} - headers: - Accept: - - application/json - Content-Type: - - application/json - User-Agent: - - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1777367849643592000/object-url - method: POST - response: - body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1777367849643592000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/28/akamai_log-120157-1777368391-729331-config.gz?Signature=UnFOAfqbZ1P7TYTwrylpyiyXyxA%3D&Expires=1777369612&AWSAccessKeyID=SANITIZED", - "exists": true}' - headers: - Access-Control-Allow-Credentials: - - "true" - Access-Control-Allow-Headers: - - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter - Access-Control-Allow-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 + - private, max-age=0, s-maxage=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: - - "333" + - "259" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Expires: - - Tue, 28 Apr 2026 09:40:52 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: - Authorization, X-Filter - X-Accepted-Oauth-Scopes: - - object_storage: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: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/28/akamai_log-499706-1777368221-191293-config.gz","method":"DELETE","expires_in":360}' - form: {} - headers: - Accept: - - application/json - Content-Type: - - application/json - User-Agent: - - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1777367849643592000/object-url - method: POST - response: - body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1777367849643592000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/28/akamai_log-499706-1777368221-191293-config.gz?Signature=rrzk61uUAuXJcdJu30GWOhJ2YV4%3D&Expires=1777369614&AWSAccessKeyID=SANITIZED", - "exists": true}' - headers: - Access-Control-Allow-Credentials: - - "true" - Access-Control-Allow-Headers: - - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter - Access-Control-Allow-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: - - "333" - Content-Security-Policy: - - default-src 'none' - Content-Type: - - application/json - Expires: - - Tue, 28 Apr 2026 09:40:54 GMT - Pragma: - - no-cache - Strict-Transport-Security: - - max-age=31536000 - Vary: - Authorization, X-Filter X-Accepted-Oauth-Scopes: - - object_storage:read_write + - object_storage:read_only X-Content-Type-Options: - nosniff X-Frame-Options: @@ -1009,14 +798,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" + - "400" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"name":"cloud-logs-test-connection-20260428T091733","method":"DELETE","expires_in":360}' + body: '{"name":"cloud-logs-test-connection-20260506T123011","method":"DELETE","expires_in":360}' form: {} headers: Accept: @@ -1025,10 +814,10 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1777367849643592000/object-url + url: https://api.devcloud.linode.com/v4beta/object-storage/buckets/pl-labkrk2-1/go-test-logs-destination-1778070608785939000/object-url method: POST response: - body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1777367849643592000/cloud-logs-test-connection-20260428T091733?Signature=gJUMHjXFw%2FRqFiVDE388p2ruja0%3D&Expires=1777369617&AWSAccessKeyID=SANITIZED", + body: '{"url": "https://pl-labkrk2-1.devcloud.linodeobjects.com:443/go-test-logs-destination-1778070608785939000/cloud-logs-test-connection-20260506T123011?Signature=HbmeMtjF%2Fx7Wd8ZdtcFy%2BTmhZ8c%3D&Expires=1778072775&AWSAccessKeyID=SANITIZED", "exists": true}' headers: Access-Control-Allow-Credentials: @@ -1044,19 +833,17 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: - - "257" + - "266" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Expires: - - Tue, 28 Apr 2026 09:40:57 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: @@ -1071,7 +858,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" + - "400" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -1087,7 +874,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast/go-test-logs-destination-1777367849643592000 + url: https://api.devcloud.linode.com/v4beta/object-storage/buckets/pl-labkrk-2/go-test-logs-destination-1778070608785939000 method: DELETE response: body: '{}' @@ -1105,7 +892,7 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: @@ -1114,10 +901,8 @@ interactions: - default-src 'none' Content-Type: - application/json - Expires: - - Tue, 28 Apr 2026 09:41:00 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: @@ -1132,7 +917,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" + - "400" X-Xss-Protection: - 1; mode=block status: 200 OK diff --git a/test/integration/fixtures/TestLogStream_Get.yaml b/test/integration/fixtures/TestLogStream_Get.yaml index ffe1b3489..29f49824c 100644 --- a/test/integration/fixtures/TestLogStream_Get.yaml +++ b/test/integration/fixtures/TestLogStream_Get.yaml @@ -2,7 +2,7 @@ version: 1 interactions: - request: - body: '{"region":"us-southeast","label":"go-test-logs-destination-1777380933768752000","acl":"private","cors_enabled":false}' + body: "" form: {} headers: Accept: @@ -11,13 +11,37 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets - method: POST + url: https://api.devcloud.linode.com/v4beta/regions?page=1 + method: GET response: - body: '{"hostname": "go-test-logs-destination-1777380933768752000.us-southeast-1.linodeobjects.com", - "label": "go-test-logs-destination-1777380933768752000", "created": "2018-01-02T03:04:05", - "region": "us-southeast", "cluster": "us-southeast-1", "size": 0, "objects": - 0, "endpoint_type": "E0", "s3_endpoint": "us-southeast-1.linodeobjects.com"}' + body: '{"data": [{"id": "pl-labkrk-2", "label": "Krakow, PL", "country": "pl", + "capabilities": ["Linodes", "Block Storage Encryption", "LA Disk Encryption", + "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", "Object Storage", + "GPU Linodes", "Kubernetes", "Kubernetes Enterprise", "Cloud Firewall", "Vlans", + "VPCs", "Block Storage Migrations", "Managed Databases", "Metadata", "Premium + Plans", "Placement Group", "StackScripts", "NETINT Quadra T1U", "Maintenance + Policy", "Linode Interfaces", "Network LoadBalancer", "ACLP Logs Datacenter + LKE-E"], "monitors": {"alerts": ["Block Storage", "Cloud Firewall", "Kubernetes", + "Linodes", "Managed Databases", "Network LoadBalancer", "NodeBalancers", "Object + Storage", "logs"], "metrics": ["Block Storage", "Cloud Firewall", "Kubernetes", + "Linodes", "Managed Databases", "Network LoadBalancer", "NodeBalancers", "Object + Storage", "logs"]}, "status": "ok", "resolvers": {"ipv4": "172.24.224.240,172.24.224.229,172.24.224.236,172.24.224.238,172.24.224.235,172.24.224.241,172.24.224.230,172.24.224.239,172.24.224.233,172.24.224.234", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-labedgeeat-2", + "label": "East Wenatchee, US", "country": "us", "capabilities": ["Linodes", + "Disk Encryption", "Cloud Firewall", "Vlans", "VPCs", "Metadata", "Distributed + Plans", "Linode Interfaces"], "monitors": {"alerts": [], "metrics": []}, "status": + "ok", "resolvers": {"ipv4": "173.223.100.53,173.223.101.53", "ipv6": "1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": 0, "maximum_linodes_per_pg": + 0, "maximum_linodes_per_flexible_pg": 0}, "site_type": "distributed"}, {"id": + "us-labedgeeat-3", "label": "East Wenatchee, US", "country": "us", "capabilities": + ["Linodes", "Disk Encryption", "Cloud Firewall", "Metadata", "Distributed Plans"], + "monitors": {"alerts": [], "metrics": []}, "status": "ok", "resolvers": {"ipv4": + "173.223.100.53,173.223.101.53", "ipv6": "1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": 0, "maximum_linodes_per_pg": + 0, "maximum_linodes_per_flexible_pg": 0}, "site_type": "distributed"}], "page": + 1, "pages": 1, "results": 3}' headers: Access-Control-Allow-Credentials: - "true" @@ -32,25 +56,23 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=900 + - private, max-age=60, s-maxage=60 Connection: - keep-alive - Content-Length: - - "338" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Expires: - - Tue, 28 Apr 2026 12:55:34 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: - Authorization, X-Filter + - Authorization, X-Filter X-Accepted-Oauth-Scopes: - - object_storage:read_write + - '*' X-Content-Type-Options: - nosniff X-Frame-Options: @@ -59,14 +81,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "60" + - "400" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1777380934902008000"}' + body: '{"region":"pl-labkrk-2","label":"go-test-logs-destination-1778077361692714000","acl":"private","cors_enabled":false}' form: {} headers: Accept: @@ -75,21 +97,13 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/keys + url: https://api.devcloud.linode.com/v4beta/object-storage/buckets method: POST response: - body: '{"id": 3463942, "label": "go-test-logs-destination-1777380934902008000", - "access_key": "M1ETFMYI6C8F1QGPP6XC", "secret_key": "VonqEkac2ZPqLsrJ6amstGOXGByW4M52i3YzLQ4A", - "limited": false, "bucket_access": null, "regions": [{"id": "us-east", "s3_endpoint": - "us-east-1.linodeobjects.com", "endpoint_type": "E0"}, {"id": "us-iad", "s3_endpoint": - "us-iad-10.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-lax", "s3_endpoint": - "us-lax-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-lax", "s3_endpoint": - "us-lax-4.linodeobjects.com", "endpoint_type": "E3"}, {"id": "us-mia", "s3_endpoint": - "us-mia-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-ord", "s3_endpoint": - "us-ord-10.linodeobjects.com", "endpoint_type": "E3"}, {"id": "us-ord", "s3_endpoint": - "us-ord-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-sea", "s3_endpoint": - "us-sea-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-southeast", - "s3_endpoint": "us-southeast-1.linodeobjects.com", "endpoint_type": "E0"}]}' + body: '{"hostname": "go-test-logs-destination-1778077361692714000.pl-labkrk2-1.devcloud.linodeobjects.com", + "label": "go-test-logs-destination-1778077361692714000", "created": "2018-01-02T03:04:05", + "region": "pl-labkrk-2", "cluster": "pl-labkrk2-1", "size": 0, "objects": 0, + "endpoint_type": "E1", "s3_endpoint": "pl-labkrk2-1.devcloud.linodeobjects.com"}' headers: Access-Control-Allow-Credentials: - "true" @@ -104,22 +118,21 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive + Content-Length: + - "349" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Expires: - - Tue, 28 Apr 2026 12:55:37 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: - Authorization, X-Filter - - Accept-Encoding X-Accepted-Oauth-Scopes: - object_storage:read_write X-Content-Type-Options: @@ -130,14 +143,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "60" + - "12" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1777380937067141000","type":"akamai_object_storage","details":{"access_key_id":"M1ETFMYI6C8F1QGPP6XC","access_key_secret":"VonqEkac2ZPqLsrJ6amstGOXGByW4M52i3YzLQ4A","bucket_name":"go-test-logs-destination-1777380933768752000","host":"go-test-logs-destination-1777380933768752000.us-southeast-1.linodeobjects.com"}}' + body: '{"label":"go-test-logs-destination-1778077362450834000"}' form: {} headers: Accept: @@ -146,15 +159,13 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations + url: https://api.devcloud.linode.com/v4beta/object-storage/keys method: POST response: - body: '{"id": 304, "label": "go-test-logs-destination-1777380937067141000", "type": - "akamai_object_storage", "details": {"host": "go-test-logs-destination-1777380933768752000.us-southeast-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1777380933768752000", "access_key_id": - "M1ETFMYI6C8F1QGPP6XC"}, "version": 1, "status": "active", "created_by": "dola-klipensk", - "created": "2018-01-02T03:04:05Z", "updated_by": "dola-klipensk", "updated": - "2018-01-02T03:04:05Z"}' + body: '{"id": 340471, "label": "go-test-logs-destination-1778077362450834000", + "access_key": "[SANITIZED]", "secret_key": "[SANITIZED]", "limited": false, + "bucket_access": null, "regions": [{"id": "pl-labkrk-2", "s3_endpoint": "pl-labkrk2-1.devcloud.linodeobjects.com", + "endpoint_type": "E1"}]}' headers: Access-Control-Allow-Credentials: - "true" @@ -169,25 +180,23 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: - - "473" + - "325" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Expires: - - Tue, 28 Apr 2026 12:55:37 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: - Authorization, X-Filter X-Accepted-Oauth-Scopes: - - monitor:read_write + - object_storage:read_write X-Content-Type-Options: - nosniff X-Frame-Options: @@ -196,14 +205,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" + - "12" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"destinations":[304],"label":"go-test-log-stream-1777380937845106000","type":"audit_logs"}' + body: '{"label":"go-test-logs-destination-1778077363114776000","type":"akamai_object_storage","details":{"access_key_id":"KU09RCXVUJUB9I7Q6ZSD","access_key_secret":"GswNLX4wQRRLeDwYIsyolZJjREZ77H5XZaBYcw5L","bucket_name":"go-test-logs-destination-1778077361692714000","host":"go-test-logs-destination-1778077361692714000.pl-labkrk2-1.devcloud.linodeobjects.com"}}' form: {} headers: Accept: @@ -212,17 +221,15 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams + url: https://api.devcloud.linode.com/v4beta/monitor/streams/destinations method: POST response: - body: '{"id": 154, "label": "go-test-log-stream-1777380937845106000", "type": - "audit_logs", "destinations": [{"id": 304, "type": "akamai_object_storage", - "label": "go-test-logs-destination-1777380937067141000", "details": {"host": - "go-test-logs-destination-1777380933768752000.us-southeast-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1777380933768752000", "access_key_id": - "M1ETFMYI6C8F1QGPP6XC"}}], "details": null, "version": 1, "status": "provisioning", - "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05Z", "updated_by": - "dola-klipensk", "updated": "2018-01-02T03:04:05Z"}' + body: '{"id": 1094, "label": "go-test-logs-destination-1778077363114776000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778077361692714000.pl-labkrk2-1.devcloud.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1778077361692714000", "access_key_id": + "KU09RCXVUJUB9I7Q6ZSD"}, "version": 1, "status": "active", "created_by": "klipensk-aclp", + "created": "2018-01-02T03:04:05", "updated_by": "klipensk-aclp", "updated": + "2018-01-02T03:04:05"}' headers: Access-Control-Allow-Credentials: - "true" @@ -237,19 +244,17 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: - - "600" + - "479" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Expires: - - Tue, 28 Apr 2026 12:55:38 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: @@ -264,14 +269,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" + - "400" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: "" + body: '{"destinations":[1094],"label":"go-test-log-stream-1778077365217644000","type":"audit_logs"}' form: {} headers: Accept: @@ -280,21 +285,17 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/account - method: GET + url: https://api.devcloud.linode.com/v4beta/monitor/streams + method: POST response: - body: '{"company": "Akamai Technologies - Edge Experience - Dola", "email": "dl-pdx-dw-dola@akamai.com", - "first_name": "", "last_name": "", "address_1": "", "address_2": "", "city": - "", "state": "MA", "zip": "02142", "country": "US", "phone": "", "balance": - 0.0, "tax_id": "", "billing_source": "linode", "credit_card": {"last_four": - null, "expiry": null}, "balance_uninvoiced": 0.0, "active_since": "2018-01-02T03:04:05", - "capabilities": ["Linodes", "NodeBalancers", "Block Storage", "Object Storage", - "Kubernetes", "Cloud Firewall", "Vlans", "LKE HA Control Planes", "VPCs", "Block - Storage Encryption", "Machine Images", "Managed Databases", "Akamai Cloud Pulse - Logs", "LKE Network Access Control List (IP ACL)", "Placement Group", "Object - Storage Access Key Regions", "Object Storage Endpoint Types", "Disk Encryption", - "LA Disk Encryption", "SMTP Enabled", "NETINT Quadra T1U", "Linode Interfaces"], - "active_promotions": [], "euuid": "BED02C05-67D6-4FAA-BC8BB63BB77C1197"}' + body: '{"id": 2124, "label": "go-test-log-stream-1778077365217644000", "type": + "audit_logs", "destinations": [{"id": 1094, "type": "akamai_object_storage", + "label": "go-test-logs-destination-1778077363114776000", "details": {"host": + "go-test-logs-destination-1778077361692714000.pl-labkrk2-1.devcloud.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1778077361692714000", "access_key_id": + "KU09RCXVUJUB9I7Q6ZSD"}}], "details": null, "version": 1, "status": "provisioning", + "created_by": "klipensk-aclp", "created": "2018-01-02T03:04:05", "updated_by": + "klipensk-aclp", "updated": "2018-01-02T03:04:05"}' headers: Access-Control-Allow-Credentials: - "true" @@ -309,25 +310,23 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive + Content-Length: + - "607" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Expires: - - Tue, 28 Apr 2026 12:55:38 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: - Authorization, X-Filter - - Authorization, X-Filter - - Accept-Encoding X-Accepted-Oauth-Scopes: - - account:read_only + - monitor:read_write X-Content-Type-Options: - nosniff X-Frame-Options: @@ -336,7 +335,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" + - "400" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -352,17 +351,17 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/154 + url: https://api.devcloud.linode.com/v4beta/monitor/streams/2124 method: GET response: - body: '{"id": 154, "label": "go-test-log-stream-1777380937845106000", "type": - "audit_logs", "destinations": [{"id": 304, "type": "akamai_object_storage", - "label": "go-test-logs-destination-1777380937067141000", "details": {"host": - "go-test-logs-destination-1777380933768752000.us-southeast-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1777380933768752000", "access_key_id": - "M1ETFMYI6C8F1QGPP6XC"}}], "details": null, "version": 1, "status": "active", - "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05Z", "updated_by": - "dola-klipensk", "updated": "2018-01-02T03:04:05Z"}' + body: '{"id": 2124, "label": "go-test-log-stream-1778077365217644000", "type": + "audit_logs", "destinations": [{"id": 1094, "type": "akamai_object_storage", + "label": "go-test-logs-destination-1778077363114776000", "details": {"host": + "go-test-logs-destination-1778077361692714000.pl-labkrk2-1.devcloud.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1778077361692714000", "access_key_id": + "KU09RCXVUJUB9I7Q6ZSD"}}], "details": null, "version": 1, "status": "active", + "created_by": "klipensk-aclp", "created": "2018-01-02T03:04:05", "updated_by": + "klipensk-aclp", "updated": "2018-01-02T03:04:05"}' headers: Access-Control-Allow-Credentials: - "true" @@ -377,19 +376,18 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=0, s-maxage=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: - - "594" + - "602" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Expires: - - Tue, 28 Apr 2026 13:40:59 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: @@ -405,7 +403,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" + - "400" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -421,17 +419,17 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/154 + url: https://api.devcloud.linode.com/v4beta/monitor/streams/2124 method: GET response: - body: '{"id": 154, "label": "go-test-log-stream-1777380937845106000", "type": - "audit_logs", "destinations": [{"id": 304, "type": "akamai_object_storage", - "label": "go-test-logs-destination-1777380937067141000", "details": {"host": - "go-test-logs-destination-1777380933768752000.us-southeast-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1777380933768752000", "access_key_id": - "M1ETFMYI6C8F1QGPP6XC"}}], "details": null, "version": 1, "status": "active", - "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05Z", "updated_by": - "dola-klipensk", "updated": "2018-01-02T03:04:05Z"}' + body: '{"id": 2124, "label": "go-test-log-stream-1778077365217644000", "type": + "audit_logs", "destinations": [{"id": 1094, "type": "akamai_object_storage", + "label": "go-test-logs-destination-1778077363114776000", "details": {"host": + "go-test-logs-destination-1778077361692714000.pl-labkrk2-1.devcloud.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1778077361692714000", "access_key_id": + "KU09RCXVUJUB9I7Q6ZSD"}}], "details": null, "version": 1, "status": "active", + "created_by": "klipensk-aclp", "created": "2018-01-02T03:04:05", "updated_by": + "klipensk-aclp", "updated": "2018-01-02T03:04:05"}' headers: Access-Control-Allow-Credentials: - "true" @@ -446,19 +444,18 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=0, s-maxage=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: - - "594" + - "601" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Expires: - - Tue, 28 Apr 2026 13:40:59 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: @@ -474,7 +471,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" + - "400" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -490,7 +487,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/154 + url: https://api.devcloud.linode.com/v4beta/monitor/streams/2124 method: DELETE response: body: '{}' @@ -508,7 +505,7 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: @@ -517,10 +514,8 @@ interactions: - default-src 'none' Content-Type: - application/json - Expires: - - Tue, 28 Apr 2026 13:41:00 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: @@ -535,7 +530,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" + - "400" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -551,15 +546,15 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations/304 + url: https://api.devcloud.linode.com/v4beta/monitor/streams/destinations/1094 method: GET response: - body: '{"id": 304, "label": "go-test-logs-destination-1777380937067141000", "type": - "akamai_object_storage", "details": {"host": "go-test-logs-destination-1777380933768752000.us-southeast-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1777380933768752000", "access_key_id": - "M1ETFMYI6C8F1QGPP6XC"}, "version": 1, "status": "active", "created_by": "dola-klipensk", - "created": "2018-01-02T03:04:05Z", "updated_by": "dola-klipensk", "updated": - "2018-01-02T03:04:05Z"}' + body: '{"id": 1094, "label": "go-test-logs-destination-1778077363114776000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778077361692714000.pl-labkrk2-1.devcloud.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1778077361692714000", "access_key_id": + "KU09RCXVUJUB9I7Q6ZSD"}, "version": 1, "status": "active", "created_by": "klipensk-aclp", + "created": "2018-01-02T03:04:05", "updated_by": "klipensk-aclp", "updated": + "2018-01-02T03:04:05"}' headers: Access-Control-Allow-Credentials: - "true" @@ -574,19 +569,18 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=0, s-maxage=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: - - "473" + - "479" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Expires: - - Tue, 28 Apr 2026 13:41:00 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: @@ -602,7 +596,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" + - "400" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -618,7 +612,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations/304 + url: https://api.devcloud.linode.com/v4beta/monitor/streams/destinations/1094 method: DELETE response: body: '{}' @@ -636,7 +630,7 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: @@ -645,10 +639,8 @@ interactions: - default-src 'none' Content-Type: - application/json - Expires: - - Tue, 28 Apr 2026 13:41:01 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: @@ -663,7 +655,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" + - "400" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -679,7 +671,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/keys/3463942 + url: https://api.devcloud.linode.com/v4beta/object-storage/keys/340471 method: DELETE response: body: '{}' @@ -697,7 +689,7 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: @@ -706,10 +698,8 @@ interactions: - default-src 'none' Content-Type: - application/json - Expires: - - Tue, 28 Apr 2026 13:41:01 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: @@ -724,7 +714,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "60" + - "12" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -740,22 +730,12 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast/go-test-logs-destination-1777380933768752000/object-list + url: https://api.devcloud.linode.com/v4beta/object-storage/buckets/pl-labkrk-2/go-test-logs-destination-1778077361692714000/object-list method: GET response: - body: '{"data": [{"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/28/akamai_log-109980-1777383461-081657-config.gz", - "size": 821, "last_modified": "2018-01-02T03:04:05.417Z", "etag": "c6e55c876a666b39909f0596cb404891", - "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/28/akamai_log-220626-1777383256-610362-config.gz", - "size": 577, "last_modified": "2018-01-02T03:04:05.761Z", "etag": "84175b07ccef9c81babf6b6a6285c57e", - "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/28/akamai_log-326411-1777383509-948565-config.gz", - "size": 578, "last_modified": "2018-01-02T03:04:05.240Z", "etag": "a4dfe3d8f5baa0b4fda63fb66261556a", - "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/28/akamai_log-351678-1777383464-097526-config.gz", - "size": 696, "last_modified": "2018-01-02T03:04:05.267Z", "etag": "156df00fcd1ed771db2ca6274f141bff", - "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/28/akamai_log-988336-1777382392-381517-config.gz", - "size": 577, "last_modified": "2018-01-02T03:04:05.869Z", "etag": "2f9b36a49ab2d75cbcbf1ef327b08d6c", - "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "cloud-logs-test-connection-20260428T125537", - "size": 9, "last_modified": "2018-01-02T03:04:05.686Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", - "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}], "next_marker": null, "is_truncated": + body: '{"data": [{"name": "cloud-logs-test-connection-20260506T142244", "size": + 9, "last_modified": "2018-01-02T03:04:05.400Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", + "owner": "512fe32a-48a2-4a57-8a11-0eef806858d3"}], "next_marker": null, "is_truncated": false}' headers: Access-Control-Allow-Credentials: @@ -771,335 +751,25 @@ interactions: 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: - - Tue, 28 Apr 2026 13:41:02 GMT - Pragma: - - no-cache - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization, X-Filter - - Authorization, X-Filter - - Accept-Encoding - X-Accepted-Oauth-Scopes: - - object_storage: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: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/28/akamai_log-109980-1777383461-081657-config.gz","method":"DELETE","expires_in":360}' - form: {} - headers: - Accept: - - application/json - Content-Type: - - application/json - User-Agent: - - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1777380933768752000/object-url - method: POST - response: - body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1777380933768752000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/28/akamai_log-109980-1777383461-081657-config.gz?Signature=Nulmc4%2FYdS5rj5DB5KyqrlJP3S4%3D&Expires=1777384024&AWSAccessKeyID=SANITIZED", - "exists": true}' - headers: - Access-Control-Allow-Credentials: - - "true" - Access-Control-Allow-Headers: - - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter - Access-Control-Allow-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 + - private, max-age=0, s-maxage=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: - - "335" + - "259" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Expires: - - Tue, 28 Apr 2026 13:41:04 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: - Authorization, X-Filter - X-Accepted-Oauth-Scopes: - - object_storage: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: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/28/akamai_log-220626-1777383256-610362-config.gz","method":"DELETE","expires_in":360}' - form: {} - headers: - Accept: - - application/json - Content-Type: - - application/json - User-Agent: - - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1777380933768752000/object-url - method: POST - response: - body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1777380933768752000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/28/akamai_log-220626-1777383256-610362-config.gz?Signature=e3GxKAKh0L6kAWOw9uYI%2FwvhkQU%3D&Expires=1777384027&AWSAccessKeyID=SANITIZED", - "exists": true}' - headers: - Access-Control-Allow-Credentials: - - "true" - Access-Control-Allow-Headers: - - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter - Access-Control-Allow-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: - - "335" - Content-Security-Policy: - - default-src 'none' - Content-Type: - - application/json - Expires: - - Tue, 28 Apr 2026 13:41:07 GMT - Pragma: - - no-cache - Strict-Transport-Security: - - max-age=31536000 - Vary: - Authorization, X-Filter X-Accepted-Oauth-Scopes: - - object_storage: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: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/28/akamai_log-326411-1777383509-948565-config.gz","method":"DELETE","expires_in":360}' - form: {} - headers: - Accept: - - application/json - Content-Type: - - application/json - User-Agent: - - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1777380933768752000/object-url - method: POST - response: - body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1777380933768752000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/28/akamai_log-326411-1777383509-948565-config.gz?Signature=ppzloXkoJgAvjYMipq9qy6bIjIg%3D&Expires=1777384029&AWSAccessKeyID=SANITIZED", - "exists": true}' - headers: - Access-Control-Allow-Credentials: - - "true" - Access-Control-Allow-Headers: - - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter - Access-Control-Allow-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: - - "333" - Content-Security-Policy: - - default-src 'none' - Content-Type: - - application/json - Expires: - - Tue, 28 Apr 2026 13:41:09 GMT - Pragma: - - no-cache - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization, X-Filter - X-Accepted-Oauth-Scopes: - - object_storage: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: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/28/akamai_log-351678-1777383464-097526-config.gz","method":"DELETE","expires_in":360}' - form: {} - headers: - Accept: - - application/json - Content-Type: - - application/json - User-Agent: - - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1777380933768752000/object-url - method: POST - response: - body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1777380933768752000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/28/akamai_log-351678-1777383464-097526-config.gz?Signature=OpEd6RueuQD%2BYzT6L0i6OCSJt2A%3D&Expires=1777384032&AWSAccessKeyID=SANITIZED", - "exists": true}' - headers: - Access-Control-Allow-Credentials: - - "true" - Access-Control-Allow-Headers: - - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter - Access-Control-Allow-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: - - "335" - Content-Security-Policy: - - default-src 'none' - Content-Type: - - application/json - Expires: - - Tue, 28 Apr 2026 13:41:12 GMT - Pragma: - - no-cache - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization, X-Filter - X-Accepted-Oauth-Scopes: - - object_storage: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: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/28/akamai_log-988336-1777382392-381517-config.gz","method":"DELETE","expires_in":360}' - form: {} - headers: - Accept: - - application/json - Content-Type: - - application/json - User-Agent: - - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1777380933768752000/object-url - method: POST - response: - body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1777380933768752000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/28/akamai_log-988336-1777382392-381517-config.gz?Signature=ClCbni2if0IgkdPtRCLctq0WOKI%3D&Expires=1777384033&AWSAccessKeyID=SANITIZED", - "exists": true}' - headers: - Access-Control-Allow-Credentials: - - "true" - Access-Control-Allow-Headers: - - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter - Access-Control-Allow-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: - - "333" - Content-Security-Policy: - - default-src 'none' - Content-Type: - - application/json - Expires: - - Tue, 28 Apr 2026 13:41:13 GMT - Pragma: - - no-cache - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization, X-Filter - X-Accepted-Oauth-Scopes: - - object_storage:read_write + - object_storage:read_only X-Content-Type-Options: - nosniff X-Frame-Options: @@ -1108,14 +778,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" + - "400" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"name":"cloud-logs-test-connection-20260428T125537","method":"DELETE","expires_in":360}' + body: '{"name":"cloud-logs-test-connection-20260506T142244","method":"DELETE","expires_in":360}' form: {} headers: Accept: @@ -1124,10 +794,10 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1777380933768752000/object-url + url: https://api.devcloud.linode.com/v4beta/object-storage/buckets/pl-labkrk2-1/go-test-logs-destination-1778077361692714000/object-url method: POST response: - body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1777380933768752000/cloud-logs-test-connection-20260428T125537?Signature=XC3ffUNVIOuyjSskJdtzJIWByl8%3D&Expires=1777384035&AWSAccessKeyID=SANITIZED", + body: '{"url": "https://pl-labkrk2-1.devcloud.linodeobjects.com:443/go-test-logs-destination-1778077361692714000/cloud-logs-test-connection-20260506T142244?Signature=aum22VqPehBfdia9VBm5RsHOLrw%3D&Expires=1778079713&AWSAccessKeyID=SANITIZED", "exists": true}' headers: Access-Control-Allow-Credentials: @@ -1143,19 +813,17 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: - - "255" + - "262" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Expires: - - Tue, 28 Apr 2026 13:41:15 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: @@ -1170,7 +838,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" + - "400" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -1186,7 +854,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast/go-test-logs-destination-1777380933768752000 + url: https://api.devcloud.linode.com/v4beta/object-storage/buckets/pl-labkrk-2/go-test-logs-destination-1778077361692714000 method: DELETE response: body: '{}' @@ -1204,7 +872,7 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: @@ -1213,10 +881,8 @@ interactions: - default-src 'none' Content-Type: - application/json - Expires: - - Tue, 28 Apr 2026 13:41:19 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: @@ -1231,7 +897,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" + - "400" X-Xss-Protection: - 1; mode=block status: 200 OK diff --git a/test/integration/fixtures/TestLogStream_List.yaml b/test/integration/fixtures/TestLogStream_List.yaml index 4d8b1c768..707a558f7 100644 --- a/test/integration/fixtures/TestLogStream_List.yaml +++ b/test/integration/fixtures/TestLogStream_List.yaml @@ -2,7 +2,7 @@ version: 1 interactions: - request: - body: '{"region":"us-southeast","label":"go-test-logs-destination-1777378576952108000","acl":"private","cors_enabled":false}' + body: "" form: {} headers: Accept: @@ -11,13 +11,37 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets - method: POST + url: https://api.devcloud.linode.com/v4beta/regions?page=1 + method: GET response: - body: '{"hostname": "go-test-logs-destination-1777378576952108000.us-southeast-1.linodeobjects.com", - "label": "go-test-logs-destination-1777378576952108000", "created": "2018-01-02T03:04:05", - "region": "us-southeast", "cluster": "us-southeast-1", "size": 0, "objects": - 0, "endpoint_type": "E0", "s3_endpoint": "us-southeast-1.linodeobjects.com"}' + body: '{"data": [{"id": "pl-labkrk-2", "label": "Krakow, PL", "country": "pl", + "capabilities": ["Linodes", "Block Storage Encryption", "LA Disk Encryption", + "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", "Object Storage", + "GPU Linodes", "Kubernetes", "Kubernetes Enterprise", "Cloud Firewall", "Vlans", + "VPCs", "Block Storage Migrations", "Managed Databases", "Metadata", "Premium + Plans", "Placement Group", "StackScripts", "NETINT Quadra T1U", "Maintenance + Policy", "Linode Interfaces", "Network LoadBalancer", "ACLP Logs Datacenter + LKE-E"], "monitors": {"alerts": ["Block Storage", "Cloud Firewall", "Kubernetes", + "Linodes", "Managed Databases", "Network LoadBalancer", "NodeBalancers", "Object + Storage", "logs"], "metrics": ["Block Storage", "Cloud Firewall", "Kubernetes", + "Linodes", "Managed Databases", "Network LoadBalancer", "NodeBalancers", "Object + Storage", "logs"]}, "status": "ok", "resolvers": {"ipv4": "172.24.224.240,172.24.224.229,172.24.224.236,172.24.224.238,172.24.224.235,172.24.224.241,172.24.224.230,172.24.224.239,172.24.224.233,172.24.224.234", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-labedgeeat-2", + "label": "East Wenatchee, US", "country": "us", "capabilities": ["Linodes", + "Disk Encryption", "Cloud Firewall", "Vlans", "VPCs", "Metadata", "Distributed + Plans", "Linode Interfaces"], "monitors": {"alerts": [], "metrics": []}, "status": + "ok", "resolvers": {"ipv4": "173.223.100.53,173.223.101.53", "ipv6": "1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": 0, "maximum_linodes_per_pg": + 0, "maximum_linodes_per_flexible_pg": 0}, "site_type": "distributed"}, {"id": + "us-labedgeeat-3", "label": "East Wenatchee, US", "country": "us", "capabilities": + ["Linodes", "Disk Encryption", "Cloud Firewall", "Metadata", "Distributed Plans"], + "monitors": {"alerts": [], "metrics": []}, "status": "ok", "resolvers": {"ipv4": + "173.223.100.53,173.223.101.53", "ipv6": "1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": 0, "maximum_linodes_per_pg": + 0, "maximum_linodes_per_flexible_pg": 0}, "site_type": "distributed"}], "page": + 1, "pages": 1, "results": 3}' headers: Access-Control-Allow-Credentials: - "true" @@ -32,25 +56,23 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=900 + - private, max-age=60, s-maxage=60 Connection: - keep-alive - Content-Length: - - "338" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Expires: - - Tue, 28 Apr 2026 12:16:18 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: - Authorization, X-Filter + - Authorization, X-Filter X-Accepted-Oauth-Scopes: - - object_storage:read_write + - '*' X-Content-Type-Options: - nosniff X-Frame-Options: @@ -59,14 +81,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "60" + - "400" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1777378577976714000"}' + body: '{"region":"pl-labkrk-2","label":"go-test-logs-destination-1778075037875407000","acl":"private","cors_enabled":false}' form: {} headers: Accept: @@ -75,21 +97,13 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/keys + url: https://api.devcloud.linode.com/v4beta/object-storage/buckets method: POST response: - body: '{"id": 3463554, "label": "go-test-logs-destination-1777378577976714000", - "access_key": "D8M9PZ1CZPNBRYX0UCV6", "secret_key": "Pnzi7JxNPg7dfcozJVlsRKeJ1FcxaXAxDivs13ZI", - "limited": false, "bucket_access": null, "regions": [{"id": "us-east", "s3_endpoint": - "us-east-1.linodeobjects.com", "endpoint_type": "E0"}, {"id": "us-iad", "s3_endpoint": - "us-iad-10.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-lax", "s3_endpoint": - "us-lax-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-lax", "s3_endpoint": - "us-lax-4.linodeobjects.com", "endpoint_type": "E3"}, {"id": "us-mia", "s3_endpoint": - "us-mia-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-ord", "s3_endpoint": - "us-ord-10.linodeobjects.com", "endpoint_type": "E3"}, {"id": "us-ord", "s3_endpoint": - "us-ord-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-sea", "s3_endpoint": - "us-sea-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-southeast", - "s3_endpoint": "us-southeast-1.linodeobjects.com", "endpoint_type": "E0"}]}' + body: '{"hostname": "go-test-logs-destination-1778075037875407000.pl-labkrk2-1.devcloud.linodeobjects.com", + "label": "go-test-logs-destination-1778075037875407000", "created": "2018-01-02T03:04:05", + "region": "pl-labkrk-2", "cluster": "pl-labkrk2-1", "size": 0, "objects": 0, + "endpoint_type": "E1", "s3_endpoint": "pl-labkrk2-1.devcloud.linodeobjects.com"}' headers: Access-Control-Allow-Credentials: - "true" @@ -104,22 +118,21 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive + Content-Length: + - "349" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Expires: - - Tue, 28 Apr 2026 12:16:21 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: - Authorization, X-Filter - - Accept-Encoding X-Accepted-Oauth-Scopes: - object_storage:read_write X-Content-Type-Options: @@ -130,14 +143,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "60" + - "12" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1777378581049333000","type":"akamai_object_storage","details":{"access_key_id":"D8M9PZ1CZPNBRYX0UCV6","access_key_secret":"Pnzi7JxNPg7dfcozJVlsRKeJ1FcxaXAxDivs13ZI","bucket_name":"go-test-logs-destination-1777378576952108000","host":"go-test-logs-destination-1777378576952108000.us-southeast-1.linodeobjects.com"}}' + body: '{"label":"go-test-logs-destination-1778075038706784000"}' form: {} headers: Accept: @@ -146,15 +159,13 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations + url: https://api.devcloud.linode.com/v4beta/object-storage/keys method: POST response: - body: '{"id": 303, "label": "go-test-logs-destination-1777378581049333000", "type": - "akamai_object_storage", "details": {"host": "go-test-logs-destination-1777378576952108000.us-southeast-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1777378576952108000", "access_key_id": - "D8M9PZ1CZPNBRYX0UCV6"}, "version": 1, "status": "active", "created_by": "dola-klipensk", - "created": "2018-01-02T03:04:05Z", "updated_by": "dola-klipensk", "updated": - "2018-01-02T03:04:05Z"}' + body: '{"id": 340311, "label": "go-test-logs-destination-1778075038706784000", + "access_key": "[SANITIZED]", "secret_key": "[SANITIZED]", "limited": false, + "bucket_access": null, "regions": [{"id": "pl-labkrk-2", "s3_endpoint": "pl-labkrk2-1.devcloud.linodeobjects.com", + "endpoint_type": "E1"}]}' headers: Access-Control-Allow-Credentials: - "true" @@ -169,25 +180,23 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: - - "473" + - "325" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Expires: - - Tue, 28 Apr 2026 12:16:21 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: - Authorization, X-Filter X-Accepted-Oauth-Scopes: - - monitor:read_write + - object_storage:read_write X-Content-Type-Options: - nosniff X-Frame-Options: @@ -196,14 +205,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" + - "12" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"destinations":[303],"label":"go-test-log-stream-1777378581819773000","type":"audit_logs"}' + body: '{"label":"go-test-logs-destination-1778075039374625000","type":"akamai_object_storage","details":{"access_key_id":"2NWF5MNDG2NZ5CL8GUER","access_key_secret":"FUM51UqtGJSlbGkjixAISUCmsbuUD9W5Y2uxtYfR","bucket_name":"go-test-logs-destination-1778075037875407000","host":"go-test-logs-destination-1778075037875407000.pl-labkrk2-1.devcloud.linodeobjects.com"}}' form: {} headers: Accept: @@ -212,17 +221,15 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams + url: https://api.devcloud.linode.com/v4beta/monitor/streams/destinations method: POST response: - body: '{"id": 153, "label": "go-test-log-stream-1777378581819773000", "type": - "audit_logs", "destinations": [{"id": 303, "type": "akamai_object_storage", - "label": "go-test-logs-destination-1777378581049333000", "details": {"host": - "go-test-logs-destination-1777378576952108000.us-southeast-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1777378576952108000", "access_key_id": - "D8M9PZ1CZPNBRYX0UCV6"}}], "details": null, "version": 1, "status": "provisioning", - "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05Z", "updated_by": - "dola-klipensk", "updated": "2018-01-02T03:04:05Z"}' + body: '{"id": 1091, "label": "go-test-logs-destination-1778075039374625000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778075037875407000.pl-labkrk2-1.devcloud.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1778075037875407000", "access_key_id": + "2NWF5MNDG2NZ5CL8GUER"}, "version": 1, "status": "active", "created_by": "klipensk-aclp", + "created": "2018-01-02T03:04:05", "updated_by": "klipensk-aclp", "updated": + "2018-01-02T03:04:05"}' headers: Access-Control-Allow-Credentials: - "true" @@ -237,19 +244,17 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: - - "600" + - "479" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Expires: - - Tue, 28 Apr 2026 12:16:22 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: @@ -264,14 +269,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" + - "400" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: "" + body: '{"destinations":[1091],"label":"go-test-log-stream-1778075041741946000","type":"audit_logs"}' form: {} headers: Accept: @@ -280,21 +285,17 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/account - method: GET + url: https://api.devcloud.linode.com/v4beta/monitor/streams + method: POST response: - body: '{"company": "Akamai Technologies - Edge Experience - Dola", "email": "dl-pdx-dw-dola@akamai.com", - "first_name": "", "last_name": "", "address_1": "", "address_2": "", "city": - "", "state": "MA", "zip": "02142", "country": "US", "phone": "", "balance": - 0.0, "tax_id": "", "billing_source": "linode", "credit_card": {"last_four": - null, "expiry": null}, "balance_uninvoiced": 0.0, "active_since": "2018-01-02T03:04:05", - "capabilities": ["Linodes", "NodeBalancers", "Block Storage", "Object Storage", - "Kubernetes", "Cloud Firewall", "Vlans", "LKE HA Control Planes", "VPCs", "Block - Storage Encryption", "Machine Images", "Managed Databases", "Akamai Cloud Pulse - Logs", "LKE Network Access Control List (IP ACL)", "Placement Group", "Object - Storage Access Key Regions", "Object Storage Endpoint Types", "Disk Encryption", - "LA Disk Encryption", "SMTP Enabled", "NETINT Quadra T1U", "Linode Interfaces"], - "active_promotions": [], "euuid": "BED02C05-67D6-4FAA-BC8BB63BB77C1197"}' + body: '{"id": 2122, "label": "go-test-log-stream-1778075041741946000", "type": + "audit_logs", "destinations": [{"id": 1091, "type": "akamai_object_storage", + "label": "go-test-logs-destination-1778075039374625000", "details": {"host": + "go-test-logs-destination-1778075037875407000.pl-labkrk2-1.devcloud.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1778075037875407000", "access_key_id": + "2NWF5MNDG2NZ5CL8GUER"}}], "details": null, "version": 1, "status": "provisioning", + "created_by": "klipensk-aclp", "created": "2018-01-02T03:04:05", "updated_by": + "klipensk-aclp", "updated": "2018-01-02T03:04:05"}' headers: Access-Control-Allow-Credentials: - "true" @@ -309,25 +310,23 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive + Content-Length: + - "607" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Expires: - - Tue, 28 Apr 2026 12:16:22 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: - Authorization, X-Filter - - Authorization, X-Filter - - Accept-Encoding X-Accepted-Oauth-Scopes: - - account:read_only + - monitor:read_write X-Content-Type-Options: - nosniff X-Frame-Options: @@ -336,7 +335,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" + - "400" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -352,17 +351,17 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/153 + url: https://api.devcloud.linode.com/v4beta/monitor/streams/2122 method: GET response: - body: '{"id": 153, "label": "go-test-log-stream-1777378581819773000", "type": - "audit_logs", "destinations": [{"id": 303, "type": "akamai_object_storage", - "label": "go-test-logs-destination-1777378581049333000", "details": {"host": - "go-test-logs-destination-1777378576952108000.us-southeast-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1777378576952108000", "access_key_id": - "D8M9PZ1CZPNBRYX0UCV6"}}], "details": null, "version": 1, "status": "active", - "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05Z", "updated_by": - "dola-klipensk", "updated": "2018-01-02T03:04:05Z"}' + body: '{"id": 2122, "label": "go-test-log-stream-1778075041741946000", "type": + "audit_logs", "destinations": [{"id": 1091, "type": "akamai_object_storage", + "label": "go-test-logs-destination-1778075039374625000", "details": {"host": + "go-test-logs-destination-1778075037875407000.pl-labkrk2-1.devcloud.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1778075037875407000", "access_key_id": + "2NWF5MNDG2NZ5CL8GUER"}}], "details": null, "version": 1, "status": "active", + "created_by": "klipensk-aclp", "created": "2018-01-02T03:04:05", "updated_by": + "klipensk-aclp", "updated": "2018-01-02T03:04:05"}' headers: Access-Control-Allow-Credentials: - "true" @@ -377,19 +376,18 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=0, s-maxage=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: - - "594" + - "602" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Expires: - - Tue, 28 Apr 2026 12:50:37 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: @@ -405,7 +403,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" + - "400" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -421,17 +419,29 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams?page=1 + url: https://api.devcloud.linode.com/v4beta/monitor/streams?page=1 method: GET response: - body: '{"pages": 1, "page": 1, "results": 1, "data": [{"id": 153, "label": "go-test-log-stream-1777378581819773000", - "type": "audit_logs", "destinations": [{"id": 303, "type": "akamai_object_storage", - "label": "go-test-logs-destination-1777378581049333000", "details": {"host": - "go-test-logs-destination-1777378576952108000.us-southeast-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1777378576952108000", "access_key_id": - "D8M9PZ1CZPNBRYX0UCV6"}}], "details": null, "version": 1, "status": "active", - "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05Z", "updated_by": - "dola-klipensk", "updated": "2018-01-02T03:04:05Z"}]}' + body: '{"pages": 1, "page": 1, "results": 3, "data": [{"id": 1288, "label": "heliosstream1", + "type": "audit_logs", "destinations": [{"id": 584, "type": "akamai_object_storage", + "label": "helioslogstreamdestination", "details": {"host": "pl-labkrk2-1.devcloud.linodeobjects.com", + "bucket_name": "helios-bucket", "path": "helioslogs", "access_key_id": "JEYJTV5JQJ86H6ZHNBAX"}}], + "details": null, "version": 2, "status": "active", "created_by": "ndeverse-aclp", + "created": "2018-01-02T03:04:05", "updated_by": "vivkumar-aclp", "updated": + "2018-01-02T03:04:05"}, {"id": 2122, "label": "go-test-log-stream-1778075041741946000", + "type": "audit_logs", "destinations": [{"id": 1091, "type": "akamai_object_storage", + "label": "go-test-logs-destination-1778075039374625000", "details": {"host": + "go-test-logs-destination-1778075037875407000.pl-labkrk2-1.devcloud.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1778075037875407000", "access_key_id": + "2NWF5MNDG2NZ5CL8GUER"}}], "details": null, "version": 1, "status": "active", + "created_by": "klipensk-aclp", "created": "2018-01-02T03:04:05", "updated_by": + "klipensk-aclp", "updated": "2018-01-02T03:04:05"}, {"id": 2123, "label": "ansible-test-stream-43190597", + "type": "audit_logs", "destinations": [{"id": 1092, "type": "akamai_object_storage", + "label": "ansible-test-dest-36504758", "details": {"host": "pl-labkrk2-1.devcloud.linodeobjects.com", + "bucket_name": "ansible-test-dest-36504758", "access_key_id": "4J0AP7RF1BMDM1TGSIRG"}}], + "details": null, "version": 1, "status": "provisioning", "created_by": "sjerecze-aclp", + "created": "2018-01-02T03:04:05", "updated_by": "sjerecze-aclp", "updated": + "2018-01-02T03:04:05"}]}' headers: Access-Control-Allow-Credentials: - "true" @@ -446,19 +456,16 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=0, s-maxage=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive - Content-Length: - - "643" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Expires: - - Tue, 28 Apr 2026 12:50:37 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: @@ -474,7 +481,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" + - "400" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -490,7 +497,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/153 + url: https://api.devcloud.linode.com/v4beta/monitor/streams/2122 method: DELETE response: body: '{}' @@ -508,7 +515,7 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: @@ -517,10 +524,8 @@ interactions: - default-src 'none' Content-Type: - application/json - Expires: - - Tue, 28 Apr 2026 12:50:38 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: @@ -535,7 +540,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" + - "400" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -551,15 +556,15 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations/303 + url: https://api.devcloud.linode.com/v4beta/monitor/streams/destinations/1091 method: GET response: - body: '{"id": 303, "label": "go-test-logs-destination-1777378581049333000", "type": - "akamai_object_storage", "details": {"host": "go-test-logs-destination-1777378576952108000.us-southeast-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1777378576952108000", "access_key_id": - "D8M9PZ1CZPNBRYX0UCV6"}, "version": 1, "status": "active", "created_by": "dola-klipensk", - "created": "2018-01-02T03:04:05Z", "updated_by": "dola-klipensk", "updated": - "2018-01-02T03:04:05Z"}' + body: '{"id": 1091, "label": "go-test-logs-destination-1778075039374625000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778075037875407000.pl-labkrk2-1.devcloud.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1778075037875407000", "access_key_id": + "2NWF5MNDG2NZ5CL8GUER"}, "version": 1, "status": "active", "created_by": "klipensk-aclp", + "created": "2018-01-02T03:04:05", "updated_by": "klipensk-aclp", "updated": + "2018-01-02T03:04:05"}' headers: Access-Control-Allow-Credentials: - "true" @@ -574,19 +579,18 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=0, s-maxage=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: - - "473" + - "479" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Expires: - - Tue, 28 Apr 2026 12:50:38 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: @@ -602,7 +606,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" + - "400" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -618,7 +622,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations/303 + url: https://api.devcloud.linode.com/v4beta/monitor/streams/destinations/1091 method: DELETE response: body: '{}' @@ -636,7 +640,7 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: @@ -645,10 +649,8 @@ interactions: - default-src 'none' Content-Type: - application/json - Expires: - - Tue, 28 Apr 2026 12:50:39 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: @@ -663,7 +665,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" + - "400" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -679,7 +681,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/keys/3463554 + url: https://api.devcloud.linode.com/v4beta/object-storage/keys/340311 method: DELETE response: body: '{}' @@ -697,7 +699,7 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: @@ -706,10 +708,8 @@ interactions: - default-src 'none' Content-Type: - application/json - Expires: - - Tue, 28 Apr 2026 12:50:39 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: @@ -724,7 +724,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "60" + - "12" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -740,22 +740,12 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast/go-test-logs-destination-1777378576952108000/object-list + url: https://api.devcloud.linode.com/v4beta/object-storage/buckets/pl-labkrk-2/go-test-logs-destination-1778075037875407000/object-list method: GET response: - body: '{"data": [{"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/28/akamai_log-016038-1777379785-237432-config.gz", - "size": 577, "last_modified": "2018-01-02T03:04:05.901Z", "etag": "9475cd3c437d4e133a78c28731c861db", - "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/28/akamai_log-023136-1777380263-960738-config.gz", - "size": 793, "last_modified": "2018-01-02T03:04:05.747Z", "etag": "60d01cd683c9774e4b83bfca635c5ed0", - "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/28/akamai_log-080990-1777380437-952237-config.gz", - "size": 578, "last_modified": "2018-01-02T03:04:05.576Z", "etag": "6a582c1149bdc30bb19872a3d34ec0d0", - "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/28/akamai_log-218672-1777379739-355655-config.gz", - "size": 576, "last_modified": "2018-01-02T03:04:05.500Z", "etag": "2fb9af5bd9609791f5d001cc98965c80", - "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/28/akamai_log-487125-1777379400-573950-config.gz", - "size": 577, "last_modified": "2018-01-02T03:04:05.337Z", "etag": "a74731395da540f2bad79e875d2ae82a", - "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "cloud-logs-test-connection-20260428T121621", - "size": 9, "last_modified": "2018-01-02T03:04:05.638Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", - "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}], "next_marker": null, "is_truncated": + body: '{"data": [{"name": "cloud-logs-test-connection-20260506T134400", "size": + 9, "last_modified": "2018-01-02T03:04:05.757Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", + "owner": "512fe32a-48a2-4a57-8a11-0eef806858d3"}], "next_marker": null, "is_truncated": false}' headers: Access-Control-Allow-Credentials: @@ -771,335 +761,25 @@ interactions: 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: - - Tue, 28 Apr 2026 12:50:40 GMT - Pragma: - - no-cache - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization, X-Filter - - Authorization, X-Filter - - Accept-Encoding - X-Accepted-Oauth-Scopes: - - object_storage: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: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/28/akamai_log-016038-1777379785-237432-config.gz","method":"DELETE","expires_in":360}' - form: {} - headers: - Accept: - - application/json - Content-Type: - - application/json - User-Agent: - - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1777378576952108000/object-url - method: POST - response: - body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1777378576952108000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/28/akamai_log-016038-1777379785-237432-config.gz?Signature=zNRMFPMUVknnSDGaPj%2F8nrfPfgI%3D&Expires=1777381001&AWSAccessKeyID=SANITIZED", - "exists": true}' - headers: - Access-Control-Allow-Credentials: - - "true" - Access-Control-Allow-Headers: - - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter - Access-Control-Allow-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: - - "335" - Content-Security-Policy: - - default-src 'none' - Content-Type: - - application/json - Expires: - - Tue, 28 Apr 2026 12:50:41 GMT - Pragma: - - no-cache - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization, X-Filter - X-Accepted-Oauth-Scopes: - - object_storage: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: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/28/akamai_log-023136-1777380263-960738-config.gz","method":"DELETE","expires_in":360}' - form: {} - headers: - Accept: - - application/json - Content-Type: - - application/json - User-Agent: - - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1777378576952108000/object-url - method: POST - response: - body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1777378576952108000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/28/akamai_log-023136-1777380263-960738-config.gz?Signature=6nqY2vrubWURE6l7lYGFFjsCkPM%3D&Expires=1777381004&AWSAccessKeyID=SANITIZED", - "exists": true}' - headers: - Access-Control-Allow-Credentials: - - "true" - Access-Control-Allow-Headers: - - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter - Access-Control-Allow-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: - - "333" - Content-Security-Policy: - - default-src 'none' - Content-Type: - - application/json - Expires: - - Tue, 28 Apr 2026 12:50:44 GMT - Pragma: - - no-cache - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization, X-Filter - X-Accepted-Oauth-Scopes: - - object_storage: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: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/28/akamai_log-080990-1777380437-952237-config.gz","method":"DELETE","expires_in":360}' - form: {} - headers: - Accept: - - application/json - Content-Type: - - application/json - User-Agent: - - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1777378576952108000/object-url - method: POST - response: - body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1777378576952108000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/28/akamai_log-080990-1777380437-952237-config.gz?Signature=0AN85lXmaYTnKhak%2BQ7eKP9PorY%3D&Expires=1777381006&AWSAccessKeyID=SANITIZED", - "exists": true}' - headers: - Access-Control-Allow-Credentials: - - "true" - Access-Control-Allow-Headers: - - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter - Access-Control-Allow-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 + - private, max-age=0, s-maxage=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: - - "335" + - "259" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Expires: - - Tue, 28 Apr 2026 12:50:46 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: - Authorization, X-Filter - X-Accepted-Oauth-Scopes: - - object_storage: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: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/28/akamai_log-218672-1777379739-355655-config.gz","method":"DELETE","expires_in":360}' - form: {} - headers: - Accept: - - application/json - Content-Type: - - application/json - User-Agent: - - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1777378576952108000/object-url - method: POST - response: - body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1777378576952108000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/28/akamai_log-218672-1777379739-355655-config.gz?Signature=GRuBe1Wj46HmQTJcXl41qAjyyjg%3D&Expires=1777381007&AWSAccessKeyID=SANITIZED", - "exists": true}' - headers: - Access-Control-Allow-Credentials: - - "true" - Access-Control-Allow-Headers: - - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter - Access-Control-Allow-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: - - "333" - Content-Security-Policy: - - default-src 'none' - Content-Type: - - application/json - Expires: - - Tue, 28 Apr 2026 12:50:47 GMT - Pragma: - - no-cache - Strict-Transport-Security: - - max-age=31536000 - Vary: - Authorization, X-Filter X-Accepted-Oauth-Scopes: - - object_storage: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: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/28/akamai_log-487125-1777379400-573950-config.gz","method":"DELETE","expires_in":360}' - form: {} - headers: - Accept: - - application/json - Content-Type: - - application/json - User-Agent: - - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1777378576952108000/object-url - method: POST - response: - body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1777378576952108000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/28/akamai_log-487125-1777379400-573950-config.gz?Signature=8wHHFBf8g0yxN%2FsdM9JlxrqPY%2BE%3D&Expires=1777381009&AWSAccessKeyID=SANITIZED", - "exists": true}' - headers: - Access-Control-Allow-Credentials: - - "true" - Access-Control-Allow-Headers: - - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter - Access-Control-Allow-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: - - "337" - Content-Security-Policy: - - default-src 'none' - Content-Type: - - application/json - Expires: - - Tue, 28 Apr 2026 12:50:49 GMT - Pragma: - - no-cache - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization, X-Filter - X-Accepted-Oauth-Scopes: - - object_storage:read_write + - object_storage:read_only X-Content-Type-Options: - nosniff X-Frame-Options: @@ -1108,14 +788,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" + - "400" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"name":"cloud-logs-test-connection-20260428T121621","method":"DELETE","expires_in":360}' + body: '{"name":"cloud-logs-test-connection-20260506T134400","method":"DELETE","expires_in":360}' form: {} headers: Accept: @@ -1124,10 +804,10 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1777378576952108000/object-url + url: https://api.devcloud.linode.com/v4beta/object-storage/buckets/pl-labkrk2-1/go-test-logs-destination-1778075037875407000/object-url method: POST response: - body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1777378576952108000/cloud-logs-test-connection-20260428T121621?Signature=rKaHEGhBwoHT9Bxx5Ukbxk9t2OE%3D&Expires=1777381010&AWSAccessKeyID=SANITIZED", + body: '{"url": "https://pl-labkrk2-1.devcloud.linodeobjects.com:443/go-test-logs-destination-1778075037875407000/cloud-logs-test-connection-20260506T134400?Signature=XTR4jtyeglQHOWYaBB3%2FGBAd7Lc%3D&Expires=1778077106&AWSAccessKeyID=SANITIZED", "exists": true}' headers: Access-Control-Allow-Credentials: @@ -1143,19 +823,17 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: - - "255" + - "264" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Expires: - - Tue, 28 Apr 2026 12:50:50 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: @@ -1170,7 +848,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" + - "400" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -1186,7 +864,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast/go-test-logs-destination-1777378576952108000 + url: https://api.devcloud.linode.com/v4beta/object-storage/buckets/pl-labkrk-2/go-test-logs-destination-1778075037875407000 method: DELETE response: body: '{}' @@ -1204,7 +882,7 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: @@ -1213,10 +891,8 @@ interactions: - default-src 'none' Content-Type: - application/json - Expires: - - Tue, 28 Apr 2026 12:50:53 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: @@ -1231,7 +907,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" + - "400" X-Xss-Protection: - 1; mode=block status: 200 OK diff --git a/test/integration/fixtures/TestLogStream_Update_Destinations.yaml b/test/integration/fixtures/TestLogStream_Update_Destinations.yaml index 80a68c7b5..b26f6cf15 100644 --- a/test/integration/fixtures/TestLogStream_Update_Destinations.yaml +++ b/test/integration/fixtures/TestLogStream_Update_Destinations.yaml @@ -2,7 +2,7 @@ version: 1 interactions: - request: - body: '{"region":"us-southeast","label":"go-test-logs-destination-1777453739072557000","acl":"private","cors_enabled":false}' + body: "" form: {} headers: Accept: @@ -11,13 +11,37 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets - method: POST + url: https://api.devcloud.linode.com/v4beta/regions?page=1 + method: GET response: - body: '{"hostname": "go-test-logs-destination-1777453739072557000.us-southeast-1.linodeobjects.com", - "label": "go-test-logs-destination-1777453739072557000", "created": "2018-01-02T03:04:05", - "region": "us-southeast", "cluster": "us-southeast-1", "size": 0, "objects": - 0, "endpoint_type": "E0", "s3_endpoint": "us-southeast-1.linodeobjects.com"}' + body: '{"data": [{"id": "pl-labkrk-2", "label": "Krakow, PL", "country": "pl", + "capabilities": ["Linodes", "Block Storage Encryption", "LA Disk Encryption", + "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", "Object Storage", + "GPU Linodes", "Kubernetes", "Kubernetes Enterprise", "Cloud Firewall", "Vlans", + "VPCs", "Block Storage Migrations", "Managed Databases", "Metadata", "Premium + Plans", "Placement Group", "StackScripts", "NETINT Quadra T1U", "Maintenance + Policy", "Linode Interfaces", "Network LoadBalancer", "ACLP Logs Datacenter + LKE-E"], "monitors": {"alerts": ["Block Storage", "Cloud Firewall", "Kubernetes", + "Linodes", "Managed Databases", "Network LoadBalancer", "NodeBalancers", "Object + Storage", "logs"], "metrics": ["Block Storage", "Cloud Firewall", "Kubernetes", + "Linodes", "Managed Databases", "Network LoadBalancer", "NodeBalancers", "Object + Storage", "logs"]}, "status": "ok", "resolvers": {"ipv4": "172.24.224.240,172.24.224.229,172.24.224.236,172.24.224.238,172.24.224.235,172.24.224.241,172.24.224.230,172.24.224.239,172.24.224.233,172.24.224.234", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-labedgeeat-2", + "label": "East Wenatchee, US", "country": "us", "capabilities": ["Linodes", + "Disk Encryption", "Cloud Firewall", "Vlans", "VPCs", "Metadata", "Distributed + Plans", "Linode Interfaces"], "monitors": {"alerts": [], "metrics": []}, "status": + "ok", "resolvers": {"ipv4": "173.223.100.53,173.223.101.53", "ipv6": "1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": 0, "maximum_linodes_per_pg": + 0, "maximum_linodes_per_flexible_pg": 0}, "site_type": "distributed"}, {"id": + "us-labedgeeat-3", "label": "East Wenatchee, US", "country": "us", "capabilities": + ["Linodes", "Disk Encryption", "Cloud Firewall", "Metadata", "Distributed Plans"], + "monitors": {"alerts": [], "metrics": []}, "status": "ok", "resolvers": {"ipv4": + "173.223.100.53,173.223.101.53", "ipv6": "1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": 0, "maximum_linodes_per_pg": + 0, "maximum_linodes_per_flexible_pg": 0}, "site_type": "distributed"}], "page": + 1, "pages": 1, "results": 3}' headers: Access-Control-Allow-Credentials: - "true" @@ -32,25 +56,23 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=900 + - private, max-age=60, s-maxage=60 Connection: - keep-alive - Content-Length: - - "338" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Expires: - - Wed, 29 Apr 2026 09:09:00 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: - Authorization, X-Filter + - Authorization, X-Filter X-Accepted-Oauth-Scopes: - - object_storage:read_write + - '*' X-Content-Type-Options: - nosniff X-Frame-Options: @@ -59,14 +81,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "60" + - "400" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1777453740358113000"}' + body: '{"region":"pl-labkrk-2","label":"go-test-logs-destination-1778092381336293000","acl":"private","cors_enabled":false}' form: {} headers: Accept: @@ -75,21 +97,13 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/keys + url: https://api.devcloud.linode.com/v4beta/object-storage/buckets method: POST response: - body: '{"id": 3476166, "label": "go-test-logs-destination-1777453740358113000", - "access_key": "OTN92JKY9L00JDN7QJHW", "secret_key": "yLuzTppwdVxZwVBwm40BMSDUap4cffuIquAmEmWJ", - "limited": false, "bucket_access": null, "regions": [{"id": "us-east", "s3_endpoint": - "us-east-1.linodeobjects.com", "endpoint_type": "E0"}, {"id": "us-iad", "s3_endpoint": - "us-iad-10.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-lax", "s3_endpoint": - "us-lax-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-lax", "s3_endpoint": - "us-lax-4.linodeobjects.com", "endpoint_type": "E3"}, {"id": "us-mia", "s3_endpoint": - "us-mia-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-ord", "s3_endpoint": - "us-ord-10.linodeobjects.com", "endpoint_type": "E3"}, {"id": "us-ord", "s3_endpoint": - "us-ord-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-sea", "s3_endpoint": - "us-sea-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-southeast", - "s3_endpoint": "us-southeast-1.linodeobjects.com", "endpoint_type": "E0"}]}' + body: '{"hostname": "go-test-logs-destination-1778092381336293000.pl-labkrk2-1.devcloud.linodeobjects.com", + "label": "go-test-logs-destination-1778092381336293000", "created": "2018-01-02T03:04:05", + "region": "pl-labkrk-2", "cluster": "pl-labkrk2-1", "size": 0, "objects": 0, + "endpoint_type": "E1", "s3_endpoint": "pl-labkrk2-1.devcloud.linodeobjects.com"}' headers: Access-Control-Allow-Credentials: - "true" @@ -104,22 +118,21 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive + Content-Length: + - "349" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Expires: - - Wed, 29 Apr 2026 09:09:03 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: - Authorization, X-Filter - - Accept-Encoding X-Accepted-Oauth-Scopes: - object_storage:read_write X-Content-Type-Options: @@ -130,14 +143,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "60" + - "12" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1777453743353878000","type":"akamai_object_storage","details":{"access_key_id":"OTN92JKY9L00JDN7QJHW","access_key_secret":"yLuzTppwdVxZwVBwm40BMSDUap4cffuIquAmEmWJ","bucket_name":"go-test-logs-destination-1777453739072557000","host":"go-test-logs-destination-1777453739072557000.us-southeast-1.linodeobjects.com"}}' + body: '{"label":"go-test-logs-destination-1778092382145143000"}' form: {} headers: Accept: @@ -146,15 +159,13 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations + url: https://api.devcloud.linode.com/v4beta/object-storage/keys method: POST response: - body: '{"id": 357, "label": "go-test-logs-destination-1777453743353878000", "type": - "akamai_object_storage", "details": {"host": "go-test-logs-destination-1777453739072557000.us-southeast-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1777453739072557000", "access_key_id": - "OTN92JKY9L00JDN7QJHW"}, "version": 1, "status": "active", "created_by": "dola-klipensk", - "created": "2018-01-02T03:04:05Z", "updated_by": "dola-klipensk", "updated": - "2018-01-02T03:04:05Z"}' + body: '{"id": 340783, "label": "go-test-logs-destination-1778092382145143000", + "access_key": "[SANITIZED]", "secret_key": "[SANITIZED]", "limited": false, + "bucket_access": null, "regions": [{"id": "pl-labkrk-2", "s3_endpoint": "pl-labkrk2-1.devcloud.linodeobjects.com", + "endpoint_type": "E1"}]}' headers: Access-Control-Allow-Credentials: - "true" @@ -169,25 +180,23 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: - - "473" + - "325" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Expires: - - Wed, 29 Apr 2026 09:09:04 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: - Authorization, X-Filter X-Accepted-Oauth-Scopes: - - monitor:read_write + - object_storage:read_write X-Content-Type-Options: - nosniff X-Frame-Options: @@ -196,14 +205,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" + - "12" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"destinations":[357],"label":"go-test-log-stream-1777453744129959000","type":"audit_logs"}' + body: '{"label":"go-test-logs-destination-1778092382634636000","type":"akamai_object_storage","details":{"access_key_id":"5X3BYDLE4YQQWY63YJHM","access_key_secret":"pUKNpJi9ut96gSsSfk0BPsJqZ82hB6iOVZwc0D3O","bucket_name":"go-test-logs-destination-1778092381336293000","host":"go-test-logs-destination-1778092381336293000.pl-labkrk2-1.devcloud.linodeobjects.com"}}' form: {} headers: Accept: @@ -212,17 +221,15 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams + url: https://api.devcloud.linode.com/v4beta/monitor/streams/destinations method: POST response: - body: '{"id": 161, "label": "go-test-log-stream-1777453744129959000", "type": - "audit_logs", "destinations": [{"id": 357, "type": "akamai_object_storage", - "label": "go-test-logs-destination-1777453743353878000", "details": {"host": - "go-test-logs-destination-1777453739072557000.us-southeast-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1777453739072557000", "access_key_id": - "OTN92JKY9L00JDN7QJHW"}}], "details": null, "version": 1, "status": "provisioning", - "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05Z", "updated_by": - "dola-klipensk", "updated": "2018-01-02T03:04:05Z"}' + body: '{"id": 1098, "label": "go-test-logs-destination-1778092382634636000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778092381336293000.pl-labkrk2-1.devcloud.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1778092381336293000", "access_key_id": + "5X3BYDLE4YQQWY63YJHM"}, "version": 1, "status": "active", "created_by": "klipensk-aclp", + "created": "2018-01-02T03:04:05", "updated_by": "klipensk-aclp", "updated": + "2018-01-02T03:04:05"}' headers: Access-Control-Allow-Credentials: - "true" @@ -237,19 +244,17 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: - - "600" + - "479" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Expires: - - Wed, 29 Apr 2026 09:09:04 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: @@ -264,14 +269,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" + - "400" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: "" + body: '{"destinations":[1098],"label":"go-test-log-stream-1778092384810499000","type":"audit_logs"}' form: {} headers: Accept: @@ -280,21 +285,17 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/account - method: GET + url: https://api.devcloud.linode.com/v4beta/monitor/streams + method: POST response: - body: '{"company": "Akamai Technologies - Edge Experience - Dola", "email": "dl-pdx-dw-dola@akamai.com", - "first_name": "", "last_name": "", "address_1": "", "address_2": "", "city": - "", "state": "MA", "zip": "02142", "country": "US", "phone": "", "balance": - 0.0, "tax_id": "", "billing_source": "linode", "credit_card": {"last_four": - null, "expiry": null}, "balance_uninvoiced": 0.0, "active_since": "2018-01-02T03:04:05", - "capabilities": ["Linodes", "NodeBalancers", "Block Storage", "Object Storage", - "Kubernetes", "Cloud Firewall", "Vlans", "LKE HA Control Planes", "VPCs", "Block - Storage Encryption", "Machine Images", "Managed Databases", "Akamai Cloud Pulse - Logs", "LKE Network Access Control List (IP ACL)", "Placement Group", "Object - Storage Access Key Regions", "Object Storage Endpoint Types", "Disk Encryption", - "LA Disk Encryption", "SMTP Enabled", "NETINT Quadra T1U", "Linode Interfaces"], - "active_promotions": [], "euuid": "BED02C05-67D6-4FAA-BC8BB63BB77C1197"}' + body: '{"id": 2128, "label": "go-test-log-stream-1778092384810499000", "type": + "audit_logs", "destinations": [{"id": 1098, "type": "akamai_object_storage", + "label": "go-test-logs-destination-1778092382634636000", "details": {"host": + "go-test-logs-destination-1778092381336293000.pl-labkrk2-1.devcloud.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1778092381336293000", "access_key_id": + "5X3BYDLE4YQQWY63YJHM"}}], "details": null, "version": 1, "status": "provisioning", + "created_by": "klipensk-aclp", "created": "2018-01-02T03:04:05", "updated_by": + "klipensk-aclp", "updated": "2018-01-02T03:04:05"}' headers: Access-Control-Allow-Credentials: - "true" @@ -309,25 +310,23 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive + Content-Length: + - "607" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Expires: - - Wed, 29 Apr 2026 09:09:04 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: - Authorization, X-Filter - - Authorization, X-Filter - - Accept-Encoding X-Accepted-Oauth-Scopes: - - account:read_only + - monitor:read_write X-Content-Type-Options: - nosniff X-Frame-Options: @@ -336,14 +335,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" + - "400" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"region":"us-southeast","label":"go-test-logs-destination-1777453744771479000","acl":"private","cors_enabled":false}' + body: '{"region":"pl-labkrk-2","label":"go-test-logs-destination-1778092389375217000","acl":"private","cors_enabled":false}' form: {} headers: Accept: @@ -352,13 +351,13 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets + url: https://api.devcloud.linode.com/v4beta/object-storage/buckets method: POST response: - body: '{"hostname": "go-test-logs-destination-1777453744771479000.us-southeast-1.linodeobjects.com", - "label": "go-test-logs-destination-1777453744771479000", "created": "2018-01-02T03:04:05", - "region": "us-southeast", "cluster": "us-southeast-1", "size": 0, "objects": - 0, "endpoint_type": "E0", "s3_endpoint": "us-southeast-1.linodeobjects.com"}' + body: '{"hostname": "go-test-logs-destination-1778092389375217000.pl-labkrk2-1.devcloud.linodeobjects.com", + "label": "go-test-logs-destination-1778092389375217000", "created": "2018-01-02T03:04:05", + "region": "pl-labkrk-2", "cluster": "pl-labkrk2-1", "size": 0, "objects": 0, + "endpoint_type": "E1", "s3_endpoint": "pl-labkrk2-1.devcloud.linodeobjects.com"}' headers: Access-Control-Allow-Credentials: - "true" @@ -373,19 +372,17 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: - - "338" + - "349" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Expires: - - Wed, 29 Apr 2026 09:09:05 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: @@ -400,14 +397,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "60" + - "12" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1777453745937327000"}' + body: '{"label":"go-test-logs-destination-1778092390182681000"}' form: {} headers: Accept: @@ -416,21 +413,13 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/keys + url: https://api.devcloud.linode.com/v4beta/object-storage/keys method: POST response: - body: '{"id": 3476170, "label": "go-test-logs-destination-1777453745937327000", - "access_key": "88OS0BXWI766DSD0OLM7", "secret_key": "5M3BktWIitoiYAFyyEUmZiApvkerpj6jCAqXLLnc", - "limited": false, "bucket_access": null, "regions": [{"id": "us-east", "s3_endpoint": - "us-east-1.linodeobjects.com", "endpoint_type": "E0"}, {"id": "us-iad", "s3_endpoint": - "us-iad-10.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-lax", "s3_endpoint": - "us-lax-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-lax", "s3_endpoint": - "us-lax-4.linodeobjects.com", "endpoint_type": "E3"}, {"id": "us-mia", "s3_endpoint": - "us-mia-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-ord", "s3_endpoint": - "us-ord-10.linodeobjects.com", "endpoint_type": "E3"}, {"id": "us-ord", "s3_endpoint": - "us-ord-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-sea", "s3_endpoint": - "us-sea-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-southeast", - "s3_endpoint": "us-southeast-1.linodeobjects.com", "endpoint_type": "E0"}]}' + body: '{"id": 340784, "label": "go-test-logs-destination-1778092390182681000", + "access_key": "[SANITIZED]", "secret_key": "[SANITIZED]", "limited": false, + "bucket_access": null, "regions": [{"id": "pl-labkrk-2", "s3_endpoint": "pl-labkrk2-1.devcloud.linodeobjects.com", + "endpoint_type": "E1"}]}' headers: Access-Control-Allow-Credentials: - "true" @@ -445,22 +434,21 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive + Content-Length: + - "325" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Expires: - - Wed, 29 Apr 2026 09:09:08 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: - Authorization, X-Filter - - Accept-Encoding X-Accepted-Oauth-Scopes: - object_storage:read_write X-Content-Type-Options: @@ -471,14 +459,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "60" + - "12" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1777453748191673000","type":"akamai_object_storage","details":{"access_key_id":"88OS0BXWI766DSD0OLM7","access_key_secret":"5M3BktWIitoiYAFyyEUmZiApvkerpj6jCAqXLLnc","bucket_name":"go-test-logs-destination-1777453744771479000","host":"go-test-logs-destination-1777453744771479000.us-southeast-1.linodeobjects.com"}}' + body: '{"label":"go-test-logs-destination-1778092390679630000","type":"akamai_object_storage","details":{"access_key_id":"MXVW7MM9OMSPL8HF3G5V","access_key_secret":"B8uiL21m41LHLHjjWBpoxU7KB7CzxRL6KdwMqQu1","bucket_name":"go-test-logs-destination-1778092389375217000","host":"go-test-logs-destination-1778092389375217000.pl-labkrk2-1.devcloud.linodeobjects.com"}}' form: {} headers: Accept: @@ -487,15 +475,15 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations + url: https://api.devcloud.linode.com/v4beta/monitor/streams/destinations method: POST response: - body: '{"id": 358, "label": "go-test-logs-destination-1777453748191673000", "type": - "akamai_object_storage", "details": {"host": "go-test-logs-destination-1777453744771479000.us-southeast-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1777453744771479000", "access_key_id": - "88OS0BXWI766DSD0OLM7"}, "version": 1, "status": "active", "created_by": "dola-klipensk", - "created": "2018-01-02T03:04:05Z", "updated_by": "dola-klipensk", "updated": - "2018-01-02T03:04:05Z"}' + body: '{"id": 1099, "label": "go-test-logs-destination-1778092390679630000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778092389375217000.pl-labkrk2-1.devcloud.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1778092389375217000", "access_key_id": + "MXVW7MM9OMSPL8HF3G5V"}, "version": 1, "status": "active", "created_by": "klipensk-aclp", + "created": "2018-01-02T03:04:05", "updated_by": "klipensk-aclp", "updated": + "2018-01-02T03:04:05"}' headers: Access-Control-Allow-Credentials: - "true" @@ -510,19 +498,17 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: - - "473" + - "479" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Expires: - - Wed, 29 Apr 2026 09:09:08 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: @@ -537,7 +523,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" + - "400" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -553,17 +539,17 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/161 + url: https://api.devcloud.linode.com/v4beta/monitor/streams/2128 method: GET response: - body: '{"id": 161, "label": "go-test-log-stream-1777453744129959000", "type": - "audit_logs", "destinations": [{"id": 357, "type": "akamai_object_storage", - "label": "go-test-logs-destination-1777453743353878000", "details": {"host": - "go-test-logs-destination-1777453739072557000.us-southeast-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1777453739072557000", "access_key_id": - "OTN92JKY9L00JDN7QJHW"}}], "details": null, "version": 1, "status": "active", - "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05Z", "updated_by": - "dola-klipensk", "updated": "2018-01-02T03:04:05Z"}' + body: '{"id": 2128, "label": "go-test-log-stream-1778092384810499000", "type": + "audit_logs", "destinations": [{"id": 1098, "type": "akamai_object_storage", + "label": "go-test-logs-destination-1778092382634636000", "details": {"host": + "go-test-logs-destination-1778092381336293000.pl-labkrk2-1.devcloud.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1778092381336293000", "access_key_id": + "5X3BYDLE4YQQWY63YJHM"}}], "details": null, "version": 1, "status": "active", + "created_by": "klipensk-aclp", "created": "2018-01-02T03:04:05", "updated_by": + "klipensk-aclp", "updated": "2018-01-02T03:04:05"}' headers: Access-Control-Allow-Credentials: - "true" @@ -578,19 +564,18 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=0, s-maxage=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: - - "594" + - "602" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Expires: - - Wed, 29 Apr 2026 09:35:20 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: @@ -606,14 +591,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" + - "400" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"destinations":[358]}' + body: '{"destinations":[1099]}' form: {} headers: Accept: @@ -622,17 +607,17 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/161 + url: https://api.devcloud.linode.com/v4beta/monitor/streams/2128 method: PUT response: - body: '{"id": 161, "label": "go-test-log-stream-1777453744129959000", "type": - "audit_logs", "destinations": [{"id": 358, "type": "akamai_object_storage", - "label": "go-test-logs-destination-1777453748191673000", "details": {"host": - "go-test-logs-destination-1777453744771479000.us-southeast-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1777453744771479000", "access_key_id": - "88OS0BXWI766DSD0OLM7"}}], "details": null, "version": 2, "status": "active", - "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05Z", "updated_by": - "dola-klipensk", "updated": "2018-01-02T03:04:05Z"}' + body: '{"id": 2128, "label": "go-test-log-stream-1778092384810499000", "type": + "audit_logs", "destinations": [{"id": 1099, "type": "akamai_object_storage", + "label": "go-test-logs-destination-1778092390679630000", "details": {"host": + "go-test-logs-destination-1778092389375217000.pl-labkrk2-1.devcloud.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1778092389375217000", "access_key_id": + "MXVW7MM9OMSPL8HF3G5V"}}], "details": null, "version": 2, "status": "provisioning", + "created_by": "klipensk-aclp", "created": "2018-01-02T03:04:05", "updated_by": + "klipensk-aclp", "updated": "2018-01-02T03:04:05"}' headers: Access-Control-Allow-Credentials: - "true" @@ -647,19 +632,17 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: - - "594" + - "607" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Expires: - - Wed, 29 Apr 2026 09:35:21 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: @@ -674,7 +657,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" + - "400" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -690,24 +673,24 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/161/history?page=1 + url: https://api.devcloud.linode.com/v4beta/monitor/streams/2128/history?page=1 method: GET response: - body: '{"pages": 1, "page": 1, "results": 2, "data": [{"id": 161, "label": "go-test-log-stream-1777453744129959000", - "type": "audit_logs", "destinations": [{"id": 358, "type": "akamai_object_storage", - "label": "go-test-logs-destination-1777453748191673000", "details": {"host": - "go-test-logs-destination-1777453744771479000.us-southeast-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1777453744771479000", "access_key_id": - "88OS0BXWI766DSD0OLM7"}}], "details": null, "version": 2, "status": "active", - "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05Z", "updated_by": - "dola-klipensk", "updated": "2018-01-02T03:04:05Z"}, {"id": 161, "label": "go-test-log-stream-1777453744129959000", - "type": "audit_logs", "destinations": [{"id": 357, "type": "akamai_object_storage", - "label": "go-test-logs-destination-1777453743353878000", "details": {"host": - "go-test-logs-destination-1777453739072557000.us-southeast-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1777453739072557000", "access_key_id": - "OTN92JKY9L00JDN7QJHW"}}], "details": null, "version": 1, "status": "inactive", - "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05Z", "updated_by": - "dola-klipensk", "updated": "2018-01-02T03:04:05Z"}]}' + body: '{"pages": 1, "page": 1, "results": 2, "data": [{"id": 2128, "label": "go-test-log-stream-1778092384810499000", + "type": "audit_logs", "destinations": [{"id": 1099, "type": "akamai_object_storage", + "label": "go-test-logs-destination-1778092390679630000", "details": {"host": + "go-test-logs-destination-1778092389375217000.pl-labkrk2-1.devcloud.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1778092389375217000", "access_key_id": + "MXVW7MM9OMSPL8HF3G5V"}}], "details": null, "version": 2, "status": "provisioning", + "created_by": "klipensk-aclp", "created": "2018-01-02T03:04:05", "updated_by": + "klipensk-aclp", "updated": "2018-01-02T03:04:05"}, {"id": 2128, "label": "go-test-log-stream-1778092384810499000", + "type": "audit_logs", "destinations": [{"id": 1098, "type": "akamai_object_storage", + "label": "go-test-logs-destination-1778092382634636000", "details": {"host": + "go-test-logs-destination-1778092381336293000.pl-labkrk2-1.devcloud.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1778092381336293000", "access_key_id": + "5X3BYDLE4YQQWY63YJHM"}}], "details": null, "version": 1, "status": "inactive", + "created_by": "klipensk-aclp", "created": "2018-01-02T03:04:05", "updated_by": + "klipensk-aclp", "updated": "2018-01-02T03:04:05"}]}' headers: Access-Control-Allow-Credentials: - "true" @@ -722,23 +705,21 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=0, s-maxage=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Expires: - - Wed, 29 Apr 2026 09:35:21 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: - Authorization, X-Filter - Authorization, X-Filter - - Accept-Encoding X-Accepted-Oauth-Scopes: - monitor:read_only X-Content-Type-Options: @@ -749,14 +730,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" + - "400" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"destinations":[357]}' + body: '{"destinations":[1098]}' form: {} headers: Accept: @@ -765,63 +746,37 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/161 + url: https://api.devcloud.linode.com/v4beta/monitor/streams/2128 method: PUT response: - body: '{"id": 161, "label": "go-test-log-stream-1777453744129959000", "type": - "audit_logs", "destinations": [{"id": 357, "type": "akamai_object_storage", - "label": "go-test-logs-destination-1777453743353878000", "details": {"host": - "go-test-logs-destination-1777453739072557000.us-southeast-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1777453739072557000", "access_key_id": - "OTN92JKY9L00JDN7QJHW"}}], "details": null, "version": 3, "status": "active", - "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05Z", "updated_by": - "dola-klipensk", "updated": "2018-01-02T03:04:05Z"}' + body: '{"errors": [{"reason": "Unable to edit Stream at this time"}]}' headers: - Access-Control-Allow-Credentials: - - "true" Access-Control-Allow-Headers: - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter Access-Control-Allow-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: - - "594" - Content-Security-Policy: - - default-src 'none' + - "62" Content-Type: - application/json - Expires: - - Wed, 29 Apr 2026 09:35:22 GMT - Pragma: - - no-cache - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization, X-Filter + Server: + - nginx X-Accepted-Oauth-Scopes: - monitor: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 + - "400" + status: 400 BAD REQUEST + code: 400 duration: "" - request: body: "" @@ -833,56 +788,38 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations/358 + url: https://api.devcloud.linode.com/v4beta/monitor/streams/destinations/1099 method: DELETE response: - body: '{}' + body: '{"errors": [{"reason": "Unable to delete Destination attached to active + or inactive Stream"}]}' headers: - Access-Control-Allow-Credentials: - - "true" Access-Control-Allow-Headers: - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter Access-Control-Allow-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' + - "94" Content-Type: - application/json - Expires: - - Wed, 29 Apr 2026 09:35:22 GMT - Pragma: - - no-cache - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization, X-Filter + Server: + - nginx X-Accepted-Oauth-Scopes: - monitor: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 + - "400" + status: 400 BAD REQUEST + code: 400 duration: "" - request: body: "" @@ -894,7 +831,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/keys/3476170 + url: https://api.devcloud.linode.com/v4beta/object-storage/keys/340784 method: DELETE response: body: '{}' @@ -912,7 +849,7 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: @@ -921,10 +858,8 @@ interactions: - default-src 'none' Content-Type: - application/json - Expires: - - Wed, 29 Apr 2026 09:35:23 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: @@ -939,7 +874,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "60" + - "12" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -955,12 +890,12 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast/go-test-logs-destination-1777453744771479000/object-list + url: https://api.devcloud.linode.com/v4beta/object-storage/buckets/pl-labkrk-2/go-test-logs-destination-1778092389375217000/object-list method: GET response: - body: '{"data": [{"name": "cloud-logs-test-connection-20260429T090908", "size": - 9, "last_modified": "2018-01-02T03:04:05.738Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", - "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}], "next_marker": null, "is_truncated": + body: '{"data": [{"name": "cloud-logs-test-connection-20260506T183312", "size": + 9, "last_modified": "2018-01-02T03:04:05.289Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", + "owner": "512fe32a-48a2-4a57-8a11-0eef806858d3"}], "next_marker": null, "is_truncated": false}' headers: Access-Control-Allow-Credentials: @@ -976,7 +911,8 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=0, s-maxage=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: @@ -985,10 +921,8 @@ interactions: - default-src 'none' Content-Type: - application/json - Expires: - - Wed, 29 Apr 2026 09:35:23 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: @@ -1004,14 +938,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" + - "400" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"name":"cloud-logs-test-connection-20260429T090908","method":"DELETE","expires_in":360}' + body: '{"name":"cloud-logs-test-connection-20260506T183312","method":"DELETE","expires_in":360}' form: {} headers: Accept: @@ -1020,10 +954,10 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1777453744771479000/object-url + url: https://api.devcloud.linode.com/v4beta/object-storage/buckets/pl-labkrk2-1/go-test-logs-destination-1778092389375217000/object-url method: POST response: - body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1777453744771479000/cloud-logs-test-connection-20260429T090908?Signature=ubOQZLCHj3tpr%2F%2B6qCWwF%2BLTrHs%3D&Expires=1777455685&AWSAccessKeyID=SANITIZED", + body: '{"url": "https://pl-labkrk2-1.devcloud.linodeobjects.com:443/go-test-logs-destination-1778092389375217000/cloud-logs-test-connection-20260506T183312?Signature=GdNrFnHihS15Q2mtgQjBKUHHv1s%3D&Expires=1778094450&AWSAccessKeyID=SANITIZED", "exists": true}' headers: Access-Control-Allow-Credentials: @@ -1039,19 +973,17 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: - - "261" + - "262" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Expires: - - Wed, 29 Apr 2026 09:35:25 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: @@ -1066,7 +998,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" + - "400" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -1082,7 +1014,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast/go-test-logs-destination-1777453744771479000 + url: https://api.devcloud.linode.com/v4beta/object-storage/buckets/pl-labkrk-2/go-test-logs-destination-1778092389375217000 method: DELETE response: body: '{}' @@ -1100,7 +1032,7 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: @@ -1109,10 +1041,8 @@ interactions: - default-src 'none' Content-Type: - application/json - Expires: - - Wed, 29 Apr 2026 09:35:30 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: @@ -1127,7 +1057,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" + - "400" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -1143,56 +1073,37 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/161 + url: https://api.devcloud.linode.com/v4beta/monitor/streams/2128 method: DELETE response: - body: '{}' + body: '{"errors": [{"reason": "Unable to delete Stream at this time"}]}' headers: - Access-Control-Allow-Credentials: - - "true" Access-Control-Allow-Headers: - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter Access-Control-Allow-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' + - "64" Content-Type: - application/json - Expires: - - Wed, 29 Apr 2026 09:35:31 GMT - Pragma: - - no-cache - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization, X-Filter + Server: + - nginx X-Accepted-Oauth-Scopes: - monitor: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 + - "400" + status: 400 BAD REQUEST + code: 400 duration: "" - request: body: "" @@ -1204,15 +1115,15 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations/357 + url: https://api.devcloud.linode.com/v4beta/monitor/streams/destinations/1098 method: GET response: - body: '{"id": 357, "label": "go-test-logs-destination-1777453743353878000", "type": - "akamai_object_storage", "details": {"host": "go-test-logs-destination-1777453739072557000.us-southeast-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1777453739072557000", "access_key_id": - "OTN92JKY9L00JDN7QJHW"}, "version": 1, "status": "active", "created_by": "dola-klipensk", - "created": "2018-01-02T03:04:05Z", "updated_by": "dola-klipensk", "updated": - "2018-01-02T03:04:05Z"}' + body: '{"id": 1098, "label": "go-test-logs-destination-1778092382634636000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778092381336293000.pl-labkrk2-1.devcloud.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1778092381336293000", "access_key_id": + "5X3BYDLE4YQQWY63YJHM"}, "version": 1, "status": "active", "created_by": "klipensk-aclp", + "created": "2018-01-02T03:04:05", "updated_by": "klipensk-aclp", "updated": + "2018-01-02T03:04:05"}' headers: Access-Control-Allow-Credentials: - "true" @@ -1227,19 +1138,18 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=0, s-maxage=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: - - "473" + - "479" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Expires: - - Wed, 29 Apr 2026 09:35:31 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: @@ -1255,7 +1165,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" + - "400" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -1271,7 +1181,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations/357 + url: https://api.devcloud.linode.com/v4beta/monitor/streams/destinations/1098 method: DELETE response: body: '{}' @@ -1289,7 +1199,7 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: @@ -1298,10 +1208,8 @@ interactions: - default-src 'none' Content-Type: - application/json - Expires: - - Wed, 29 Apr 2026 09:35:31 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: @@ -1316,7 +1224,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" + - "400" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -1332,7 +1240,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/keys/3476166 + url: https://api.devcloud.linode.com/v4beta/object-storage/keys/340783 method: DELETE response: body: '{}' @@ -1350,7 +1258,7 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: @@ -1359,10 +1267,8 @@ interactions: - default-src 'none' Content-Type: - application/json - Expires: - - Wed, 29 Apr 2026 09:35:32 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: @@ -1377,7 +1283,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "60" + - "12" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -1393,24 +1299,12 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast/go-test-logs-destination-1777453739072557000/object-list + url: https://api.devcloud.linode.com/v4beta/object-storage/buckets/pl-labkrk-2/go-test-logs-destination-1778092381336293000/object-list method: GET response: - body: '{"data": [{"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/29/akamai_log-006576-1777455211-813232-config.gz", - "size": 682, "last_modified": "2018-01-02T03:04:05.485Z", "etag": "f63f404c510e3665e0c68c56aaaa8c18", - "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/29/akamai_log-464674-1777454809-650004-config.gz", - "size": 576, "last_modified": "2018-01-02T03:04:05.727Z", "etag": "fc6b5fdafb1801a55c3fbd6e68ea4fd1", - "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/29/akamai_log-507918-1777454787-308855-config.gz", - "size": 1027, "last_modified": "2018-01-02T03:04:05.181Z", "etag": "71262a570138481a671c54a5e3b51218", - "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/29/akamai_log-725237-1777454754-163326-config.gz", - "size": 513, "last_modified": "2018-01-02T03:04:05.524Z", "etag": "4f1d115f6aa9534a16edb400aa0f8257", - "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/29/akamai_log-745479-1777454458-729638-config.gz", - "size": 576, "last_modified": "2018-01-02T03:04:05.319Z", "etag": "48afe110c880cbf37f7d4dfb143f2aa3", - "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/29/akamai_log-857774-1777454149-028428-config.gz", - "size": 679, "last_modified": "2018-01-02T03:04:05.387Z", "etag": "ccb95918dd955f1c17af384c21aa88f2", - "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "cloud-logs-test-connection-20260429T090903", - "size": 9, "last_modified": "2018-01-02T03:04:05.905Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", - "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}], "next_marker": null, "is_truncated": + body: '{"data": [{"name": "cloud-logs-test-connection-20260506T183304", "size": + 9, "last_modified": "2018-01-02T03:04:05.153Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", + "owner": "512fe32a-48a2-4a57-8a11-0eef806858d3"}], "next_marker": null, "is_truncated": false}' headers: Access-Control-Allow-Credentials: @@ -1426,397 +1320,25 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store - Connection: - - keep-alive - Content-Security-Policy: - - default-src 'none' - Content-Type: - - application/json - Expires: - - Wed, 29 Apr 2026 09:35:33 GMT - Pragma: - - no-cache - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization, X-Filter - - Authorization, X-Filter - - Accept-Encoding - X-Accepted-Oauth-Scopes: - - object_storage: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: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/29/akamai_log-006576-1777455211-813232-config.gz","method":"DELETE","expires_in":360}' - form: {} - headers: - Accept: - - application/json - Content-Type: - - application/json - User-Agent: - - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1777453739072557000/object-url - method: POST - response: - body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1777453739072557000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/29/akamai_log-006576-1777455211-813232-config.gz?Signature=yJdtrBNWAd4kk9Z1QXZxUsqJwGI%3D&Expires=1777455695&AWSAccessKeyID=SANITIZED", - "exists": true}' - headers: - Access-Control-Allow-Credentials: - - "true" - Access-Control-Allow-Headers: - - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter - Access-Control-Allow-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 + - private, max-age=0, s-maxage=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: - - "333" - Content-Security-Policy: - - default-src 'none' - Content-Type: - - application/json - Expires: - - Wed, 29 Apr 2026 09:35:35 GMT - Pragma: - - no-cache - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization, X-Filter - X-Accepted-Oauth-Scopes: - - object_storage: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: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/29/akamai_log-464674-1777454809-650004-config.gz","method":"DELETE","expires_in":360}' - form: {} - headers: - Accept: - - application/json - Content-Type: - - application/json - User-Agent: - - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1777453739072557000/object-url - method: POST - response: - body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1777453739072557000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/29/akamai_log-464674-1777454809-650004-config.gz?Signature=OXieKQpHoxXUTW51%2BCfbUtfzTPU%3D&Expires=1777455697&AWSAccessKeyID=SANITIZED", - "exists": true}' - headers: - Access-Control-Allow-Credentials: - - "true" - Access-Control-Allow-Headers: - - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter - Access-Control-Allow-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: - - "335" - Content-Security-Policy: - - default-src 'none' - Content-Type: - - application/json - Expires: - - Wed, 29 Apr 2026 09:35:37 GMT - Pragma: - - no-cache - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization, X-Filter - X-Accepted-Oauth-Scopes: - - object_storage: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: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/29/akamai_log-507918-1777454787-308855-config.gz","method":"DELETE","expires_in":360}' - form: {} - headers: - Accept: - - application/json - Content-Type: - - application/json - User-Agent: - - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1777453739072557000/object-url - method: POST - response: - body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1777453739072557000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/29/akamai_log-507918-1777454787-308855-config.gz?Signature=%2Fn7DoM3N06BiOj0GhZvZBdvkZtU%3D&Expires=1777455698&AWSAccessKeyID=SANITIZED", - "exists": true}' - headers: - Access-Control-Allow-Credentials: - - "true" - Access-Control-Allow-Headers: - - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter - Access-Control-Allow-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: - - "335" - Content-Security-Policy: - - default-src 'none' - Content-Type: - - application/json - Expires: - - Wed, 29 Apr 2026 09:35:38 GMT - Pragma: - - no-cache - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization, X-Filter - X-Accepted-Oauth-Scopes: - - object_storage: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: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/29/akamai_log-725237-1777454754-163326-config.gz","method":"DELETE","expires_in":360}' - form: {} - headers: - Accept: - - application/json - Content-Type: - - application/json - User-Agent: - - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1777453739072557000/object-url - method: POST - response: - body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1777453739072557000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/29/akamai_log-725237-1777454754-163326-config.gz?Signature=1wbtpzZaMTG9aUlhKWiEy7EaZ7Q%3D&Expires=1777455700&AWSAccessKeyID=SANITIZED", - "exists": true}' - headers: - Access-Control-Allow-Credentials: - - "true" - Access-Control-Allow-Headers: - - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter - Access-Control-Allow-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: - - "333" - Content-Security-Policy: - - default-src 'none' - Content-Type: - - application/json - Expires: - - Wed, 29 Apr 2026 09:35:40 GMT - Pragma: - - no-cache - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization, X-Filter - X-Accepted-Oauth-Scopes: - - object_storage: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: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/29/akamai_log-745479-1777454458-729638-config.gz","method":"DELETE","expires_in":360}' - form: {} - headers: - Accept: - - application/json - Content-Type: - - application/json - User-Agent: - - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1777453739072557000/object-url - method: POST - response: - body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1777453739072557000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/29/akamai_log-745479-1777454458-729638-config.gz?Signature=dM8190KyitG4dmberPzXCwey1VA%3D&Expires=1777455702&AWSAccessKeyID=SANITIZED", - "exists": true}' - headers: - Access-Control-Allow-Credentials: - - "true" - Access-Control-Allow-Headers: - - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter - Access-Control-Allow-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: - - "333" + - "259" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Expires: - - Wed, 29 Apr 2026 09:35:42 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: - Authorization, X-Filter - X-Accepted-Oauth-Scopes: - - object_storage: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: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/29/akamai_log-857774-1777454149-028428-config.gz","method":"DELETE","expires_in":360}' - form: {} - headers: - Accept: - - application/json - Content-Type: - - application/json - User-Agent: - - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1777453739072557000/object-url - method: POST - response: - body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1777453739072557000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/29/akamai_log-857774-1777454149-028428-config.gz?Signature=x%2FavNn8AegenCKvmSCGRW2Hh%2BHY%3D&Expires=1777455703&AWSAccessKeyID=SANITIZED", - "exists": true}' - headers: - Access-Control-Allow-Credentials: - - "true" - Access-Control-Allow-Headers: - - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter - Access-Control-Allow-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: - - "337" - Content-Security-Policy: - - default-src 'none' - Content-Type: - - application/json - Expires: - - Wed, 29 Apr 2026 09:35:43 GMT - Pragma: - - no-cache - Strict-Transport-Security: - - max-age=31536000 - Vary: - Authorization, X-Filter X-Accepted-Oauth-Scopes: - - object_storage:read_write + - object_storage:read_only X-Content-Type-Options: - nosniff X-Frame-Options: @@ -1825,14 +1347,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" + - "400" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"name":"cloud-logs-test-connection-20260429T090903","method":"DELETE","expires_in":360}' + body: '{"name":"cloud-logs-test-connection-20260506T183304","method":"DELETE","expires_in":360}' form: {} headers: Accept: @@ -1841,10 +1363,10 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1777453739072557000/object-url + url: https://api.devcloud.linode.com/v4beta/object-storage/buckets/pl-labkrk2-1/go-test-logs-destination-1778092381336293000/object-url method: POST response: - body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1777453739072557000/cloud-logs-test-connection-20260429T090903?Signature=9Rnsu8j8DzWtyBqtHsO4CmTJtWY%3D&Expires=1777455704&AWSAccessKeyID=SANITIZED", + body: '{"url": "https://pl-labkrk2-1.devcloud.linodeobjects.com:443/go-test-logs-destination-1778092381336293000/cloud-logs-test-connection-20260506T183304?Signature=8WS%2FOc3CCeKCNmhcOeLJg%2B%2BxNPc%3D&Expires=1778094480&AWSAccessKeyID=SANITIZED", "exists": true}' headers: Access-Control-Allow-Credentials: @@ -1860,19 +1382,17 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: - - "255" + - "268" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Expires: - - Wed, 29 Apr 2026 09:35:45 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: @@ -1887,7 +1407,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" + - "400" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -1903,7 +1423,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast/go-test-logs-destination-1777453739072557000 + url: https://api.devcloud.linode.com/v4beta/object-storage/buckets/pl-labkrk-2/go-test-logs-destination-1778092381336293000 method: DELETE response: body: '{}' @@ -1921,7 +1441,7 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: @@ -1930,10 +1450,8 @@ interactions: - default-src 'none' Content-Type: - application/json - Expires: - - Wed, 29 Apr 2026 09:35:47 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: @@ -1948,7 +1466,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" + - "400" X-Xss-Protection: - 1; mode=block status: 200 OK diff --git a/test/integration/fixtures/TestLogStream_Update_LabelAndStatus.yaml b/test/integration/fixtures/TestLogStream_Update_LabelAndStatus.yaml index bde25b5f8..1c1f9d9d7 100644 --- a/test/integration/fixtures/TestLogStream_Update_LabelAndStatus.yaml +++ b/test/integration/fixtures/TestLogStream_Update_LabelAndStatus.yaml @@ -2,7 +2,7 @@ version: 1 interactions: - request: - body: '{"region":"us-southeast","label":"go-test-logs-destination-1777451063219336000","acl":"private","cors_enabled":false}' + body: "" form: {} headers: Accept: @@ -11,13 +11,37 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets - method: POST + url: https://api.devcloud.linode.com/v4beta/regions?page=1 + method: GET response: - body: '{"hostname": "go-test-logs-destination-1777451063219336000.us-southeast-1.linodeobjects.com", - "label": "go-test-logs-destination-1777451063219336000", "created": "2018-01-02T03:04:05", - "region": "us-southeast", "cluster": "us-southeast-1", "size": 0, "objects": - 0, "endpoint_type": "E0", "s3_endpoint": "us-southeast-1.linodeobjects.com"}' + body: '{"data": [{"id": "pl-labkrk-2", "label": "Krakow, PL", "country": "pl", + "capabilities": ["Linodes", "Block Storage Encryption", "LA Disk Encryption", + "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", "Object Storage", + "GPU Linodes", "Kubernetes", "Kubernetes Enterprise", "Cloud Firewall", "Vlans", + "VPCs", "VPC Dual Stack", "Block Storage Migrations", "Managed Databases", "Metadata", + "Premium Plans", "Placement Group", "StackScripts", "NETINT Quadra T1U", "Maintenance + Policy", "Linode Interfaces", "Network LoadBalancer", "ACLP Logs Datacenter + LKE-E"], "monitors": {"alerts": ["Block Storage", "Cloud Firewall", "Kubernetes", + "Linodes", "Managed Databases", "Network LoadBalancer", "NodeBalancers", "Object + Storage", "logs"], "metrics": ["Block Storage", "Cloud Firewall", "Kubernetes", + "Linodes", "Managed Databases", "Network LoadBalancer", "NodeBalancers", "Object + Storage", "logs"]}, "status": "ok", "resolvers": {"ipv4": "172.24.224.240,172.24.224.229,172.24.224.236,172.24.224.238,172.24.224.235,172.24.224.241,172.24.224.230,172.24.224.239,172.24.224.233,172.24.224.234", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-labedgeeat-2", + "label": "East Wenatchee, US", "country": "us", "capabilities": ["Linodes", + "Disk Encryption", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "Metadata", + "Distributed Plans", "Linode Interfaces"], "monitors": {"alerts": [], "metrics": + []}, "status": "ok", "resolvers": {"ipv4": "173.223.100.53,173.223.101.53", + "ipv6": "1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": + 0, "maximum_linodes_per_pg": 0, "maximum_linodes_per_flexible_pg": 0}, "site_type": + "distributed"}, {"id": "us-labedgeeat-3", "label": "East Wenatchee, US", "country": + "us", "capabilities": ["Linodes", "Disk Encryption", "Cloud Firewall", "Metadata", + "Distributed Plans"], "monitors": {"alerts": [], "metrics": []}, "status": "ok", + "resolvers": {"ipv4": "173.223.100.53,173.223.101.53", "ipv6": "1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": 0, "maximum_linodes_per_pg": + 0, "maximum_linodes_per_flexible_pg": 0}, "site_type": "distributed"}], "page": + 1, "pages": 1, "results": 3}' headers: Access-Control-Allow-Credentials: - "true" @@ -32,25 +56,23 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=900 + - private, max-age=60, s-maxage=60 Connection: - keep-alive - Content-Length: - - "338" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Expires: - - Wed, 29 Apr 2026 08:24:24 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: - Authorization, X-Filter + - Authorization, X-Filter X-Accepted-Oauth-Scopes: - - object_storage:read_write + - '*' X-Content-Type-Options: - nosniff X-Frame-Options: @@ -59,14 +81,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "60" + - "400" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1777451064954802000"}' + body: '{"region":"pl-labkrk-2","label":"go-test-logs-destination-1778150734488950000","acl":"private","cors_enabled":false}' form: {} headers: Accept: @@ -75,21 +97,13 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/keys + url: https://api.devcloud.linode.com/v4beta/object-storage/buckets method: POST response: - body: '{"id": 3475655, "label": "go-test-logs-destination-1777451064954802000", - "access_key": "DP06WUG9OBGY2Z72T61G", "secret_key": "fgsrmzrJKn2YT2Re7UI89X2xkl0acpzddNmPMtry", - "limited": false, "bucket_access": null, "regions": [{"id": "us-east", "s3_endpoint": - "us-east-1.linodeobjects.com", "endpoint_type": "E0"}, {"id": "us-iad", "s3_endpoint": - "us-iad-10.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-lax", "s3_endpoint": - "us-lax-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-lax", "s3_endpoint": - "us-lax-4.linodeobjects.com", "endpoint_type": "E3"}, {"id": "us-mia", "s3_endpoint": - "us-mia-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-ord", "s3_endpoint": - "us-ord-10.linodeobjects.com", "endpoint_type": "E3"}, {"id": "us-ord", "s3_endpoint": - "us-ord-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-sea", "s3_endpoint": - "us-sea-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-southeast", - "s3_endpoint": "us-southeast-1.linodeobjects.com", "endpoint_type": "E0"}]}' + body: '{"hostname": "go-test-logs-destination-1778150734488950000.pl-labkrk2-1.devcloud.linodeobjects.com", + "label": "go-test-logs-destination-1778150734488950000", "created": "2018-01-02T03:04:05", + "region": "pl-labkrk-2", "cluster": "pl-labkrk2-1", "size": 0, "objects": 0, + "endpoint_type": "E1", "s3_endpoint": "pl-labkrk2-1.devcloud.linodeobjects.com"}' headers: Access-Control-Allow-Credentials: - "true" @@ -104,22 +118,21 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive + Content-Length: + - "349" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Expires: - - Wed, 29 Apr 2026 08:24:26 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: - Authorization, X-Filter - - Accept-Encoding X-Accepted-Oauth-Scopes: - object_storage:read_write X-Content-Type-Options: @@ -130,14 +143,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "60" + - "12" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1777451066964536000","type":"akamai_object_storage","details":{"access_key_id":"DP06WUG9OBGY2Z72T61G","access_key_secret":"fgsrmzrJKn2YT2Re7UI89X2xkl0acpzddNmPMtry","bucket_name":"go-test-logs-destination-1777451063219336000","host":"go-test-logs-destination-1777451063219336000.us-southeast-1.linodeobjects.com"}}' + body: '{"label":"go-test-logs-destination-1778150735295090000","regions":["pl-labkrk-2"]}' form: {} headers: Accept: @@ -146,15 +159,13 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations + url: https://api.devcloud.linode.com/v4beta/object-storage/keys method: POST response: - body: '{"id": 356, "label": "go-test-logs-destination-1777451066964536000", "type": - "akamai_object_storage", "details": {"host": "go-test-logs-destination-1777451063219336000.us-southeast-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1777451063219336000", "access_key_id": - "DP06WUG9OBGY2Z72T61G"}, "version": 1, "status": "active", "created_by": "dola-klipensk", - "created": "2018-01-02T03:04:05Z", "updated_by": "dola-klipensk", "updated": - "2018-01-02T03:04:05Z"}' + body: '{"id": 341620, "label": "go-test-logs-destination-1778150735295090000", + "access_key": "[SANITIZED]", "secret_key": "[SANITIZED]", "limited": false, + "bucket_access": null, "regions": [{"id": "pl-labkrk-2", "s3_endpoint": "pl-labkrk2-1.devcloud.linodeobjects.com", + "endpoint_type": "E1"}]}' headers: Access-Control-Allow-Credentials: - "true" @@ -169,25 +180,23 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: - - "473" + - "325" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Expires: - - Wed, 29 Apr 2026 08:24:27 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: - Authorization, X-Filter X-Accepted-Oauth-Scopes: - - monitor:read_write + - object_storage:read_write X-Content-Type-Options: - nosniff X-Frame-Options: @@ -196,14 +205,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" + - "12" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"destinations":[356],"label":"go-test-log-stream-1777451067797799000","type":"audit_logs"}' + body: '{"label":"go-test-logs-destination-1778150735872446000","type":"akamai_object_storage","details":{"access_key_id":"9NLU0IUEBUHXCEC0VN6C","access_key_secret":"KLDglWZDnByzgrOUL4Lr1jLs6ZjMULI4AbwfTpWu","bucket_name":"go-test-logs-destination-1778150734488950000","host":"go-test-logs-destination-1778150734488950000.pl-labkrk2-1.devcloud.linodeobjects.com"}}' form: {} headers: Accept: @@ -212,17 +221,15 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams + url: https://api.devcloud.linode.com/v4beta/monitor/streams/destinations method: POST response: - body: '{"id": 160, "label": "go-test-log-stream-1777451067797799000", "type": - "audit_logs", "destinations": [{"id": 356, "type": "akamai_object_storage", - "label": "go-test-logs-destination-1777451066964536000", "details": {"host": - "go-test-logs-destination-1777451063219336000.us-southeast-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1777451063219336000", "access_key_id": - "DP06WUG9OBGY2Z72T61G"}}], "details": null, "version": 1, "status": "provisioning", - "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05Z", "updated_by": - "dola-klipensk", "updated": "2018-01-02T03:04:05Z"}' + body: '{"id": 1125, "label": "go-test-logs-destination-1778150735872446000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778150734488950000.pl-labkrk2-1.devcloud.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1778150734488950000", "access_key_id": + "9NLU0IUEBUHXCEC0VN6C"}, "version": 1, "status": "active", "created_by": "klipensk-aclp", + "created": "2018-01-02T03:04:05", "updated_by": "klipensk-aclp", "updated": + "2018-01-02T03:04:05"}' headers: Access-Control-Allow-Credentials: - "true" @@ -237,19 +244,17 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: - - "600" + - "479" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Expires: - - Wed, 29 Apr 2026 08:24:28 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: @@ -264,14 +269,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" + - "400" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: "" + body: '{"destinations":[1125],"label":"go-test-log-stream-1778150737226222000","type":"audit_logs"}' form: {} headers: Accept: @@ -280,21 +285,17 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/account - method: GET + url: https://api.devcloud.linode.com/v4beta/monitor/streams + method: POST response: - body: '{"company": "Akamai Technologies - Edge Experience - Dola", "email": "dl-pdx-dw-dola@akamai.com", - "first_name": "", "last_name": "", "address_1": "", "address_2": "", "city": - "", "state": "MA", "zip": "02142", "country": "US", "phone": "", "balance": - 0.0, "tax_id": "", "billing_source": "linode", "credit_card": {"last_four": - null, "expiry": null}, "balance_uninvoiced": 0.0, "active_since": "2018-01-02T03:04:05", - "capabilities": ["Linodes", "NodeBalancers", "Block Storage", "Object Storage", - "Kubernetes", "Cloud Firewall", "Vlans", "LKE HA Control Planes", "VPCs", "Block - Storage Encryption", "Machine Images", "Managed Databases", "Akamai Cloud Pulse - Logs", "LKE Network Access Control List (IP ACL)", "Placement Group", "Object - Storage Access Key Regions", "Object Storage Endpoint Types", "Disk Encryption", - "LA Disk Encryption", "SMTP Enabled", "NETINT Quadra T1U", "Linode Interfaces"], - "active_promotions": [], "euuid": "BED02C05-67D6-4FAA-BC8BB63BB77C1197"}' + body: '{"id": 2152, "label": "go-test-log-stream-1778150737226222000", "type": + "audit_logs", "destinations": [{"id": 1125, "type": "akamai_object_storage", + "label": "go-test-logs-destination-1778150735872446000", "details": {"host": + "go-test-logs-destination-1778150734488950000.pl-labkrk2-1.devcloud.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1778150734488950000", "access_key_id": + "9NLU0IUEBUHXCEC0VN6C"}}], "details": null, "version": 1, "status": "provisioning", + "created_by": "klipensk-aclp", "created": "2018-01-02T03:04:05", "updated_by": + "klipensk-aclp", "updated": "2018-01-02T03:04:05"}' headers: Access-Control-Allow-Credentials: - "true" @@ -309,25 +310,23 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive + Content-Length: + - "607" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Expires: - - Wed, 29 Apr 2026 08:24:28 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: - Authorization, X-Filter - - Authorization, X-Filter - - Accept-Encoding X-Accepted-Oauth-Scopes: - - account:read_only + - monitor:read_write X-Content-Type-Options: - nosniff X-Frame-Options: @@ -336,7 +335,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" + - "400" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -352,17 +351,17 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/160 + url: https://api.devcloud.linode.com/v4beta/monitor/streams/2152 method: GET response: - body: '{"id": 160, "label": "go-test-log-stream-1777451067797799000", "type": - "audit_logs", "destinations": [{"id": 356, "type": "akamai_object_storage", - "label": "go-test-logs-destination-1777451066964536000", "details": {"host": - "go-test-logs-destination-1777451063219336000.us-southeast-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1777451063219336000", "access_key_id": - "DP06WUG9OBGY2Z72T61G"}}], "details": null, "version": 1, "status": "active", - "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05Z", "updated_by": - "dola-klipensk", "updated": "2018-01-02T03:04:05Z"}' + body: '{"id": 2152, "label": "go-test-log-stream-1778150737226222000", "type": + "audit_logs", "destinations": [{"id": 1125, "type": "akamai_object_storage", + "label": "go-test-logs-destination-1778150735872446000", "details": {"host": + "go-test-logs-destination-1778150734488950000.pl-labkrk2-1.devcloud.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1778150734488950000", "access_key_id": + "9NLU0IUEBUHXCEC0VN6C"}}], "details": null, "version": 1, "status": "active", + "created_by": "klipensk-aclp", "created": "2018-01-02T03:04:05", "updated_by": + "klipensk-aclp", "updated": "2018-01-02T03:04:05"}' headers: Access-Control-Allow-Credentials: - "true" @@ -377,19 +376,18 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=0, s-maxage=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: - - "594" + - "601" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Expires: - - Wed, 29 Apr 2026 09:05:46 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: @@ -405,14 +403,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" + - "400" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"label":"go-test-log-stream-1777451067797799000-upd","status":"inactive"}' + body: '{"label":"go-test-log-stream-1778150737226222000-upd","status":"inactive"}' form: {} headers: Accept: @@ -421,17 +419,17 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/160 + url: https://api.devcloud.linode.com/v4beta/monitor/streams/2152 method: PUT response: - body: '{"id": 160, "label": "go-test-log-stream-1777451067797799000-upd", "type": - "audit_logs", "destinations": [{"id": 356, "type": "akamai_object_storage", - "label": "go-test-logs-destination-1777451066964536000", "details": {"host": - "go-test-logs-destination-1777451063219336000.us-southeast-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1777451063219336000", "access_key_id": - "DP06WUG9OBGY2Z72T61G"}}], "details": null, "version": 2, "status": "inactive", - "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05Z", "updated_by": - "dola-klipensk", "updated": "2018-01-02T03:04:05Z"}' + body: '{"id": 2152, "label": "go-test-log-stream-1778150737226222000-upd", "type": + "audit_logs", "destinations": [{"id": 1125, "type": "akamai_object_storage", + "label": "go-test-logs-destination-1778150735872446000", "details": {"host": + "go-test-logs-destination-1778150734488950000.pl-labkrk2-1.devcloud.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1778150734488950000", "access_key_id": + "9NLU0IUEBUHXCEC0VN6C"}}], "details": null, "version": 2, "status": "deactivating", + "created_by": "klipensk-aclp", "created": "2018-01-02T03:04:05", "updated_by": + "klipensk-aclp", "updated": "2018-01-02T03:04:05"}' headers: Access-Control-Allow-Credentials: - "true" @@ -446,19 +444,17 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: - - "600" + - "611" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Expires: - - Wed, 29 Apr 2026 09:05:47 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: @@ -473,7 +469,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" + - "400" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -489,24 +485,24 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/160/history?page=1 + url: https://api.devcloud.linode.com/v4beta/monitor/streams/2152/history?page=1 method: GET response: - body: '{"pages": 1, "page": 1, "results": 2, "data": [{"id": 160, "label": "go-test-log-stream-1777451067797799000-upd", - "type": "audit_logs", "destinations": [{"id": 356, "type": "akamai_object_storage", - "label": "go-test-logs-destination-1777451066964536000", "details": {"host": - "go-test-logs-destination-1777451063219336000.us-southeast-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1777451063219336000", "access_key_id": - "DP06WUG9OBGY2Z72T61G"}}], "details": null, "version": 2, "status": "inactive", - "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05Z", "updated_by": - "dola-klipensk", "updated": "2018-01-02T03:04:05Z"}, {"id": 160, "label": "go-test-log-stream-1777451067797799000", - "type": "audit_logs", "destinations": [{"id": 356, "type": "akamai_object_storage", - "label": "go-test-logs-destination-1777451066964536000", "details": {"host": - "go-test-logs-destination-1777451063219336000.us-southeast-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1777451063219336000", "access_key_id": - "DP06WUG9OBGY2Z72T61G"}}], "details": null, "version": 1, "status": "inactive", - "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05Z", "updated_by": - "dola-klipensk", "updated": "2018-01-02T03:04:05Z"}]}' + body: '{"pages": 1, "page": 1, "results": 2, "data": [{"id": 2152, "label": "go-test-log-stream-1778150737226222000-upd", + "type": "audit_logs", "destinations": [{"id": 1125, "type": "akamai_object_storage", + "label": "go-test-logs-destination-1778150735872446000", "details": {"host": + "go-test-logs-destination-1778150734488950000.pl-labkrk2-1.devcloud.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1778150734488950000", "access_key_id": + "9NLU0IUEBUHXCEC0VN6C"}}], "details": null, "version": 2, "status": "deactivating", + "created_by": "klipensk-aclp", "created": "2018-01-02T03:04:05", "updated_by": + "klipensk-aclp", "updated": "2018-01-02T03:04:05"}, {"id": 2152, "label": "go-test-log-stream-1778150737226222000", + "type": "audit_logs", "destinations": [{"id": 1125, "type": "akamai_object_storage", + "label": "go-test-logs-destination-1778150735872446000", "details": {"host": + "go-test-logs-destination-1778150734488950000.pl-labkrk2-1.devcloud.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1778150734488950000", "access_key_id": + "9NLU0IUEBUHXCEC0VN6C"}}], "details": null, "version": 1, "status": "inactive", + "created_by": "klipensk-aclp", "created": "2018-01-02T03:04:05", "updated_by": + "klipensk-aclp", "updated": "2018-01-02T03:04:05"}]}' headers: Access-Control-Allow-Credentials: - "true" @@ -521,23 +517,21 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=0, s-maxage=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Expires: - - Wed, 29 Apr 2026 09:05:47 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: - Authorization, X-Filter - Authorization, X-Filter - - Accept-Encoding X-Accepted-Oauth-Scopes: - monitor:read_only X-Content-Type-Options: @@ -548,14 +542,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" + - "400" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"label":"go-test-log-stream-1777451067797799000","status":"active"}' + body: "" form: {} headers: Accept: @@ -564,17 +558,17 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/160 - method: PUT + url: https://api.devcloud.linode.com/v4beta/monitor/streams/2152 + method: GET response: - body: '{"id": 160, "label": "go-test-log-stream-1777451067797799000", "type": - "audit_logs", "destinations": [{"id": 356, "type": "akamai_object_storage", - "label": "go-test-logs-destination-1777451066964536000", "details": {"host": - "go-test-logs-destination-1777451063219336000.us-southeast-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1777451063219336000", "access_key_id": - "DP06WUG9OBGY2Z72T61G"}}], "details": null, "version": 3, "status": "active", - "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05Z", "updated_by": - "dola-klipensk", "updated": "2018-01-02T03:04:05Z"}' + body: '{"id": 2152, "label": "go-test-log-stream-1778150737226222000-upd", "type": + "audit_logs", "destinations": [{"id": 1125, "type": "akamai_object_storage", + "label": "go-test-logs-destination-1778150735872446000", "details": {"host": + "go-test-logs-destination-1778150734488950000.pl-labkrk2-1.devcloud.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1778150734488950000", "access_key_id": + "9NLU0IUEBUHXCEC0VN6C"}}], "details": null, "version": 2, "status": "inactive", + "created_by": "klipensk-aclp", "created": "2018-01-02T03:04:05", "updated_by": + "klipensk-aclp", "updated": "2018-01-02T03:04:05"}' headers: Access-Control-Allow-Credentials: - "true" @@ -589,25 +583,25 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=0, s-maxage=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: - - "594" + - "607" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Expires: - - Wed, 29 Apr 2026 09:05:48 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: - Authorization, X-Filter + - Authorization, X-Filter X-Accepted-Oauth-Scopes: - - monitor:read_write + - monitor:read_only X-Content-Type-Options: - nosniff X-Frame-Options: @@ -616,7 +610,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" + - "400" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -632,7 +626,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/160 + url: https://api.devcloud.linode.com/v4beta/monitor/streams/2152 method: DELETE response: body: '{}' @@ -650,7 +644,7 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: @@ -659,10 +653,8 @@ interactions: - default-src 'none' Content-Type: - application/json - Expires: - - Wed, 29 Apr 2026 09:05:48 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: @@ -677,7 +669,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" + - "400" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -693,62 +685,41 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations/356 + url: https://api.devcloud.linode.com/v4beta/monitor/streams/2152 method: GET response: - body: '{"id": 356, "label": "go-test-logs-destination-1777451066964536000", "type": - "akamai_object_storage", "details": {"host": "go-test-logs-destination-1777451063219336000.us-southeast-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1777451063219336000", "access_key_id": - "DP06WUG9OBGY2Z72T61G"}, "version": 1, "status": "active", "created_by": "dola-klipensk", - "created": "2018-01-02T03:04:05Z", "updated_by": "dola-klipensk", "updated": - "2018-01-02T03:04:05Z"}' + body: '{"errors": [{"reason": "Stream not found"}]}' headers: - Access-Control-Allow-Credentials: - - "true" Access-Control-Allow-Headers: - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter Access-Control-Allow-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 + - private, max-age=0, s-maxage=0, no-cache, no-store Connection: - keep-alive Content-Length: - - "473" - Content-Security-Policy: - - default-src 'none' + - "44" Content-Type: - application/json - Expires: - - Wed, 29 Apr 2026 09:05:49 GMT - Pragma: - - no-cache - Strict-Transport-Security: - - max-age=31536000 + Server: + - nginx Vary: - Authorization, X-Filter - - Authorization, X-Filter X-Accepted-Oauth-Scopes: - monitor: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 + - "400" + status: 404 NOT FOUND + code: 404 duration: "" - request: body: "" @@ -760,10 +731,15 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations/356 - method: DELETE + url: https://api.devcloud.linode.com/v4beta/monitor/streams/destinations/1125 + method: GET response: - body: '{}' + body: '{"id": 1125, "label": "go-test-logs-destination-1778150735872446000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778150734488950000.pl-labkrk2-1.devcloud.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1778150734488950000", "access_key_id": + "9NLU0IUEBUHXCEC0VN6C"}, "version": 1, "status": "active", "created_by": "klipensk-aclp", + "created": "2018-01-02T03:04:05", "updated_by": "klipensk-aclp", "updated": + "2018-01-02T03:04:05"}' headers: Access-Control-Allow-Credentials: - "true" @@ -778,25 +754,25 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=0, s-maxage=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: - - "2" + - "479" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Expires: - - Wed, 29 Apr 2026 09:05:49 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: - Authorization, X-Filter + - Authorization, X-Filter X-Accepted-Oauth-Scopes: - - monitor:read_write + - monitor:read_only X-Content-Type-Options: - nosniff X-Frame-Options: @@ -805,7 +781,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" + - "400" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -821,7 +797,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/keys/3475655 + url: https://api.devcloud.linode.com/v4beta/monitor/streams/destinations/1125 method: DELETE response: body: '{}' @@ -839,7 +815,7 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: @@ -848,16 +824,14 @@ interactions: - default-src 'none' Content-Type: - application/json - Expires: - - Wed, 29 Apr 2026 09:05:50 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: - Authorization, X-Filter X-Accepted-Oauth-Scopes: - - object_storage:read_write + - monitor:read_write X-Content-Type-Options: - nosniff X-Frame-Options: @@ -866,7 +840,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "60" + - "400" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -882,337 +856,10 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast/go-test-logs-destination-1777451063219336000/object-list - method: GET - response: - body: '{"data": [{"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/29/akamai_log-024003-1777453498-910679-config.gz", - "size": 576, "last_modified": "2018-01-02T03:04:05.210Z", "etag": "f1555208616fb4969d0b8abf8da82573", - "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/29/akamai_log-100150-1777452278-320673-config.gz", - "size": 1767, "last_modified": "2018-01-02T03:04:05.056Z", "etag": "0b18196418d4d768cd5562851d2200b3", - "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/29/akamai_log-193479-1777453335-507577-config.gz", - "size": 575, "last_modified": "2018-01-02T03:04:05.141Z", "etag": "bc6e218c6947d51ef4fc1651138a8ec0", - "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/29/akamai_log-375856-1777452468-993600-config.gz", - "size": 576, "last_modified": "2018-01-02T03:04:05.869Z", "etag": "2bbf1682a11db7376ac06272e0551550", - "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/29/akamai_log-457998-1777452797-777777-config.gz", - "size": 577, "last_modified": "2018-01-02T03:04:05.970Z", "etag": "31a69672a0273cca643ebc6a15ba9736", - "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/29/akamai_log-843828-1777452324-874359-config.gz", - "size": 1368, "last_modified": "2018-01-02T03:04:05.763Z", "etag": "3ccba3c4ad1d4d613b4bd4deaada8131", - "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/29/akamai_log-989492-1777452398-275336-config.gz", - "size": 1254, "last_modified": "2018-01-02T03:04:05.627Z", "etag": "a97e59ce6d95cf4ce35caf74a0fd83c3", - "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "cloud-logs-test-connection-20260429T082427", - "size": 9, "last_modified": "2018-01-02T03:04:05.544Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", - "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}], "next_marker": null, "is_truncated": - false}' - headers: - Access-Control-Allow-Credentials: - - "true" - Access-Control-Allow-Headers: - - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter - Access-Control-Allow-Methods: - - HEAD, GET, OPTIONS, POST, PUT, DELETE - Access-Control-Allow-Origin: - - '*' - Access-Control-Expose-Headers: - - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status - Akamai-Internal-Account: - - '*' - Cache-Control: - - max-age=0, no-cache, no-store - Connection: - - keep-alive - Content-Security-Policy: - - default-src 'none' - Content-Type: - - application/json - Expires: - - Wed, 29 Apr 2026 09:05:50 GMT - Pragma: - - no-cache - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization, X-Filter - - Authorization, X-Filter - - Accept-Encoding - X-Accepted-Oauth-Scopes: - - object_storage: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: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/29/akamai_log-024003-1777453498-910679-config.gz","method":"DELETE","expires_in":360}' - form: {} - headers: - Accept: - - application/json - Content-Type: - - application/json - User-Agent: - - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1777451063219336000/object-url - method: POST - response: - body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1777451063219336000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/29/akamai_log-024003-1777453498-910679-config.gz?Signature=QK7y07BCZ3NO38FZjV%2Fbmhvu6Bs%3D&Expires=1777453912&AWSAccessKeyID=SANITIZED", - "exists": true}' - headers: - Access-Control-Allow-Credentials: - - "true" - Access-Control-Allow-Headers: - - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter - Access-Control-Allow-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: - - "335" - Content-Security-Policy: - - default-src 'none' - Content-Type: - - application/json - Expires: - - Wed, 29 Apr 2026 09:05:52 GMT - Pragma: - - no-cache - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization, X-Filter - X-Accepted-Oauth-Scopes: - - object_storage: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: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/29/akamai_log-100150-1777452278-320673-config.gz","method":"DELETE","expires_in":360}' - form: {} - headers: - Accept: - - application/json - Content-Type: - - application/json - User-Agent: - - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1777451063219336000/object-url - method: POST - response: - body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1777451063219336000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/29/akamai_log-100150-1777452278-320673-config.gz?Signature=eqoCAFD5kchXGaeaDK7J4J%2FRRQc%3D&Expires=1777453915&AWSAccessKeyID=SANITIZED", - "exists": true}' - headers: - Access-Control-Allow-Credentials: - - "true" - Access-Control-Allow-Headers: - - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter - Access-Control-Allow-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: - - "335" - Content-Security-Policy: - - default-src 'none' - Content-Type: - - application/json - Expires: - - Wed, 29 Apr 2026 09:05:55 GMT - Pragma: - - no-cache - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization, X-Filter - X-Accepted-Oauth-Scopes: - - object_storage: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: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/29/akamai_log-193479-1777453335-507577-config.gz","method":"DELETE","expires_in":360}' - form: {} - headers: - Accept: - - application/json - Content-Type: - - application/json - User-Agent: - - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1777451063219336000/object-url - method: POST - response: - body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1777451063219336000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/29/akamai_log-193479-1777453335-507577-config.gz?Signature=9VN9zM0AtZKxNKvD043AqO%2FSpQg%3D&Expires=1777453917&AWSAccessKeyID=SANITIZED", - "exists": true}' - headers: - Access-Control-Allow-Credentials: - - "true" - Access-Control-Allow-Headers: - - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter - Access-Control-Allow-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: - - "335" - Content-Security-Policy: - - default-src 'none' - Content-Type: - - application/json - Expires: - - Wed, 29 Apr 2026 09:05:57 GMT - Pragma: - - no-cache - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization, X-Filter - X-Accepted-Oauth-Scopes: - - object_storage: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: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/29/akamai_log-375856-1777452468-993600-config.gz","method":"DELETE","expires_in":360}' - form: {} - headers: - Accept: - - application/json - Content-Type: - - application/json - User-Agent: - - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1777451063219336000/object-url - method: POST - response: - body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1777451063219336000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/29/akamai_log-375856-1777452468-993600-config.gz?Signature=cfUiL12yaOyp6iND%2BgEB2XY2TrA%3D&Expires=1777453918&AWSAccessKeyID=SANITIZED", - "exists": true}' - headers: - Access-Control-Allow-Credentials: - - "true" - Access-Control-Allow-Headers: - - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter - Access-Control-Allow-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: - - "335" - Content-Security-Policy: - - default-src 'none' - Content-Type: - - application/json - Expires: - - Wed, 29 Apr 2026 09:05:58 GMT - Pragma: - - no-cache - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization, X-Filter - X-Accepted-Oauth-Scopes: - - object_storage: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: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/29/akamai_log-457998-1777452797-777777-config.gz","method":"DELETE","expires_in":360}' - form: {} - headers: - Accept: - - application/json - Content-Type: - - application/json - User-Agent: - - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1777451063219336000/object-url - method: POST + url: https://api.devcloud.linode.com/v4beta/object-storage/keys/341620 + method: DELETE response: - body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1777451063219336000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/29/akamai_log-457998-1777452797-777777-config.gz?Signature=Y3wp23Xgk4LJ9rMtas32tv7cpFQ%3D&Expires=1777453920&AWSAccessKeyID=SANITIZED", - "exists": true}' + body: '{}' headers: Access-Control-Allow-Credentials: - "true" @@ -1227,19 +874,17 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: - - "333" + - "2" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Expires: - - Wed, 29 Apr 2026 09:06:00 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: @@ -1254,14 +899,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" + - "12" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/29/akamai_log-843828-1777452324-874359-config.gz","method":"DELETE","expires_in":360}' + body: "" form: {} headers: Accept: @@ -1270,11 +915,13 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1777451063219336000/object-url - method: POST + url: https://api.devcloud.linode.com/v4beta/object-storage/buckets/pl-labkrk-2/go-test-logs-destination-1778150734488950000/object-list + method: GET response: - body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1777451063219336000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/29/akamai_log-843828-1777452324-874359-config.gz?Signature=MIQsXO9RinSSKX6aiyglfkPI%2FAo%3D&Expires=1777453922&AWSAccessKeyID=SANITIZED", - "exists": true}' + body: '{"data": [{"name": "cloud-logs-test-connection-20260507T104536", "size": + 9, "last_modified": "2018-01-02T03:04:05.655Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", + "owner": "512fe32a-48a2-4a57-8a11-0eef806858d3"}], "next_marker": null, "is_truncated": + false}' headers: Access-Control-Allow-Credentials: - "true" @@ -1289,87 +936,25 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=0, s-maxage=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: - - "335" + - "259" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Expires: - - Wed, 29 Apr 2026 09:06:02 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: - Authorization, X-Filter - X-Accepted-Oauth-Scopes: - - object_storage: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: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/29/akamai_log-989492-1777452398-275336-config.gz","method":"DELETE","expires_in":360}' - form: {} - headers: - Accept: - - application/json - Content-Type: - - application/json - User-Agent: - - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1777451063219336000/object-url - method: POST - response: - body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1777451063219336000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/04/29/akamai_log-989492-1777452398-275336-config.gz?Signature=XcO8FfWN8BxnYp%2BmYfZhAqV2KcE%3D&Expires=1777453924&AWSAccessKeyID=SANITIZED", - "exists": true}' - headers: - Access-Control-Allow-Credentials: - - "true" - Access-Control-Allow-Headers: - - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter - Access-Control-Allow-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: - - "335" - Content-Security-Policy: - - default-src 'none' - Content-Type: - - application/json - Expires: - - Wed, 29 Apr 2026 09:06:04 GMT - Pragma: - - no-cache - Strict-Transport-Security: - - max-age=31536000 - Vary: - Authorization, X-Filter X-Accepted-Oauth-Scopes: - - object_storage:read_write + - object_storage:read_only X-Content-Type-Options: - nosniff X-Frame-Options: @@ -1378,14 +963,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" + - "400" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"name":"cloud-logs-test-connection-20260429T082427","method":"DELETE","expires_in":360}' + body: '{"name":"cloud-logs-test-connection-20260507T104536","method":"DELETE","expires_in":360}' form: {} headers: Accept: @@ -1394,10 +979,10 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1777451063219336000/object-url + url: https://api.devcloud.linode.com/v4beta/object-storage/buckets/pl-labkrk-2/go-test-logs-destination-1778150734488950000/object-url method: POST response: - body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1777451063219336000/cloud-logs-test-connection-20260429T082427?Signature=uNcvAmwN%2Bt2bXwnDPWdtwucULQw%3D&Expires=1777453925&AWSAccessKeyID=SANITIZED", + body: '{"url": "https://pl-labkrk2-1.devcloud.linodeobjects.com:443/go-test-logs-destination-1778150734488950000/cloud-logs-test-connection-20260507T104536?Signature=q%2BNXxZWnIZNBfSqY8HP6%2F8Xbr9U%3D&Expires=1778154957&AWSAccessKeyID=SANITIZED", "exists": true}' headers: Access-Control-Allow-Credentials: @@ -1413,19 +998,17 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: - - "257" + - "266" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Expires: - - Wed, 29 Apr 2026 09:06:05 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: @@ -1440,7 +1023,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" + - "400" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -1456,7 +1039,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast/go-test-logs-destination-1777451063219336000 + url: https://api.devcloud.linode.com/v4beta/object-storage/buckets/pl-labkrk-2/go-test-logs-destination-1778150734488950000 method: DELETE response: body: '{}' @@ -1474,7 +1057,7 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: @@ -1483,10 +1066,8 @@ interactions: - default-src 'none' Content-Type: - application/json - Expires: - - Wed, 29 Apr 2026 09:06:08 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: @@ -1501,7 +1082,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" + - "400" X-Xss-Protection: - 1; mode=block status: 200 OK diff --git a/test/integration/fixtures/TestLogsDestination_Create_InvalidSecret.yaml b/test/integration/fixtures/TestLogsDestination_Create_InvalidSecret.yaml index 2b07ca25a..baff495e2 100644 --- a/test/integration/fixtures/TestLogsDestination_Create_InvalidSecret.yaml +++ b/test/integration/fixtures/TestLogsDestination_Create_InvalidSecret.yaml @@ -2,7 +2,93 @@ version: 1 interactions: - request: - body: '{"region":"us-southeast","label":"go-test-logs-destination-1778050357277893000","acl":"private","cors_enabled":false}' + body: "" + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.devcloud.linode.com/v4beta/regions?page=1 + method: GET + response: + body: '{"data": [{"id": "pl-labkrk-2", "label": "Krakow, PL", "country": "pl", + "capabilities": ["Linodes", "Block Storage Encryption", "LA Disk Encryption", + "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", "Object Storage", + "GPU Linodes", "Kubernetes", "Kubernetes Enterprise", "Cloud Firewall", "Vlans", + "VPCs", "VPC Dual Stack", "Block Storage Migrations", "Managed Databases", "Metadata", + "Premium Plans", "Placement Group", "StackScripts", "NETINT Quadra T1U", "Maintenance + Policy", "Linode Interfaces", "Network LoadBalancer", "ACLP Logs Datacenter + LKE-E"], "monitors": {"alerts": ["Block Storage", "Cloud Firewall", "Kubernetes", + "Linodes", "Managed Databases", "Network LoadBalancer", "NodeBalancers", "Object + Storage", "logs"], "metrics": ["Block Storage", "Cloud Firewall", "Kubernetes", + "Linodes", "Managed Databases", "Network LoadBalancer", "NodeBalancers", "Object + Storage", "logs"]}, "status": "ok", "resolvers": {"ipv4": "172.24.224.240,172.24.224.229,172.24.224.236,172.24.224.238,172.24.224.235,172.24.224.241,172.24.224.230,172.24.224.239,172.24.224.233,172.24.224.234", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-labedgeeat-2", + "label": "East Wenatchee, US", "country": "us", "capabilities": ["Linodes", + "Disk Encryption", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "Metadata", + "Distributed Plans", "Linode Interfaces"], "monitors": {"alerts": [], "metrics": + []}, "status": "ok", "resolvers": {"ipv4": "173.223.100.53,173.223.101.53", + "ipv6": "1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": + 0, "maximum_linodes_per_pg": 0, "maximum_linodes_per_flexible_pg": 0}, "site_type": + "distributed"}, {"id": "us-labedgeeat-3", "label": "East Wenatchee, US", "country": + "us", "capabilities": ["Linodes", "Disk Encryption", "Cloud Firewall", "Metadata", + "Distributed Plans"], "monitors": {"alerts": [], "metrics": []}, "status": "ok", + "resolvers": {"ipv4": "173.223.100.53,173.223.101.53", "ipv6": "1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": 0, "maximum_linodes_per_pg": + 0, "maximum_linodes_per_flexible_pg": 0}, "site_type": "distributed"}], "page": + 1, "pages": 1, "results": 3}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - private, max-age=900 + - private, max-age=60, s-maxage=60 + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Server: + - nginx + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - '*' + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "400" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" +- request: + body: '{"region":"pl-labkrk-2","label":"go-test-logs-destination-1778158616911573000","acl":"private","cors_enabled":false}' form: {} headers: Accept: @@ -11,13 +97,13 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets + url: https://api.devcloud.linode.com/v4beta/object-storage/buckets method: POST response: - body: '{"hostname": "go-test-logs-destination-1778050357277893000.us-southeast-1.linodeobjects.com", - "label": "go-test-logs-destination-1778050357277893000", "created": "2018-01-02T03:04:05", - "region": "us-southeast", "cluster": "us-southeast-1", "size": 0, "objects": - 0, "endpoint_type": "E0", "s3_endpoint": "us-southeast-1.linodeobjects.com"}' + body: '{"hostname": "go-test-logs-destination-1778158616911573000.pl-labkrk2-1.devcloud.linodeobjects.com", + "label": "go-test-logs-destination-1778158616911573000", "created": "2018-01-02T03:04:05", + "region": "pl-labkrk-2", "cluster": "pl-labkrk2-1", "size": 0, "objects": 0, + "endpoint_type": "E1", "s3_endpoint": "pl-labkrk2-1.devcloud.linodeobjects.com"}' headers: Access-Control-Allow-Credentials: - "true" @@ -32,19 +118,17 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: - - "338" + - "349" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Expires: - - Wed, 06 May 2026 06:52:38 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: @@ -59,14 +143,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "60" + - "12" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1778050358505777000"}' + body: '{"label":"go-test-logs-destination-1778158617644701000","regions":["pl-labkrk-2"]}' form: {} headers: Accept: @@ -75,21 +159,13 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/keys + url: https://api.devcloud.linode.com/v4beta/object-storage/keys method: POST response: - body: '{"id": 3576470, "label": "go-test-logs-destination-1778050358505777000", + body: '{"id": 341691, "label": "go-test-logs-destination-1778158617644701000", "access_key": "[SANITIZED]", "secret_key": "[SANITIZED]", "limited": false, - "bucket_access": null, "regions": [{"id": "us-east", "s3_endpoint": "us-east-1.linodeobjects.com", - "endpoint_type": "E0"}, {"id": "us-iad", "s3_endpoint": "us-iad-10.linodeobjects.com", - "endpoint_type": "E1"}, {"id": "us-lax", "s3_endpoint": "us-lax-1.linodeobjects.com", - "endpoint_type": "E1"}, {"id": "us-lax", "s3_endpoint": "us-lax-4.linodeobjects.com", - "endpoint_type": "E3"}, {"id": "us-mia", "s3_endpoint": "us-mia-1.linodeobjects.com", - "endpoint_type": "E1"}, {"id": "us-ord", "s3_endpoint": "us-ord-10.linodeobjects.com", - "endpoint_type": "E3"}, {"id": "us-ord", "s3_endpoint": "us-ord-1.linodeobjects.com", - "endpoint_type": "E1"}, {"id": "us-sea", "s3_endpoint": "us-sea-1.linodeobjects.com", - "endpoint_type": "E1"}, {"id": "us-southeast", "s3_endpoint": "us-southeast-1.linodeobjects.com", - "endpoint_type": "E0"}]}' + "bucket_access": null, "regions": [{"id": "pl-labkrk-2", "s3_endpoint": "pl-labkrk2-1.devcloud.linodeobjects.com", + "endpoint_type": "E1"}]}' headers: Access-Control-Allow-Credentials: - "true" @@ -104,22 +180,21 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive + Content-Length: + - "325" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Expires: - - Wed, 06 May 2026 06:52:41 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: - Authorization, X-Filter - - Accept-Encoding X-Accepted-Oauth-Scopes: - object_storage:read_write X-Content-Type-Options: @@ -130,14 +205,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "60" + - "12" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1778050360962451000","type":"akamai_object_storage","details":{"access_key_id":"1","access_key_secret":"1","bucket_name":"go-test-logs-destination-1778050357277893000","host":"go-test-logs-destination-1778050357277893000.us-southeast-1.linodeobjects.com"}}' + body: '{"label":"go-test-logs-destination-1778158618299844000","type":"akamai_object_storage","details":{"access_key_id":"1","access_key_secret":"1","bucket_name":"go-test-logs-destination-1778158616911573000","host":"go-test-logs-destination-1778158616911573000.pl-labkrk2-1.devcloud.linodeobjects.com"}}' form: {} headers: Accept: @@ -146,7 +221,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations + url: https://api.devcloud.linode.com/v4beta/monitor/streams/destinations method: POST response: body: '{"errors": [{"reason": "Invalid access key id or secret key", "field": @@ -160,18 +235,14 @@ interactions: - '*' Akamai-Internal-Account: - '*' - Cache-Control: - - max-age=0, no-cache, no-store + Connection: + - keep-alive Content-Length: - "107" Content-Type: - application/json - Expires: - - Wed, 06 May 2026 06:52:41 GMT - Pragma: - - no-cache - Strict-Transport-Security: - - max-age=31536000 + Server: + - nginx X-Accepted-Oauth-Scopes: - monitor:read_write X-Frame-Options: @@ -179,8 +250,8 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" - status: 400 Bad Request + - "400" + status: 400 BAD REQUEST code: 400 duration: "" - request: @@ -193,7 +264,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/keys/3576470 + url: https://api.devcloud.linode.com/v4beta/object-storage/keys/341691 method: DELETE response: body: '{}' @@ -211,7 +282,7 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: @@ -220,10 +291,8 @@ interactions: - default-src 'none' Content-Type: - application/json - Expires: - - Wed, 06 May 2026 06:52:42 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: @@ -238,7 +307,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "60" + - "12" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -254,7 +323,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast/go-test-logs-destination-1778050357277893000/object-list + url: https://api.devcloud.linode.com/v4beta/object-storage/buckets/pl-labkrk-2/go-test-logs-destination-1778158616911573000/object-list method: GET response: body: '{"data": [], "next_marker": null, "is_truncated": false}' @@ -272,7 +341,8 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=0, s-maxage=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: @@ -281,10 +351,8 @@ interactions: - default-src 'none' Content-Type: - application/json - Expires: - - Wed, 06 May 2026 06:52:43 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: @@ -300,7 +368,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" + - "400" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -316,7 +384,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast/go-test-logs-destination-1778050357277893000 + url: https://api.devcloud.linode.com/v4beta/object-storage/buckets/pl-labkrk-2/go-test-logs-destination-1778158616911573000 method: DELETE response: body: '{}' @@ -334,7 +402,7 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: @@ -343,10 +411,8 @@ interactions: - default-src 'none' Content-Type: - application/json - Expires: - - Wed, 06 May 2026 06:52:46 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: @@ -361,7 +427,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" + - "400" X-Xss-Protection: - 1; mode=block status: 200 OK diff --git a/test/integration/fixtures/TestLogsDestination_Create_InvalidType.yaml b/test/integration/fixtures/TestLogsDestination_Create_InvalidType.yaml index 25967bf85..7049d9d3f 100644 --- a/test/integration/fixtures/TestLogsDestination_Create_InvalidType.yaml +++ b/test/integration/fixtures/TestLogsDestination_Create_InvalidType.yaml @@ -2,7 +2,93 @@ version: 1 interactions: - request: - body: '{"region":"us-southeast","label":"go-test-logs-destination-1778050366803952000","acl":"private","cors_enabled":false}' + body: "" + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.devcloud.linode.com/v4beta/regions?page=1 + method: GET + response: + body: '{"data": [{"id": "pl-labkrk-2", "label": "Krakow, PL", "country": "pl", + "capabilities": ["Linodes", "Block Storage Encryption", "LA Disk Encryption", + "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", "Object Storage", + "GPU Linodes", "Kubernetes", "Kubernetes Enterprise", "Cloud Firewall", "Vlans", + "VPCs", "VPC Dual Stack", "Block Storage Migrations", "Managed Databases", "Metadata", + "Premium Plans", "Placement Group", "StackScripts", "NETINT Quadra T1U", "Maintenance + Policy", "Linode Interfaces", "Network LoadBalancer", "ACLP Logs Datacenter + LKE-E"], "monitors": {"alerts": ["Block Storage", "Cloud Firewall", "Kubernetes", + "Linodes", "Managed Databases", "Network LoadBalancer", "NodeBalancers", "Object + Storage", "logs"], "metrics": ["Block Storage", "Cloud Firewall", "Kubernetes", + "Linodes", "Managed Databases", "Network LoadBalancer", "NodeBalancers", "Object + Storage", "logs"]}, "status": "ok", "resolvers": {"ipv4": "172.24.224.240,172.24.224.229,172.24.224.236,172.24.224.238,172.24.224.235,172.24.224.241,172.24.224.230,172.24.224.239,172.24.224.233,172.24.224.234", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-labedgeeat-2", + "label": "East Wenatchee, US", "country": "us", "capabilities": ["Linodes", + "Disk Encryption", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "Metadata", + "Distributed Plans", "Linode Interfaces"], "monitors": {"alerts": [], "metrics": + []}, "status": "ok", "resolvers": {"ipv4": "173.223.100.53,173.223.101.53", + "ipv6": "1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": + 0, "maximum_linodes_per_pg": 0, "maximum_linodes_per_flexible_pg": 0}, "site_type": + "distributed"}, {"id": "us-labedgeeat-3", "label": "East Wenatchee, US", "country": + "us", "capabilities": ["Linodes", "Disk Encryption", "Cloud Firewall", "Metadata", + "Distributed Plans"], "monitors": {"alerts": [], "metrics": []}, "status": "ok", + "resolvers": {"ipv4": "173.223.100.53,173.223.101.53", "ipv6": "1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": 0, "maximum_linodes_per_pg": + 0, "maximum_linodes_per_flexible_pg": 0}, "site_type": "distributed"}], "page": + 1, "pages": 1, "results": 3}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - private, max-age=900 + - private, max-age=60, s-maxage=60 + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Server: + - nginx + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - '*' + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "400" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" +- request: + body: '{"region":"pl-labkrk-2","label":"go-test-logs-destination-1778158714421342000","acl":"private","cors_enabled":false}' form: {} headers: Accept: @@ -11,13 +97,13 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets + url: https://api.devcloud.linode.com/v4beta/object-storage/buckets method: POST response: - body: '{"hostname": "go-test-logs-destination-1778050366803952000.us-southeast-1.linodeobjects.com", - "label": "go-test-logs-destination-1778050366803952000", "created": "2018-01-02T03:04:05", - "region": "us-southeast", "cluster": "us-southeast-1", "size": 0, "objects": - 0, "endpoint_type": "E0", "s3_endpoint": "us-southeast-1.linodeobjects.com"}' + body: '{"hostname": "go-test-logs-destination-1778158714421342000.pl-labkrk2-1.devcloud.linodeobjects.com", + "label": "go-test-logs-destination-1778158714421342000", "created": "2018-01-02T03:04:05", + "region": "pl-labkrk-2", "cluster": "pl-labkrk2-1", "size": 0, "objects": 0, + "endpoint_type": "E1", "s3_endpoint": "pl-labkrk2-1.devcloud.linodeobjects.com"}' headers: Access-Control-Allow-Credentials: - "true" @@ -32,19 +118,17 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: - - "338" + - "349" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Expires: - - Wed, 06 May 2026 06:52:49 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: @@ -59,14 +143,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "60" + - "12" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1778050369234853000"}' + body: '{"label":"go-test-logs-destination-1778158715174294000","regions":["pl-labkrk-2"]}' form: {} headers: Accept: @@ -75,21 +159,13 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/keys + url: https://api.devcloud.linode.com/v4beta/object-storage/keys method: POST response: - body: '{"id": 3576474, "label": "go-test-logs-destination-1778050369234853000", + body: '{"id": 341692, "label": "go-test-logs-destination-1778158715174294000", "access_key": "[SANITIZED]", "secret_key": "[SANITIZED]", "limited": false, - "bucket_access": null, "regions": [{"id": "us-east", "s3_endpoint": "us-east-1.linodeobjects.com", - "endpoint_type": "E0"}, {"id": "us-iad", "s3_endpoint": "us-iad-10.linodeobjects.com", - "endpoint_type": "E1"}, {"id": "us-lax", "s3_endpoint": "us-lax-1.linodeobjects.com", - "endpoint_type": "E1"}, {"id": "us-lax", "s3_endpoint": "us-lax-4.linodeobjects.com", - "endpoint_type": "E3"}, {"id": "us-mia", "s3_endpoint": "us-mia-1.linodeobjects.com", - "endpoint_type": "E1"}, {"id": "us-ord", "s3_endpoint": "us-ord-10.linodeobjects.com", - "endpoint_type": "E3"}, {"id": "us-ord", "s3_endpoint": "us-ord-1.linodeobjects.com", - "endpoint_type": "E1"}, {"id": "us-sea", "s3_endpoint": "us-sea-1.linodeobjects.com", - "endpoint_type": "E1"}, {"id": "us-southeast", "s3_endpoint": "us-southeast-1.linodeobjects.com", - "endpoint_type": "E0"}]}' + "bucket_access": null, "regions": [{"id": "pl-labkrk-2", "s3_endpoint": "pl-labkrk2-1.devcloud.linodeobjects.com", + "endpoint_type": "E1"}]}' headers: Access-Control-Allow-Credentials: - "true" @@ -104,22 +180,21 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive + Content-Length: + - "325" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Expires: - - Wed, 06 May 2026 06:52:51 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: - Authorization, X-Filter - - Accept-Encoding X-Accepted-Oauth-Scopes: - object_storage:read_write X-Content-Type-Options: @@ -130,14 +205,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "60" + - "12" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1778050371723025000","type":"invalid_type","details":{"access_key_id":"[SANITIZED]","access_key_secret":"[SANITIZED]","bucket_name":"go-test-logs-destination-1778050366803952000","host":"go-test-logs-destination-1778050366803952000.us-southeast-1.linodeobjects.com"}}' + body: '{"label":"go-test-logs-destination-1778158715901611000","type":"invalid_type","details":{"access_key_id":"Z6PRDPWQQTJ1S0DTFTKN","access_key_secret":"cTBCyfJnHRZGRpCQh5JnaCJCAQUw6zuJuv85zShX","bucket_name":"go-test-logs-destination-1778158714421342000","host":"go-test-logs-destination-1778158714421342000.pl-labkrk2-1.devcloud.linodeobjects.com"}}' form: {} headers: Accept: @@ -146,7 +221,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations + url: https://api.devcloud.linode.com/v4beta/monitor/streams/destinations method: POST response: body: '{"errors": [{"reason": "Must be one of akamai_object_storage, custom_https", @@ -160,18 +235,14 @@ interactions: - '*' Akamai-Internal-Account: - '*' - Cache-Control: - - max-age=0, no-cache, no-store + Connection: + - keep-alive Content-Length: - "95" Content-Type: - application/json - Expires: - - Wed, 06 May 2026 06:52:52 GMT - Pragma: - - no-cache - Strict-Transport-Security: - - max-age=31536000 + Server: + - nginx X-Accepted-Oauth-Scopes: - monitor:read_write X-Frame-Options: @@ -179,8 +250,8 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" - status: 400 Bad Request + - "400" + status: 400 BAD REQUEST code: 400 duration: "" - request: @@ -193,7 +264,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/keys/3576474 + url: https://api.devcloud.linode.com/v4beta/object-storage/keys/341692 method: DELETE response: body: '{}' @@ -211,7 +282,7 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: @@ -220,10 +291,8 @@ interactions: - default-src 'none' Content-Type: - application/json - Expires: - - Wed, 06 May 2026 06:52:52 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: @@ -238,7 +307,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "60" + - "12" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -254,7 +323,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast/go-test-logs-destination-1778050366803952000/object-list + url: https://api.devcloud.linode.com/v4beta/object-storage/buckets/pl-labkrk-2/go-test-logs-destination-1778158714421342000/object-list method: GET response: body: '{"data": [], "next_marker": null, "is_truncated": false}' @@ -272,7 +341,8 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=0, s-maxage=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: @@ -281,10 +351,8 @@ interactions: - default-src 'none' Content-Type: - application/json - Expires: - - Wed, 06 May 2026 06:52:53 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: @@ -300,7 +368,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" + - "400" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -316,7 +384,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast/go-test-logs-destination-1778050366803952000 + url: https://api.devcloud.linode.com/v4beta/object-storage/buckets/pl-labkrk-2/go-test-logs-destination-1778158714421342000 method: DELETE response: body: '{}' @@ -334,7 +402,7 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: @@ -343,10 +411,8 @@ interactions: - default-src 'none' Content-Type: - application/json - Expires: - - Wed, 06 May 2026 06:52:56 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: @@ -361,7 +427,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" + - "400" X-Xss-Protection: - 1; mode=block status: 200 OK diff --git a/test/integration/fixtures/TestLogsDestination_Delete.yaml b/test/integration/fixtures/TestLogsDestination_Delete.yaml index b106c6b88..e1193f397 100644 --- a/test/integration/fixtures/TestLogsDestination_Delete.yaml +++ b/test/integration/fixtures/TestLogsDestination_Delete.yaml @@ -2,7 +2,7 @@ version: 1 interactions: - request: - body: '{"region":"us-southeast","label":"go-test-logs-destination-1778050316010853000","acl":"private","cors_enabled":false}' + body: "" form: {} headers: Accept: @@ -11,13 +11,99 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets + url: https://api.devcloud.linode.com/v4beta/regions?page=1 + method: GET + response: + body: '{"data": [{"id": "pl-labkrk-2", "label": "Krakow, PL", "country": "pl", + "capabilities": ["Linodes", "Block Storage Encryption", "LA Disk Encryption", + "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", "Object Storage", + "GPU Linodes", "Kubernetes", "Kubernetes Enterprise", "Cloud Firewall", "Vlans", + "VPCs", "VPC Dual Stack", "Block Storage Migrations", "Managed Databases", "Metadata", + "Premium Plans", "Placement Group", "StackScripts", "NETINT Quadra T1U", "Maintenance + Policy", "Linode Interfaces", "Network LoadBalancer", "ACLP Logs Datacenter + LKE-E"], "monitors": {"alerts": ["Block Storage", "Cloud Firewall", "Kubernetes", + "Linodes", "Managed Databases", "Network LoadBalancer", "NodeBalancers", "Object + Storage", "logs"], "metrics": ["Block Storage", "Cloud Firewall", "Kubernetes", + "Linodes", "Managed Databases", "Network LoadBalancer", "NodeBalancers", "Object + Storage", "logs"]}, "status": "ok", "resolvers": {"ipv4": "172.24.224.240,172.24.224.229,172.24.224.236,172.24.224.238,172.24.224.235,172.24.224.241,172.24.224.230,172.24.224.239,172.24.224.233,172.24.224.234", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-labedgeeat-2", + "label": "East Wenatchee, US", "country": "us", "capabilities": ["Linodes", + "Disk Encryption", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "Metadata", + "Distributed Plans", "Linode Interfaces"], "monitors": {"alerts": [], "metrics": + []}, "status": "ok", "resolvers": {"ipv4": "173.223.100.53,173.223.101.53", + "ipv6": "1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": + 0, "maximum_linodes_per_pg": 0, "maximum_linodes_per_flexible_pg": 0}, "site_type": + "distributed"}, {"id": "us-labedgeeat-3", "label": "East Wenatchee, US", "country": + "us", "capabilities": ["Linodes", "Disk Encryption", "Cloud Firewall", "Metadata", + "Distributed Plans"], "monitors": {"alerts": [], "metrics": []}, "status": "ok", + "resolvers": {"ipv4": "173.223.100.53,173.223.101.53", "ipv6": "1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": 0, "maximum_linodes_per_pg": + 0, "maximum_linodes_per_flexible_pg": 0}, "site_type": "distributed"}], "page": + 1, "pages": 1, "results": 3}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - private, max-age=900 + - private, max-age=60, s-maxage=60 + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Server: + - nginx + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - '*' + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "400" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" +- request: + body: '{"region":"pl-labkrk-2","label":"go-test-logs-destination-1778158332905608000","acl":"private","cors_enabled":false}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.devcloud.linode.com/v4beta/object-storage/buckets method: POST response: - body: '{"hostname": "go-test-logs-destination-1778050316010853000.us-southeast-1.linodeobjects.com", - "label": "go-test-logs-destination-1778050316010853000", "created": "2018-01-02T03:04:05", - "region": "us-southeast", "cluster": "us-southeast-1", "size": 0, "objects": - 0, "endpoint_type": "E0", "s3_endpoint": "us-southeast-1.linodeobjects.com"}' + body: '{"hostname": "go-test-logs-destination-1778158332905608000.pl-labkrk2-1.devcloud.linodeobjects.com", + "label": "go-test-logs-destination-1778158332905608000", "created": "2018-01-02T03:04:05", + "region": "pl-labkrk-2", "cluster": "pl-labkrk2-1", "size": 0, "objects": 0, + "endpoint_type": "E1", "s3_endpoint": "pl-labkrk2-1.devcloud.linodeobjects.com"}' headers: Access-Control-Allow-Credentials: - "true" @@ -32,19 +118,17 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: - - "338" + - "349" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Expires: - - Wed, 06 May 2026 06:51:57 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: @@ -59,14 +143,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "60" + - "12" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1778050317804344000"}' + body: '{"label":"go-test-logs-destination-1778158333741046000","regions":["pl-labkrk-2"]}' form: {} headers: Accept: @@ -75,21 +159,13 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/keys + url: https://api.devcloud.linode.com/v4beta/object-storage/keys method: POST response: - body: '{"id": 3576466, "label": "go-test-logs-destination-1778050317804344000", + body: '{"id": 341687, "label": "go-test-logs-destination-1778158333741046000", "access_key": "[SANITIZED]", "secret_key": "[SANITIZED]", "limited": false, - "bucket_access": null, "regions": [{"id": "us-east", "s3_endpoint": "us-east-1.linodeobjects.com", - "endpoint_type": "E0"}, {"id": "us-iad", "s3_endpoint": "us-iad-10.linodeobjects.com", - "endpoint_type": "E1"}, {"id": "us-lax", "s3_endpoint": "us-lax-1.linodeobjects.com", - "endpoint_type": "E1"}, {"id": "us-lax", "s3_endpoint": "us-lax-4.linodeobjects.com", - "endpoint_type": "E3"}, {"id": "us-mia", "s3_endpoint": "us-mia-1.linodeobjects.com", - "endpoint_type": "E1"}, {"id": "us-ord", "s3_endpoint": "us-ord-10.linodeobjects.com", - "endpoint_type": "E3"}, {"id": "us-ord", "s3_endpoint": "us-ord-1.linodeobjects.com", - "endpoint_type": "E1"}, {"id": "us-sea", "s3_endpoint": "us-sea-1.linodeobjects.com", - "endpoint_type": "E1"}, {"id": "us-southeast", "s3_endpoint": "us-southeast-1.linodeobjects.com", - "endpoint_type": "E0"}]}' + "bucket_access": null, "regions": [{"id": "pl-labkrk-2", "s3_endpoint": "pl-labkrk2-1.devcloud.linodeobjects.com", + "endpoint_type": "E1"}]}' headers: Access-Control-Allow-Credentials: - "true" @@ -104,22 +180,21 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive + Content-Length: + - "325" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Expires: - - Wed, 06 May 2026 06:52:00 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: - Authorization, X-Filter - - Accept-Encoding X-Accepted-Oauth-Scopes: - object_storage:read_write X-Content-Type-Options: @@ -130,14 +205,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "60" + - "12" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1778050319979774000","type":"akamai_object_storage","details":{"access_key_id":"[SANITIZED]","access_key_secret":"[SANITIZED]","bucket_name":"go-test-logs-destination-1778050316010853000","host":"go-test-logs-destination-1778050316010853000.us-southeast-1.linodeobjects.com"}}' + body: '{"label":"go-test-logs-destination-1778158334285584000","type":"akamai_object_storage","details":{"access_key_id":"FJJM18CNMNBMEP71REC0","access_key_secret":"jE36inti1qiAhrDQ1lTjeLq9J3xXczEPXAu3S5g5","bucket_name":"go-test-logs-destination-1778158332905608000","host":"go-test-logs-destination-1778158332905608000.pl-labkrk2-1.devcloud.linodeobjects.com"}}' form: {} headers: Accept: @@ -146,15 +221,15 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations + url: https://api.devcloud.linode.com/v4beta/monitor/streams/destinations method: POST response: - body: '{"id": 404, "label": "go-test-logs-destination-1778050319979774000", "type": - "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778050316010853000.us-southeast-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1778050316010853000", "access_key_id": - "[SANITIZED]"}, "version": 1, "status": "active", "created_by": "user", - "created": "2018-01-02T03:04:05", "updated_by": "user", - "updated": "2018-01-02T03:04:05"}' + body: '{"id": 1131, "label": "go-test-logs-destination-1778158334285584000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778158332905608000.pl-labkrk2-1.devcloud.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1778158332905608000", "access_key_id": + "FJJM18CNMNBMEP71REC0"}, "version": 1, "status": "active", "created_by": "klipensk-aclp", + "created": "2018-01-02T03:04:05", "updated_by": "klipensk-aclp", "updated": + "2018-01-02T03:04:05"}' headers: Access-Control-Allow-Credentials: - "true" @@ -169,19 +244,17 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: - - "499" + - "479" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Expires: - - Wed, 06 May 2026 06:52:00 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: @@ -196,7 +269,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" + - "400" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -212,7 +285,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations/404 + url: https://api.devcloud.linode.com/v4beta/monitor/streams/destinations/1131 method: DELETE response: body: '{}' @@ -230,7 +303,7 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: @@ -239,10 +312,8 @@ interactions: - default-src 'none' Content-Type: - application/json - Expires: - - Wed, 06 May 2026 06:52:01 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: @@ -257,7 +328,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" + - "400" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -273,7 +344,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations/404 + url: https://api.devcloud.linode.com/v4beta/monitor/streams/destinations/1131 method: GET response: body: '{"errors": [{"reason": "Destination not found"}]}' @@ -287,19 +358,15 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=0, s-maxage=0, no-cache, no-store Connection: - keep-alive Content-Length: - "49" Content-Type: - application/json - Expires: - - Wed, 06 May 2026 06:52:01 GMT - Pragma: - - no-cache - Strict-Transport-Security: - - max-age=31536000 + Server: + - nginx Vary: - Authorization, X-Filter X-Accepted-Oauth-Scopes: @@ -309,8 +376,8 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" - status: 404 Not Found + - "400" + status: 404 NOT FOUND code: 404 duration: "" - request: @@ -323,7 +390,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations/404 + url: https://api.devcloud.linode.com/v4beta/monitor/streams/destinations/1131 method: GET response: body: '{"errors": [{"reason": "Destination not found"}]}' @@ -337,19 +404,15 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=0, s-maxage=0, no-cache, no-store Connection: - keep-alive Content-Length: - "49" Content-Type: - application/json - Expires: - - Wed, 06 May 2026 06:52:01 GMT - Pragma: - - no-cache - Strict-Transport-Security: - - max-age=31536000 + Server: + - nginx Vary: - Authorization, X-Filter X-Accepted-Oauth-Scopes: @@ -359,8 +422,8 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" - status: 404 Not Found + - "400" + status: 404 NOT FOUND code: 404 duration: "" - request: @@ -373,7 +436,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/keys/3576466 + url: https://api.devcloud.linode.com/v4beta/object-storage/keys/341687 method: DELETE response: body: '{}' @@ -391,7 +454,7 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: @@ -400,10 +463,8 @@ interactions: - default-src 'none' Content-Type: - application/json - Expires: - - Wed, 06 May 2026 06:52:02 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: @@ -418,7 +479,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "60" + - "12" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -434,12 +495,12 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast/go-test-logs-destination-1778050316010853000/object-list + url: https://api.devcloud.linode.com/v4beta/object-storage/buckets/pl-labkrk-2/go-test-logs-destination-1778158332905608000/object-list method: GET response: - body: '{"data": [{"name": "cloud-logs-test-connection-20260506T065200", "size": - 9, "last_modified": "2018-01-02T03:04:05.602Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", - "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}], "next_marker": null, "is_truncated": + body: '{"data": [{"name": "cloud-logs-test-connection-20260507T125214", "size": + 9, "last_modified": "2018-01-02T03:04:05.026Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", + "owner": "512fe32a-48a2-4a57-8a11-0eef806858d3"}], "next_marker": null, "is_truncated": false}' headers: Access-Control-Allow-Credentials: @@ -455,7 +516,8 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=0, s-maxage=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: @@ -464,10 +526,8 @@ interactions: - default-src 'none' Content-Type: - application/json - Expires: - - Wed, 06 May 2026 06:52:03 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: @@ -483,14 +543,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" + - "400" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"name":"cloud-logs-test-connection-20260506T065200","method":"DELETE","expires_in":360}' + body: '{"name":"cloud-logs-test-connection-20260507T125214","method":"DELETE","expires_in":360}' form: {} headers: Accept: @@ -499,10 +559,10 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1778050316010853000/object-url + url: https://api.devcloud.linode.com/v4beta/object-storage/buckets/pl-labkrk-2/go-test-logs-destination-1778158332905608000/object-url method: POST response: - body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1778050316010853000/cloud-logs-test-connection-20260506T065200?Signature=6uEELrZEPnQMzw5TGqwIE23mSRM%3D&Expires=1778050683&AWSAccessKeyID=SANITIZED", + body: '{"url": "https://pl-labkrk2-1.devcloud.linodeobjects.com:443/go-test-logs-destination-1778158332905608000/cloud-logs-test-connection-20260507T125214?Signature=lVTdYYvpeYjlWppPZLqd3OC1bsM%3D&Expires=1778158699&AWSAccessKeyID=SANITIZED", "exists": true}' headers: Access-Control-Allow-Credentials: @@ -518,19 +578,17 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: - - "255" + - "262" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Expires: - - Wed, 06 May 2026 06:52:04 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: @@ -545,7 +603,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" + - "400" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -561,7 +619,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast/go-test-logs-destination-1778050316010853000 + url: https://api.devcloud.linode.com/v4beta/object-storage/buckets/pl-labkrk-2/go-test-logs-destination-1778158332905608000 method: DELETE response: body: '{}' @@ -579,7 +637,7 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: @@ -588,10 +646,8 @@ interactions: - default-src 'none' Content-Type: - application/json - Expires: - - Wed, 06 May 2026 06:52:07 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: @@ -606,7 +662,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" + - "400" X-Xss-Protection: - 1; mode=block status: 200 OK diff --git a/test/integration/fixtures/TestLogsDestination_Get.yaml b/test/integration/fixtures/TestLogsDestination_Get.yaml index 0adfcbc2a..32b504f5e 100644 --- a/test/integration/fixtures/TestLogsDestination_Get.yaml +++ b/test/integration/fixtures/TestLogsDestination_Get.yaml @@ -2,7 +2,7 @@ version: 1 interactions: - request: - body: '{"region":"us-southeast","label":"go-test-logs-destination-1778050327857586000","acl":"private","cors_enabled":false}' + body: "" form: {} headers: Accept: @@ -11,13 +11,99 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets + url: https://api.devcloud.linode.com/v4beta/regions?page=1 + method: GET + response: + body: '{"data": [{"id": "pl-labkrk-2", "label": "Krakow, PL", "country": "pl", + "capabilities": ["Linodes", "Block Storage Encryption", "LA Disk Encryption", + "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", "Object Storage", + "GPU Linodes", "Kubernetes", "Kubernetes Enterprise", "Cloud Firewall", "Vlans", + "VPCs", "VPC Dual Stack", "Block Storage Migrations", "Managed Databases", "Metadata", + "Premium Plans", "Placement Group", "StackScripts", "NETINT Quadra T1U", "Maintenance + Policy", "Linode Interfaces", "Network LoadBalancer", "ACLP Logs Datacenter + LKE-E"], "monitors": {"alerts": ["Block Storage", "Cloud Firewall", "Kubernetes", + "Linodes", "Managed Databases", "Network LoadBalancer", "NodeBalancers", "Object + Storage", "logs"], "metrics": ["Block Storage", "Cloud Firewall", "Kubernetes", + "Linodes", "Managed Databases", "Network LoadBalancer", "NodeBalancers", "Object + Storage", "logs"]}, "status": "ok", "resolvers": {"ipv4": "172.24.224.240,172.24.224.229,172.24.224.236,172.24.224.238,172.24.224.235,172.24.224.241,172.24.224.230,172.24.224.239,172.24.224.233,172.24.224.234", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-labedgeeat-2", + "label": "East Wenatchee, US", "country": "us", "capabilities": ["Linodes", + "Disk Encryption", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "Metadata", + "Distributed Plans", "Linode Interfaces"], "monitors": {"alerts": [], "metrics": + []}, "status": "ok", "resolvers": {"ipv4": "173.223.100.53,173.223.101.53", + "ipv6": "1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": + 0, "maximum_linodes_per_pg": 0, "maximum_linodes_per_flexible_pg": 0}, "site_type": + "distributed"}, {"id": "us-labedgeeat-3", "label": "East Wenatchee, US", "country": + "us", "capabilities": ["Linodes", "Disk Encryption", "Cloud Firewall", "Metadata", + "Distributed Plans"], "monitors": {"alerts": [], "metrics": []}, "status": "ok", + "resolvers": {"ipv4": "173.223.100.53,173.223.101.53", "ipv6": "1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": 0, "maximum_linodes_per_pg": + 0, "maximum_linodes_per_flexible_pg": 0}, "site_type": "distributed"}], "page": + 1, "pages": 1, "results": 3}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - private, max-age=900 + - private, max-age=60, s-maxage=60 + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Server: + - nginx + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - '*' + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "400" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" +- request: + body: '{"region":"pl-labkrk-2","label":"go-test-logs-destination-1778158444463812000","acl":"private","cors_enabled":false}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.devcloud.linode.com/v4beta/object-storage/buckets method: POST response: - body: '{"hostname": "go-test-logs-destination-1778050327857586000.us-southeast-1.linodeobjects.com", - "label": "go-test-logs-destination-1778050327857586000", "created": "2018-01-02T03:04:05", - "region": "us-southeast", "cluster": "us-southeast-1", "size": 0, "objects": - 0, "endpoint_type": "E0", "s3_endpoint": "us-southeast-1.linodeobjects.com"}' + body: '{"hostname": "go-test-logs-destination-1778158444463812000.pl-labkrk2-1.devcloud.linodeobjects.com", + "label": "go-test-logs-destination-1778158444463812000", "created": "2018-01-02T03:04:05", + "region": "pl-labkrk-2", "cluster": "pl-labkrk2-1", "size": 0, "objects": 0, + "endpoint_type": "E1", "s3_endpoint": "pl-labkrk2-1.devcloud.linodeobjects.com"}' headers: Access-Control-Allow-Credentials: - "true" @@ -32,19 +118,17 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: - - "338" + - "349" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Expires: - - Wed, 06 May 2026 06:52:09 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: @@ -59,14 +143,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "60" + - "12" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1778050329787087000"}' + body: '{"label":"go-test-logs-destination-1778158445108382000","regions":["pl-labkrk-2"]}' form: {} headers: Accept: @@ -75,21 +159,13 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/keys + url: https://api.devcloud.linode.com/v4beta/object-storage/keys method: POST response: - body: '{"id": 3576467, "label": "go-test-logs-destination-1778050329787087000", + body: '{"id": 341689, "label": "go-test-logs-destination-1778158445108382000", "access_key": "[SANITIZED]", "secret_key": "[SANITIZED]", "limited": false, - "bucket_access": null, "regions": [{"id": "us-east", "s3_endpoint": "us-east-1.linodeobjects.com", - "endpoint_type": "E0"}, {"id": "us-iad", "s3_endpoint": "us-iad-10.linodeobjects.com", - "endpoint_type": "E1"}, {"id": "us-lax", "s3_endpoint": "us-lax-1.linodeobjects.com", - "endpoint_type": "E1"}, {"id": "us-lax", "s3_endpoint": "us-lax-4.linodeobjects.com", - "endpoint_type": "E3"}, {"id": "us-mia", "s3_endpoint": "us-mia-1.linodeobjects.com", - "endpoint_type": "E1"}, {"id": "us-ord", "s3_endpoint": "us-ord-10.linodeobjects.com", - "endpoint_type": "E3"}, {"id": "us-ord", "s3_endpoint": "us-ord-1.linodeobjects.com", - "endpoint_type": "E1"}, {"id": "us-sea", "s3_endpoint": "us-sea-1.linodeobjects.com", - "endpoint_type": "E1"}, {"id": "us-southeast", "s3_endpoint": "us-southeast-1.linodeobjects.com", - "endpoint_type": "E0"}]}' + "bucket_access": null, "regions": [{"id": "pl-labkrk-2", "s3_endpoint": "pl-labkrk2-1.devcloud.linodeobjects.com", + "endpoint_type": "E1"}]}' headers: Access-Control-Allow-Credentials: - "true" @@ -104,22 +180,21 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive + Content-Length: + - "325" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Expires: - - Wed, 06 May 2026 06:52:12 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: - Authorization, X-Filter - - Accept-Encoding X-Accepted-Oauth-Scopes: - object_storage:read_write X-Content-Type-Options: @@ -130,14 +205,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "60" + - "12" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1778050332159629000","type":"akamai_object_storage","details":{"access_key_id":"[SANITIZED]","access_key_secret":"[SANITIZED]","bucket_name":"go-test-logs-destination-1778050327857586000","host":"go-test-logs-destination-1778050327857586000.us-southeast-1.linodeobjects.com"}}' + body: '{"label":"go-test-logs-destination-1778158445659109000","type":"akamai_object_storage","details":{"access_key_id":"1IF6EHFIFWH635BXGRZT","access_key_secret":"COHNLDlJhpQccnT1ZWSuiuPBHoC8ycomojDWRidq","bucket_name":"go-test-logs-destination-1778158444463812000","host":"go-test-logs-destination-1778158444463812000.pl-labkrk2-1.devcloud.linodeobjects.com"}}' form: {} headers: Accept: @@ -146,15 +221,15 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations + url: https://api.devcloud.linode.com/v4beta/monitor/streams/destinations method: POST response: - body: '{"id": 405, "label": "go-test-logs-destination-1778050332159629000", "type": - "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778050327857586000.us-southeast-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1778050327857586000", "access_key_id": - "[SANITIZED]"}, "version": 1, "status": "active", "created_by": "user", - "created": "2018-01-02T03:04:05", "updated_by": "user", - "updated": "2018-01-02T03:04:05"}' + body: '{"id": 1132, "label": "go-test-logs-destination-1778158445659109000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778158444463812000.pl-labkrk2-1.devcloud.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1778158444463812000", "access_key_id": + "1IF6EHFIFWH635BXGRZT"}, "version": 1, "status": "active", "created_by": "klipensk-aclp", + "created": "2018-01-02T03:04:05", "updated_by": "klipensk-aclp", "updated": + "2018-01-02T03:04:05"}' headers: Access-Control-Allow-Credentials: - "true" @@ -169,19 +244,17 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: - - "499" + - "479" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Expires: - - Wed, 06 May 2026 06:52:12 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: @@ -196,7 +269,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" + - "400" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -212,15 +285,15 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations/405 + url: https://api.devcloud.linode.com/v4beta/monitor/streams/destinations/1132 method: GET response: - body: '{"id": 405, "label": "go-test-logs-destination-1778050332159629000", "type": - "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778050327857586000.us-southeast-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1778050327857586000", "access_key_id": - "[SANITIZED]"}, "version": 1, "status": "active", "created_by": "user", - "created": "2018-01-02T03:04:05", "updated_by": "user", - "updated": "2018-01-02T03:04:05"}' + body: '{"id": 1132, "label": "go-test-logs-destination-1778158445659109000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778158444463812000.pl-labkrk2-1.devcloud.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1778158444463812000", "access_key_id": + "1IF6EHFIFWH635BXGRZT"}, "version": 1, "status": "active", "created_by": "klipensk-aclp", + "created": "2018-01-02T03:04:05", "updated_by": "klipensk-aclp", "updated": + "2018-01-02T03:04:05"}' headers: Access-Control-Allow-Credentials: - "true" @@ -235,19 +308,18 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=0, s-maxage=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: - - "499" + - "479" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Expires: - - Wed, 06 May 2026 06:52:13 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: @@ -263,7 +335,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" + - "400" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -279,15 +351,15 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations/405 + url: https://api.devcloud.linode.com/v4beta/monitor/streams/destinations/1132 method: GET response: - body: '{"id": 405, "label": "go-test-logs-destination-1778050332159629000", "type": - "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778050327857586000.us-southeast-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1778050327857586000", "access_key_id": - "[SANITIZED]"}, "version": 1, "status": "active", "created_by": "user", - "created": "2018-01-02T03:04:05", "updated_by": "user", - "updated": "2018-01-02T03:04:05"}' + body: '{"id": 1132, "label": "go-test-logs-destination-1778158445659109000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778158444463812000.pl-labkrk2-1.devcloud.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1778158444463812000", "access_key_id": + "1IF6EHFIFWH635BXGRZT"}, "version": 1, "status": "active", "created_by": "klipensk-aclp", + "created": "2018-01-02T03:04:05", "updated_by": "klipensk-aclp", "updated": + "2018-01-02T03:04:05"}' headers: Access-Control-Allow-Credentials: - "true" @@ -302,19 +374,18 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=0, s-maxage=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: - - "499" + - "479" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Expires: - - Wed, 06 May 2026 06:52:13 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: @@ -330,7 +401,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" + - "400" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -346,7 +417,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations/405 + url: https://api.devcloud.linode.com/v4beta/monitor/streams/destinations/1132 method: DELETE response: body: '{}' @@ -364,7 +435,7 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: @@ -373,10 +444,8 @@ interactions: - default-src 'none' Content-Type: - application/json - Expires: - - Wed, 06 May 2026 06:52:13 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: @@ -391,7 +460,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" + - "400" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -407,7 +476,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/keys/3576467 + url: https://api.devcloud.linode.com/v4beta/object-storage/keys/341689 method: DELETE response: body: '{}' @@ -425,7 +494,7 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: @@ -434,10 +503,8 @@ interactions: - default-src 'none' Content-Type: - application/json - Expires: - - Wed, 06 May 2026 06:52:14 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: @@ -452,7 +519,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "60" + - "12" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -468,12 +535,12 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast/go-test-logs-destination-1778050327857586000/object-list + url: https://api.devcloud.linode.com/v4beta/object-storage/buckets/pl-labkrk-2/go-test-logs-destination-1778158444463812000/object-list method: GET response: - body: '{"data": [{"name": "cloud-logs-test-connection-20260506T065212", "size": - 9, "last_modified": "2018-01-02T03:04:05.778Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", - "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}], "next_marker": null, "is_truncated": + body: '{"data": [{"name": "cloud-logs-test-connection-20260507T125406", "size": + 9, "last_modified": "2018-01-02T03:04:05.391Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", + "owner": "512fe32a-48a2-4a57-8a11-0eef806858d3"}], "next_marker": null, "is_truncated": false}' headers: Access-Control-Allow-Credentials: @@ -489,7 +556,8 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=0, s-maxage=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: @@ -498,10 +566,8 @@ interactions: - default-src 'none' Content-Type: - application/json - Expires: - - Wed, 06 May 2026 06:52:15 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: @@ -517,14 +583,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" + - "400" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"name":"cloud-logs-test-connection-20260506T065212","method":"DELETE","expires_in":360}' + body: '{"name":"cloud-logs-test-connection-20260507T125406","method":"DELETE","expires_in":360}' form: {} headers: Accept: @@ -533,10 +599,10 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1778050327857586000/object-url + url: https://api.devcloud.linode.com/v4beta/object-storage/buckets/pl-labkrk-2/go-test-logs-destination-1778158444463812000/object-url method: POST response: - body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1778050327857586000/cloud-logs-test-connection-20260506T065212?Signature=4qcGXTa9wKZ85RInpMJy6B7dF7M%3D&Expires=1778050697&AWSAccessKeyID=SANITIZED", + body: '{"url": "https://pl-labkrk2-1.devcloud.linodeobjects.com:443/go-test-logs-destination-1778158444463812000/cloud-logs-test-connection-20260507T125406?Signature=nYKcAXwXyevmFP17frPLZE4KOjw%3D&Expires=1778158811&AWSAccessKeyID=SANITIZED", "exists": true}' headers: Access-Control-Allow-Credentials: @@ -552,19 +618,17 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: - - "255" + - "262" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Expires: - - Wed, 06 May 2026 06:52:17 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: @@ -579,7 +643,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" + - "400" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -595,7 +659,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast/go-test-logs-destination-1778050327857586000 + url: https://api.devcloud.linode.com/v4beta/object-storage/buckets/pl-labkrk-2/go-test-logs-destination-1778158444463812000 method: DELETE response: body: '{}' @@ -613,7 +677,7 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: @@ -622,10 +686,8 @@ interactions: - default-src 'none' Content-Type: - application/json - Expires: - - Wed, 06 May 2026 06:52:20 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: @@ -640,7 +702,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" + - "400" X-Xss-Protection: - 1; mode=block status: 200 OK diff --git a/test/integration/fixtures/TestLogsDestination_List.yaml b/test/integration/fixtures/TestLogsDestination_List.yaml index b6e1e0f9b..ea94aadb2 100644 --- a/test/integration/fixtures/TestLogsDestination_List.yaml +++ b/test/integration/fixtures/TestLogsDestination_List.yaml @@ -2,7 +2,7 @@ version: 1 interactions: - request: - body: '{"region":"us-southeast","label":"go-test-logs-destination-1778050304029729000","acl":"private","cors_enabled":false}' + body: "" form: {} headers: Accept: @@ -11,13 +11,99 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets + url: https://api.devcloud.linode.com/v4beta/regions?page=1 + method: GET + response: + body: '{"data": [{"id": "pl-labkrk-2", "label": "Krakow, PL", "country": "pl", + "capabilities": ["Linodes", "Block Storage Encryption", "LA Disk Encryption", + "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", "Object Storage", + "GPU Linodes", "Kubernetes", "Kubernetes Enterprise", "Cloud Firewall", "Vlans", + "VPCs", "VPC Dual Stack", "Block Storage Migrations", "Managed Databases", "Metadata", + "Premium Plans", "Placement Group", "StackScripts", "NETINT Quadra T1U", "Maintenance + Policy", "Linode Interfaces", "Network LoadBalancer", "ACLP Logs Datacenter + LKE-E"], "monitors": {"alerts": ["Block Storage", "Cloud Firewall", "Kubernetes", + "Linodes", "Managed Databases", "Network LoadBalancer", "NodeBalancers", "Object + Storage", "logs"], "metrics": ["Block Storage", "Cloud Firewall", "Kubernetes", + "Linodes", "Managed Databases", "Network LoadBalancer", "NodeBalancers", "Object + Storage", "logs"]}, "status": "ok", "resolvers": {"ipv4": "172.24.224.240,172.24.224.229,172.24.224.236,172.24.224.238,172.24.224.235,172.24.224.241,172.24.224.230,172.24.224.239,172.24.224.233,172.24.224.234", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-labedgeeat-2", + "label": "East Wenatchee, US", "country": "us", "capabilities": ["Linodes", + "Disk Encryption", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "Metadata", + "Distributed Plans", "Linode Interfaces"], "monitors": {"alerts": [], "metrics": + []}, "status": "ok", "resolvers": {"ipv4": "173.223.100.53,173.223.101.53", + "ipv6": "1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": + 0, "maximum_linodes_per_pg": 0, "maximum_linodes_per_flexible_pg": 0}, "site_type": + "distributed"}, {"id": "us-labedgeeat-3", "label": "East Wenatchee, US", "country": + "us", "capabilities": ["Linodes", "Disk Encryption", "Cloud Firewall", "Metadata", + "Distributed Plans"], "monitors": {"alerts": [], "metrics": []}, "status": "ok", + "resolvers": {"ipv4": "173.223.100.53,173.223.101.53", "ipv6": "1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": 0, "maximum_linodes_per_pg": + 0, "maximum_linodes_per_flexible_pg": 0}, "site_type": "distributed"}], "page": + 1, "pages": 1, "results": 3}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - private, max-age=900 + - private, max-age=60, s-maxage=60 + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Server: + - nginx + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - '*' + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "400" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" +- request: + body: '{"region":"pl-labkrk-2","label":"go-test-logs-destination-1778158216351723000","acl":"private","cors_enabled":false}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.devcloud.linode.com/v4beta/object-storage/buckets method: POST response: - body: '{"hostname": "go-test-logs-destination-1778050304029729000.us-southeast-1.linodeobjects.com", - "label": "go-test-logs-destination-1778050304029729000", "created": "2018-01-02T03:04:05", - "region": "us-southeast", "cluster": "us-southeast-1", "size": 0, "objects": - 0, "endpoint_type": "E0", "s3_endpoint": "us-southeast-1.linodeobjects.com"}' + body: '{"hostname": "go-test-logs-destination-1778158216351723000.pl-labkrk2-1.devcloud.linodeobjects.com", + "label": "go-test-logs-destination-1778158216351723000", "created": "2018-01-02T03:04:05", + "region": "pl-labkrk-2", "cluster": "pl-labkrk2-1", "size": 0, "objects": 0, + "endpoint_type": "E1", "s3_endpoint": "pl-labkrk2-1.devcloud.linodeobjects.com"}' headers: Access-Control-Allow-Credentials: - "true" @@ -32,19 +118,17 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: - - "338" + - "349" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Expires: - - Wed, 06 May 2026 06:51:45 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: @@ -59,14 +143,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "60" + - "12" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1778050305259697000"}' + body: '{"label":"go-test-logs-destination-1778158217276767000","regions":["pl-labkrk-2"]}' form: {} headers: Accept: @@ -75,21 +159,13 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/keys + url: https://api.devcloud.linode.com/v4beta/object-storage/keys method: POST response: - body: '{"id": 3576463, "label": "go-test-logs-destination-1778050305259697000", + body: '{"id": 341678, "label": "go-test-logs-destination-1778158217276767000", "access_key": "[SANITIZED]", "secret_key": "[SANITIZED]", "limited": false, - "bucket_access": null, "regions": [{"id": "us-east", "s3_endpoint": "us-east-1.linodeobjects.com", - "endpoint_type": "E0"}, {"id": "us-iad", "s3_endpoint": "us-iad-10.linodeobjects.com", - "endpoint_type": "E1"}, {"id": "us-lax", "s3_endpoint": "us-lax-1.linodeobjects.com", - "endpoint_type": "E1"}, {"id": "us-lax", "s3_endpoint": "us-lax-4.linodeobjects.com", - "endpoint_type": "E3"}, {"id": "us-mia", "s3_endpoint": "us-mia-1.linodeobjects.com", - "endpoint_type": "E1"}, {"id": "us-ord", "s3_endpoint": "us-ord-10.linodeobjects.com", - "endpoint_type": "E3"}, {"id": "us-ord", "s3_endpoint": "us-ord-1.linodeobjects.com", - "endpoint_type": "E1"}, {"id": "us-sea", "s3_endpoint": "us-sea-1.linodeobjects.com", - "endpoint_type": "E1"}, {"id": "us-southeast", "s3_endpoint": "us-southeast-1.linodeobjects.com", - "endpoint_type": "E0"}]}' + "bucket_access": null, "regions": [{"id": "pl-labkrk-2", "s3_endpoint": "pl-labkrk2-1.devcloud.linodeobjects.com", + "endpoint_type": "E1"}]}' headers: Access-Control-Allow-Credentials: - "true" @@ -104,22 +180,21 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive + Content-Length: + - "325" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Expires: - - Wed, 06 May 2026 06:51:48 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: - Authorization, X-Filter - - Accept-Encoding X-Accepted-Oauth-Scopes: - object_storage:read_write X-Content-Type-Options: @@ -130,14 +205,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "60" + - "12" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1778050307918035000","type":"akamai_object_storage","details":{"access_key_id":"[SANITIZED]","access_key_secret":"[SANITIZED]","bucket_name":"go-test-logs-destination-1778050304029729000","host":"go-test-logs-destination-1778050304029729000.us-southeast-1.linodeobjects.com"}}' + body: '{"label":"go-test-logs-destination-1778158217955856000","type":"akamai_object_storage","details":{"access_key_id":"GJQM8FMUEVDPWYKF1NTE","access_key_secret":"ocAoUMZp3lnjAwZlcZUvJdTqCXJXAjeCGcawA5oP","bucket_name":"go-test-logs-destination-1778158216351723000","host":"go-test-logs-destination-1778158216351723000.pl-labkrk2-1.devcloud.linodeobjects.com"}}' form: {} headers: Accept: @@ -146,15 +221,15 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations + url: https://api.devcloud.linode.com/v4beta/monitor/streams/destinations method: POST response: - body: '{"id": 403, "label": "go-test-logs-destination-1778050307918035000", "type": - "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778050304029729000.us-southeast-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1778050304029729000", "access_key_id": - "[SANITIZED]"}, "version": 1, "status": "active", "created_by": "user", - "created": "2018-01-02T03:04:05", "updated_by": "user", - "updated": "2018-01-02T03:04:05"}' + body: '{"id": 1130, "label": "go-test-logs-destination-1778158217955856000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778158216351723000.pl-labkrk2-1.devcloud.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1778158216351723000", "access_key_id": + "GJQM8FMUEVDPWYKF1NTE"}, "version": 1, "status": "active", "created_by": "klipensk-aclp", + "created": "2018-01-02T03:04:05", "updated_by": "klipensk-aclp", "updated": + "2018-01-02T03:04:05"}' headers: Access-Control-Allow-Credentials: - "true" @@ -169,19 +244,17 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: - - "499" + - "479" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Expires: - - Wed, 06 May 2026 06:51:48 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: @@ -196,7 +269,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" + - "400" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -212,20 +285,82 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations?page=1 + url: https://api.devcloud.linode.com/v4beta/monitor/streams/destinations?page=1 method: GET response: - body: '{"pages": 1, "page": 1, "results": 2, "data": [{"id": 296, "label": "go-test-logs-destination-1777279324004188000", - "type": "akamai_object_storage", "details": {"host": "go-test-logs-destination-1777279319044234000.us-southeast-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1777279319044234000", "access_key_id": - "[SANITIZED]"}, "version": 1, "status": "active", "created_by": "dola-klipensk", - "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": - "2018-01-02T03:04:05"}, {"id": 403, "label": "go-test-logs-destination-1778050307918035000", - "type": "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778050304029729000.us-southeast-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1778050304029729000", "access_key_id": - "[SANITIZED]"}, "version": 1, "status": "active", "created_by": "user", - "created": "2018-01-02T03:04:05", "updated_by": "user", - "updated": "2018-01-02T03:04:05"}]}' + body: '{"pages": 1, "page": 1, "results": 15, "data": [{"id": 584, "label": "helioslogstreamdestination", + "type": "akamai_object_storage", "details": {"host": "pl-labkrk2-1.devcloud.linodeobjects.com", + "bucket_name": "helios-bucket", "path": "helioslogs", "access_key_id": "JEYJTV5JQJ86H6ZHNBAX"}, + "version": 1, "status": "active", "created_by": "ndeverse-aclp", "created": + "2018-01-02T03:04:05", "updated_by": "ndeverse-aclp", "updated": "2018-01-02T03:04:05"}, + {"id": 794, "label": "testkaro", "type": "akamai_object_storage", "details": + {"host": "pl-labkrk2-1.devcloud.linodeobjects.com", "bucket_name": "testkaro", + "access_key_id": "FES2AHFOV5MXWD4YIFEN"}, "version": 1, "status": "active", + "created_by": "kwojcik_aclp_dev", "created": "2018-01-02T03:04:05", "updated_by": + "kwojcik_aclp_dev", "updated": "2018-01-02T03:04:05"}, {"id": 832, "label": + "test-webhook", "type": "custom_https", "details": {"endpoint_url": "https://webhook.site/a76ff484-8776-4a15-b273-13793096447c", + "authentication": {"type": "none"}, "data_compression": "gzip", "custom_headers": + []}, "version": 4, "status": "active", "created_by": "vivkumar-aclp", "created": + "2018-01-02T03:04:05", "updated_by": "vivkumar-aclp", "updated": "2018-01-02T03:04:05"}, + {"id": 1095, "label": "go-test-logs-destination-1778079753295307000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778079751769207000.pl-labkrk2-1.devcloud.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1778079751769207000", "access_key_id": + "SHLSGUAT5T8RT28W95W5"}, "version": 1, "status": "active", "created_by": "klipensk-aclp", + "created": "2018-01-02T03:04:05", "updated_by": "klipensk-aclp", "updated": + "2018-01-02T03:04:05"}, {"id": 1096, "label": "go-test-logs-destination-1778084983791902000", + "type": "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778084982283418000.pl-labkrk2-1.devcloud.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1778084982283418000", "access_key_id": + "KMOH39R32X675MTVNJK9"}, "version": 1, "status": "active", "created_by": "klipensk-aclp", + "created": "2018-01-02T03:04:05", "updated_by": "klipensk-aclp", "updated": + "2018-01-02T03:04:05"}, {"id": 1097, "label": "go-test-logs-destination-1778085612101603000", + "type": "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778085610443219000.pl-labkrk2-1.devcloud.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1778085610443219000", "access_key_id": + "FTEB7I6KYWDVA0QDW1OR"}, "version": 1, "status": "active", "created_by": "klipensk-aclp", + "created": "2018-01-02T03:04:05", "updated_by": "klipensk-aclp", "updated": + "2018-01-02T03:04:05"}, {"id": 1099, "label": "go-test-logs-destination-1778092390679630000", + "type": "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778092389375217000.pl-labkrk2-1.devcloud.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1778092389375217000", "access_key_id": + "MXVW7MM9OMSPL8HF3G5V"}, "version": 1, "status": "active", "created_by": "klipensk-aclp", + "created": "2018-01-02T03:04:05", "updated_by": "klipensk-aclp", "updated": + "2018-01-02T03:04:05"}, {"id": 1100, "label": "go-test-logs-destination-1778096679856492000", + "type": "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778096678466478000.pl-labkrk2-1.devcloud.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1778096678466478000", "access_key_id": + "TVD2HM2A89KP80AP7MBS"}, "version": 1, "status": "active", "created_by": "klipensk-aclp", + "created": "2018-01-02T03:04:05", "updated_by": "klipensk-aclp", "updated": + "2018-01-02T03:04:05"}, {"id": 1101, "label": "go-test-logs-destination-1778098670193836000", + "type": "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778098668593215000.pl-labkrk2-1.devcloud.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1778098668593215000", "access_key_id": + "Z9S10R9LQRVOSPEF25AY"}, "version": 1, "status": "active", "created_by": "klipensk-aclp", + "created": "2018-01-02T03:04:05", "updated_by": "klipensk-aclp", "updated": + "2018-01-02T03:04:05"}, {"id": 1120, "label": "go-test-logs-destination-1778143652989790000", + "type": "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778143651750963000.pl-labkrk2-1.devcloud.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1778143651750963000", "access_key_id": + "2AWFCNF6VKHQ93PNYOAE"}, "version": 1, "status": "active", "created_by": "klipensk-aclp", + "created": "2018-01-02T03:04:05", "updated_by": "klipensk-aclp", "updated": + "2018-01-02T03:04:05"}, {"id": 1121, "label": "go-test-logs-destination-1778145646064209000", + "type": "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778145644528675000.pl-labkrk2-1.devcloud.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1778145644528675000", "access_key_id": + "GYHJUN5XXA9WBHJGR3EP"}, "version": 1, "status": "active", "created_by": "klipensk-aclp", + "created": "2018-01-02T03:04:05", "updated_by": "klipensk-aclp", "updated": + "2018-01-02T03:04:05"}, {"id": 1124, "label": "dcytaxor", "type": "akamai_object_storage", + "details": {"host": "uudfuxmr.pl-labkrk2-1.devcloud.linodeobjects.com", "bucket_name": + "uudfuxmr", "access_key_id": "TBX37DMHK9FVGCPA8I5X"}, "version": 1, "status": + "active", "created_by": "sjerecze-aclp", "created": "2018-01-02T03:04:05", "updated_by": + "sjerecze-aclp", "updated": "2018-01-02T03:04:05"}, {"id": 1127, "label": "bzryvfwo", + "type": "akamai_object_storage", "details": {"host": "uyjysskd.pl-labkrk2-1.devcloud.linodeobjects.com", + "bucket_name": "uyjysskd", "access_key_id": "NCM0K56MFAQ19V1KQW2J"}, "version": + 1, "status": "active", "created_by": "sjerecze-aclp", "created": "2018-01-02T03:04:05", + "updated_by": "sjerecze-aclp", "updated": "2018-01-02T03:04:05"}, {"id": 1128, + "label": "kuptokje", "type": "akamai_object_storage", "details": {"host": "bxgnedyc.pl-labkrk2-1.devcloud.linodeobjects.com", + "bucket_name": "bxgnedyc", "access_key_id": "NCM0K56MFAQ19V1KQW2J"}, "version": + 1, "status": "active", "created_by": "sjerecze-aclp", "created": "2018-01-02T03:04:05", + "updated_by": "sjerecze-aclp", "updated": "2018-01-02T03:04:05"}, {"id": 1130, + "label": "go-test-logs-destination-1778158217955856000", "type": "akamai_object_storage", + "details": {"host": "go-test-logs-destination-1778158216351723000.pl-labkrk2-1.devcloud.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1778158216351723000", "access_key_id": + "GJQM8FMUEVDPWYKF1NTE"}, "version": 1, "status": "active", "created_by": "klipensk-aclp", + "created": "2018-01-02T03:04:05", "updated_by": "klipensk-aclp", "updated": + "2018-01-02T03:04:05"}]}' headers: Access-Control-Allow-Credentials: - "true" @@ -240,23 +375,21 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=0, s-maxage=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Expires: - - Wed, 06 May 2026 06:51:49 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: - Authorization, X-Filter - Authorization, X-Filter - - Accept-Encoding X-Accepted-Oauth-Scopes: - monitor:read_only X-Content-Type-Options: @@ -267,7 +400,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" + - "400" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -283,15 +416,15 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations/403 + url: https://api.devcloud.linode.com/v4beta/monitor/streams/destinations/1130 method: GET response: - body: '{"id": 403, "label": "go-test-logs-destination-1778050307918035000", "type": - "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778050304029729000.us-southeast-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1778050304029729000", "access_key_id": - "[SANITIZED]"}, "version": 1, "status": "active", "created_by": "user", - "created": "2018-01-02T03:04:05", "updated_by": "user", - "updated": "2018-01-02T03:04:05"}' + body: '{"id": 1130, "label": "go-test-logs-destination-1778158217955856000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778158216351723000.pl-labkrk2-1.devcloud.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1778158216351723000", "access_key_id": + "GJQM8FMUEVDPWYKF1NTE"}, "version": 1, "status": "active", "created_by": "klipensk-aclp", + "created": "2018-01-02T03:04:05", "updated_by": "klipensk-aclp", "updated": + "2018-01-02T03:04:05"}' headers: Access-Control-Allow-Credentials: - "true" @@ -306,19 +439,18 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=0, s-maxage=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: - - "499" + - "479" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Expires: - - Wed, 06 May 2026 06:51:49 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: @@ -334,7 +466,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" + - "400" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -350,7 +482,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations/403 + url: https://api.devcloud.linode.com/v4beta/monitor/streams/destinations/1130 method: DELETE response: body: '{}' @@ -368,7 +500,7 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: @@ -377,10 +509,8 @@ interactions: - default-src 'none' Content-Type: - application/json - Expires: - - Wed, 06 May 2026 06:51:49 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: @@ -395,7 +525,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" + - "400" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -411,7 +541,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/keys/3576463 + url: https://api.devcloud.linode.com/v4beta/object-storage/keys/341678 method: DELETE response: body: '{}' @@ -429,7 +559,7 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: @@ -438,10 +568,8 @@ interactions: - default-src 'none' Content-Type: - application/json - Expires: - - Wed, 06 May 2026 06:51:50 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: @@ -456,7 +584,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "60" + - "12" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -472,12 +600,12 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast/go-test-logs-destination-1778050304029729000/object-list + url: https://api.devcloud.linode.com/v4beta/object-storage/buckets/pl-labkrk-2/go-test-logs-destination-1778158216351723000/object-list method: GET response: - body: '{"data": [{"name": "cloud-logs-test-connection-20260506T065148", "size": - 9, "last_modified": "2018-01-02T03:04:05.550Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", - "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}], "next_marker": null, "is_truncated": + body: '{"data": [{"name": "cloud-logs-test-connection-20260507T125018", "size": + 9, "last_modified": "2018-01-02T03:04:05.692Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", + "owner": "512fe32a-48a2-4a57-8a11-0eef806858d3"}], "next_marker": null, "is_truncated": false}' headers: Access-Control-Allow-Credentials: @@ -493,7 +621,8 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=0, s-maxage=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: @@ -502,10 +631,8 @@ interactions: - default-src 'none' Content-Type: - application/json - Expires: - - Wed, 06 May 2026 06:51:51 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: @@ -521,14 +648,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" + - "400" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"name":"cloud-logs-test-connection-20260506T065148","method":"DELETE","expires_in":360}' + body: '{"name":"cloud-logs-test-connection-20260507T125018","method":"DELETE","expires_in":360}' form: {} headers: Accept: @@ -537,10 +664,10 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1778050304029729000/object-url + url: https://api.devcloud.linode.com/v4beta/object-storage/buckets/pl-labkrk-2/go-test-logs-destination-1778158216351723000/object-url method: POST response: - body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1778050304029729000/cloud-logs-test-connection-20260506T065148?Signature=GG7%2B3uyfsu9l%2FcjsqUhtj4Q31%2FE%3D&Expires=1778050672&AWSAccessKeyID=SANITIZED", + body: '{"url": "https://pl-labkrk2-1.devcloud.linodeobjects.com:443/go-test-logs-destination-1778158216351723000/cloud-logs-test-connection-20260507T125018?Signature=zhEaBbPGMJF0CQiIAbbMnLvtL0s%3D&Expires=1778158589&AWSAccessKeyID=SANITIZED", "exists": true}' headers: Access-Control-Allow-Credentials: @@ -556,19 +683,17 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: - - "261" + - "262" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Expires: - - Wed, 06 May 2026 06:51:52 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: @@ -583,7 +708,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" + - "400" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -599,7 +724,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast/go-test-logs-destination-1778050304029729000 + url: https://api.devcloud.linode.com/v4beta/object-storage/buckets/pl-labkrk-2/go-test-logs-destination-1778158216351723000 method: DELETE response: body: '{}' @@ -617,7 +742,7 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: @@ -626,10 +751,8 @@ interactions: - default-src 'none' Content-Type: - application/json - Expires: - - Wed, 06 May 2026 06:51:56 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: @@ -644,7 +767,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" + - "400" X-Xss-Protection: - 1; mode=block status: 200 OK diff --git a/test/integration/fixtures/TestLogsDestination_UpdateAndHistory.yaml b/test/integration/fixtures/TestLogsDestination_UpdateAndHistory.yaml index d40deacd4..086d1167a 100644 --- a/test/integration/fixtures/TestLogsDestination_UpdateAndHistory.yaml +++ b/test/integration/fixtures/TestLogsDestination_UpdateAndHistory.yaml @@ -2,7 +2,7 @@ version: 1 interactions: - request: - body: '{"region":"us-southeast","label":"go-test-logs-destination-1778050340582306000","acl":"private","cors_enabled":false}' + body: "" form: {} headers: Accept: @@ -11,13 +11,99 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets + url: https://api.devcloud.linode.com/v4beta/regions?page=1 + method: GET + response: + body: '{"data": [{"id": "pl-labkrk-2", "label": "Krakow, PL", "country": "pl", + "capabilities": ["Linodes", "Block Storage Encryption", "LA Disk Encryption", + "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", "Object Storage", + "GPU Linodes", "Kubernetes", "Kubernetes Enterprise", "Cloud Firewall", "Vlans", + "VPCs", "VPC Dual Stack", "Block Storage Migrations", "Managed Databases", "Metadata", + "Premium Plans", "Placement Group", "StackScripts", "NETINT Quadra T1U", "Maintenance + Policy", "Linode Interfaces", "Network LoadBalancer", "ACLP Logs Datacenter + LKE-E"], "monitors": {"alerts": ["Block Storage", "Cloud Firewall", "Kubernetes", + "Linodes", "Managed Databases", "Network LoadBalancer", "NodeBalancers", "Object + Storage", "logs"], "metrics": ["Block Storage", "Cloud Firewall", "Kubernetes", + "Linodes", "Managed Databases", "Network LoadBalancer", "NodeBalancers", "Object + Storage", "logs"]}, "status": "ok", "resolvers": {"ipv4": "172.24.224.240,172.24.224.229,172.24.224.236,172.24.224.238,172.24.224.235,172.24.224.241,172.24.224.230,172.24.224.239,172.24.224.233,172.24.224.234", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-labedgeeat-2", + "label": "East Wenatchee, US", "country": "us", "capabilities": ["Linodes", + "Disk Encryption", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "Metadata", + "Distributed Plans", "Linode Interfaces"], "monitors": {"alerts": [], "metrics": + []}, "status": "ok", "resolvers": {"ipv4": "173.223.100.53,173.223.101.53", + "ipv6": "1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": + 0, "maximum_linodes_per_pg": 0, "maximum_linodes_per_flexible_pg": 0}, "site_type": + "distributed"}, {"id": "us-labedgeeat-3", "label": "East Wenatchee, US", "country": + "us", "capabilities": ["Linodes", "Disk Encryption", "Cloud Firewall", "Metadata", + "Distributed Plans"], "monitors": {"alerts": [], "metrics": []}, "status": "ok", + "resolvers": {"ipv4": "173.223.100.53,173.223.101.53", "ipv6": "1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": 0, "maximum_linodes_per_pg": + 0, "maximum_linodes_per_flexible_pg": 0}, "site_type": "distributed"}], "page": + 1, "pages": 1, "results": 3}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - private, max-age=900 + - private, max-age=60, s-maxage=60 + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Server: + - nginx + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - '*' + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "400" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" +- request: + body: '{"region":"pl-labkrk-2","label":"go-test-logs-destination-1778158524428891000","acl":"private","cors_enabled":false}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.devcloud.linode.com/v4beta/object-storage/buckets method: POST response: - body: '{"hostname": "go-test-logs-destination-1778050340582306000.us-southeast-1.linodeobjects.com", - "label": "go-test-logs-destination-1778050340582306000", "created": "2018-01-02T03:04:05", - "region": "us-southeast", "cluster": "us-southeast-1", "size": 0, "objects": - 0, "endpoint_type": "E0", "s3_endpoint": "us-southeast-1.linodeobjects.com"}' + body: '{"hostname": "go-test-logs-destination-1778158524428891000.pl-labkrk2-1.devcloud.linodeobjects.com", + "label": "go-test-logs-destination-1778158524428891000", "created": "2018-01-02T03:04:05", + "region": "pl-labkrk-2", "cluster": "pl-labkrk2-1", "size": 0, "objects": 0, + "endpoint_type": "E1", "s3_endpoint": "pl-labkrk2-1.devcloud.linodeobjects.com"}' headers: Access-Control-Allow-Credentials: - "true" @@ -32,19 +118,17 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: - - "338" + - "349" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Expires: - - Wed, 06 May 2026 06:52:22 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: @@ -59,14 +143,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "60" + - "12" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1778050342631137000"}' + body: '{"label":"go-test-logs-destination-1778158525239516000","regions":["pl-labkrk-2"]}' form: {} headers: Accept: @@ -75,21 +159,13 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/keys + url: https://api.devcloud.linode.com/v4beta/object-storage/keys method: POST response: - body: '{"id": 3576469, "label": "go-test-logs-destination-1778050342631137000", + body: '{"id": 341690, "label": "go-test-logs-destination-1778158525239516000", "access_key": "[SANITIZED]", "secret_key": "[SANITIZED]", "limited": false, - "bucket_access": null, "regions": [{"id": "us-east", "s3_endpoint": "us-east-1.linodeobjects.com", - "endpoint_type": "E0"}, {"id": "us-iad", "s3_endpoint": "us-iad-10.linodeobjects.com", - "endpoint_type": "E1"}, {"id": "us-lax", "s3_endpoint": "us-lax-1.linodeobjects.com", - "endpoint_type": "E1"}, {"id": "us-lax", "s3_endpoint": "us-lax-4.linodeobjects.com", - "endpoint_type": "E3"}, {"id": "us-mia", "s3_endpoint": "us-mia-1.linodeobjects.com", - "endpoint_type": "E1"}, {"id": "us-ord", "s3_endpoint": "us-ord-10.linodeobjects.com", - "endpoint_type": "E3"}, {"id": "us-ord", "s3_endpoint": "us-ord-1.linodeobjects.com", - "endpoint_type": "E1"}, {"id": "us-sea", "s3_endpoint": "us-sea-1.linodeobjects.com", - "endpoint_type": "E1"}, {"id": "us-southeast", "s3_endpoint": "us-southeast-1.linodeobjects.com", - "endpoint_type": "E0"}]}' + "bucket_access": null, "regions": [{"id": "pl-labkrk-2", "s3_endpoint": "pl-labkrk2-1.devcloud.linodeobjects.com", + "endpoint_type": "E1"}]}' headers: Access-Control-Allow-Credentials: - "true" @@ -104,22 +180,21 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive + Content-Length: + - "325" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Expires: - - Wed, 06 May 2026 06:52:25 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: - Authorization, X-Filter - - Accept-Encoding X-Accepted-Oauth-Scopes: - object_storage:read_write X-Content-Type-Options: @@ -130,14 +205,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "60" + - "12" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1778050344927369000","type":"akamai_object_storage","details":{"access_key_id":"[SANITIZED]","access_key_secret":"[SANITIZED]","bucket_name":"go-test-logs-destination-1778050340582306000","host":"go-test-logs-destination-1778050340582306000.us-southeast-1.linodeobjects.com"}}' + body: '{"label":"go-test-logs-destination-1778158525883457000","type":"akamai_object_storage","details":{"access_key_id":"5GTU0WAFDFN2QWGPU25L","access_key_secret":"7JnChJAdELfVN1cyAWvDSXoqtbsxhXPWbh8y2RkI","bucket_name":"go-test-logs-destination-1778158524428891000","host":"go-test-logs-destination-1778158524428891000.pl-labkrk2-1.devcloud.linodeobjects.com"}}' form: {} headers: Accept: @@ -146,15 +221,15 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations + url: https://api.devcloud.linode.com/v4beta/monitor/streams/destinations method: POST response: - body: '{"id": 406, "label": "go-test-logs-destination-1778050344927369000", "type": - "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778050340582306000.us-southeast-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1778050340582306000", "access_key_id": - "[SANITIZED]"}, "version": 1, "status": "active", "created_by": "user", - "created": "2018-01-02T03:04:05", "updated_by": "user", - "updated": "2018-01-02T03:04:05"}' + body: '{"id": 1133, "label": "go-test-logs-destination-1778158525883457000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778158524428891000.pl-labkrk2-1.devcloud.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1778158524428891000", "access_key_id": + "5GTU0WAFDFN2QWGPU25L"}, "version": 1, "status": "active", "created_by": "klipensk-aclp", + "created": "2018-01-02T03:04:05", "updated_by": "klipensk-aclp", "updated": + "2018-01-02T03:04:05"}' headers: Access-Control-Allow-Credentials: - "true" @@ -169,19 +244,17 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: - - "499" + - "479" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Expires: - - Wed, 06 May 2026 06:52:25 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: @@ -196,14 +269,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" + - "400" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1778050344927369000-upd","details":{"access_key_id":"[SANITIZED]","access_key_secret":"[SANITIZED]","bucket_name":"go-test-logs-destination-1778050340582306000","host":"go-test-logs-destination-1778050340582306000.us-southeast-1.linodeobjects.com","path":"updated/logs/path/"}}' + body: '{"label":"go-test-logs-destination-1778158525883457000-upd","details":{"access_key_id":"5GTU0WAFDFN2QWGPU25L","access_key_secret":"7JnChJAdELfVN1cyAWvDSXoqtbsxhXPWbh8y2RkI","bucket_name":"go-test-logs-destination-1778158524428891000","host":"go-test-logs-destination-1778158524428891000.pl-labkrk2-1.devcloud.linodeobjects.com","path":"updated/logs/path/"}}' form: {} headers: Accept: @@ -212,15 +285,15 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations/406 + url: https://api.devcloud.linode.com/v4beta/monitor/streams/destinations/1133 method: PUT response: - body: '{"id": 406, "label": "go-test-logs-destination-1778050344927369000-upd", - "type": "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778050340582306000.us-southeast-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1778050340582306000", "path": "updated/logs/path/", - "access_key_id": "[SANITIZED]"}, "version": 2, "status": "active", - "created_by": "user", "created": "2018-01-02T03:04:05", - "updated_by": "user", "updated": "2018-01-02T03:04:05"}' + body: '{"id": 1133, "label": "go-test-logs-destination-1778158525883457000-upd", + "type": "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778158524428891000.pl-labkrk2-1.devcloud.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1778158524428891000", "path": "updated/logs/path/", + "access_key_id": "5GTU0WAFDFN2QWGPU25L"}, "version": 2, "status": "active", + "created_by": "klipensk-aclp", "created": "2018-01-02T03:04:05", "updated_by": + "klipensk-aclp", "updated": "2018-01-02T03:04:05"}' headers: Access-Control-Allow-Credentials: - "true" @@ -235,19 +308,17 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: - - "533" + - "513" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Expires: - - Wed, 06 May 2026 06:52:26 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: @@ -262,7 +333,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" + - "400" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -278,21 +349,20 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations/406/history?page=1 + url: https://api.devcloud.linode.com/v4beta/monitor/streams/destinations/1133/history?page=1 method: GET response: - body: '{"pages": 1, "page": 1, "results": 2, "data": [{"id": 406, "label": "go-test-logs-destination-1778050344927369000-upd", - "type": "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778050340582306000.us-southeast-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1778050340582306000", "path": "updated/logs/path/", - "access_key_id": "[SANITIZED]"}, "version": 2, "status": "active", - "created_by": "user", "created": "2018-01-02T03:04:05", - "updated_by": "user", "updated": "2018-01-02T03:04:05"}, - {"id": 406, "label": "go-test-logs-destination-1778050344927369000", "type": - "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778050340582306000.us-southeast-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1778050340582306000", "access_key_id": - "[SANITIZED]"}, "version": 1, "status": "inactive", "created_by": "user", - "created": "2018-01-02T03:04:05", "updated_by": "user", - "updated": "2018-01-02T03:04:05"}]}' + body: '{"pages": 1, "page": 1, "results": 2, "data": [{"id": 1133, "label": "go-test-logs-destination-1778158525883457000-upd", + "type": "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778158524428891000.pl-labkrk2-1.devcloud.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1778158524428891000", "path": "updated/logs/path/", + "access_key_id": "5GTU0WAFDFN2QWGPU25L"}, "version": 2, "status": "active", + "created_by": "klipensk-aclp", "created": "2018-01-02T03:04:05", "updated_by": + "klipensk-aclp", "updated": "2018-01-02T03:04:05"}, {"id": 1133, "label": "go-test-logs-destination-1778158525883457000", + "type": "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778158524428891000.pl-labkrk2-1.devcloud.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1778158524428891000", "access_key_id": + "5GTU0WAFDFN2QWGPU25L"}, "version": 1, "status": "inactive", "created_by": "klipensk-aclp", + "created": "2018-01-02T03:04:05", "updated_by": "klipensk-aclp", "updated": + "2018-01-02T03:04:05"}]}' headers: Access-Control-Allow-Credentials: - "true" @@ -307,23 +377,21 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=0, s-maxage=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Expires: - - Wed, 06 May 2026 06:52:27 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: - Authorization, X-Filter - Authorization, X-Filter - - Accept-Encoding X-Accepted-Oauth-Scopes: - monitor:read_only X-Content-Type-Options: @@ -334,7 +402,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" + - "400" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -350,15 +418,15 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations/406 + url: https://api.devcloud.linode.com/v4beta/monitor/streams/destinations/1133 method: GET response: - body: '{"id": 406, "label": "go-test-logs-destination-1778050344927369000-upd", - "type": "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778050340582306000.us-southeast-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1778050340582306000", "path": "updated/logs/path/", - "access_key_id": "[SANITIZED]"}, "version": 2, "status": "active", - "created_by": "user", "created": "2018-01-02T03:04:05", - "updated_by": "user", "updated": "2018-01-02T03:04:05"}' + body: '{"id": 1133, "label": "go-test-logs-destination-1778158525883457000-upd", + "type": "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778158524428891000.pl-labkrk2-1.devcloud.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1778158524428891000", "path": "updated/logs/path/", + "access_key_id": "5GTU0WAFDFN2QWGPU25L"}, "version": 2, "status": "active", + "created_by": "klipensk-aclp", "created": "2018-01-02T03:04:05", "updated_by": + "klipensk-aclp", "updated": "2018-01-02T03:04:05"}' headers: Access-Control-Allow-Credentials: - "true" @@ -373,19 +441,18 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=0, s-maxage=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: - - "533" + - "513" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Expires: - - Wed, 06 May 2026 06:52:27 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: @@ -401,7 +468,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" + - "400" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -417,7 +484,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations/406 + url: https://api.devcloud.linode.com/v4beta/monitor/streams/destinations/1133 method: DELETE response: body: '{}' @@ -435,7 +502,7 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: @@ -444,10 +511,8 @@ interactions: - default-src 'none' Content-Type: - application/json - Expires: - - Wed, 06 May 2026 06:52:27 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: @@ -462,7 +527,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" + - "400" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -478,7 +543,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/keys/3576469 + url: https://api.devcloud.linode.com/v4beta/object-storage/keys/341690 method: DELETE response: body: '{}' @@ -496,7 +561,7 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: @@ -505,10 +570,8 @@ interactions: - default-src 'none' Content-Type: - application/json - Expires: - - Wed, 06 May 2026 06:52:28 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: @@ -523,7 +586,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "60" + - "12" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -539,16 +602,16 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast/go-test-logs-destination-1778050340582306000/object-list + url: https://api.devcloud.linode.com/v4beta/object-storage/buckets/pl-labkrk-2/go-test-logs-destination-1778158524428891000/object-list method: GET response: - body: '{"data": [{"name": "cloud-logs-test-connection-20260506T065225", "size": - 9, "last_modified": "2018-01-02T03:04:05.542Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", - "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "updated/logs/path/", - "size": 0, "last_modified": "2018-01-02T03:04:05.441Z", "etag": "d41d8cd98f00b204e9800998ecf8427e", - "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "updated/logs/path/cloud-logs-test-connection-20260506T065226", - "size": 9, "last_modified": "2018-01-02T03:04:05.512Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", - "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}], "next_marker": null, "is_truncated": + body: '{"data": [{"name": "cloud-logs-test-connection-20260507T125526", "size": + 9, "last_modified": "2018-01-02T03:04:05.650Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", + "owner": "512fe32a-48a2-4a57-8a11-0eef806858d3"}, {"name": "updated/logs/path/", + "size": 0, "last_modified": "2018-01-02T03:04:05.109Z", "etag": "d41d8cd98f00b204e9800998ecf8427e", + "owner": "512fe32a-48a2-4a57-8a11-0eef806858d3"}, {"name": "updated/logs/path/cloud-logs-test-connection-20260507T125529", + "size": 9, "last_modified": "2018-01-02T03:04:05.153Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", + "owner": "512fe32a-48a2-4a57-8a11-0eef806858d3"}], "next_marker": null, "is_truncated": false}' headers: Access-Control-Allow-Credentials: @@ -564,7 +627,8 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=0, s-maxage=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: @@ -573,10 +637,8 @@ interactions: - default-src 'none' Content-Type: - application/json - Expires: - - Wed, 06 May 2026 06:52:29 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: @@ -592,14 +654,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" + - "400" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"name":"cloud-logs-test-connection-20260506T065225","method":"DELETE","expires_in":360}' + body: '{"name":"cloud-logs-test-connection-20260507T125526","method":"DELETE","expires_in":360}' form: {} headers: Accept: @@ -608,10 +670,10 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1778050340582306000/object-url + url: https://api.devcloud.linode.com/v4beta/object-storage/buckets/pl-labkrk-2/go-test-logs-destination-1778158524428891000/object-url method: POST response: - body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1778050340582306000/cloud-logs-test-connection-20260506T065225?Signature=LHgYXKB%2FMLp4NRgdqhn11wRdfW4%3D&Expires=1778050710&AWSAccessKeyID=SANITIZED", + body: '{"url": "https://pl-labkrk2-1.devcloud.linodeobjects.com:443/go-test-logs-destination-1778158524428891000/cloud-logs-test-connection-20260507T125526?Signature=u5NU8RldK%2BeSzUBPV6sODON6Qe0%3D&Expires=1778158896&AWSAccessKeyID=SANITIZED", "exists": true}' headers: Access-Control-Allow-Credentials: @@ -627,19 +689,17 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: - - "257" + - "264" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Expires: - - Wed, 06 May 2026 06:52:30 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: @@ -654,7 +714,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" + - "400" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -670,10 +730,10 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1778050340582306000/object-url + url: https://api.devcloud.linode.com/v4beta/object-storage/buckets/pl-labkrk-2/go-test-logs-destination-1778158524428891000/object-url method: POST response: - body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1778050340582306000/updated/logs/path/?Signature=4iJ00dQJ77NY6ZU2OO8X2W1OCPo%3D&Expires=1778050711&AWSAccessKeyID=SANITIZED", + body: '{"url": "https://pl-labkrk2-1.devcloud.linodeobjects.com:443/go-test-logs-destination-1778158524428891000/updated/logs/path/?Signature=vJg3TJkiRIP2REApAiV3rLz3%2BDs%3D&Expires=1778158897&AWSAccessKeyID=SANITIZED", "exists": true}' headers: Access-Control-Allow-Credentials: @@ -689,19 +749,17 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: - - "231" + - "240" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Expires: - - Wed, 06 May 2026 06:52:31 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: @@ -716,14 +774,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" + - "400" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"name":"updated/logs/path/cloud-logs-test-connection-20260506T065226","method":"DELETE","expires_in":360}' + body: '{"name":"updated/logs/path/cloud-logs-test-connection-20260507T125529","method":"DELETE","expires_in":360}' form: {} headers: Accept: @@ -732,10 +790,10 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast-1/go-test-logs-destination-1778050340582306000/object-url + url: https://api.devcloud.linode.com/v4beta/object-storage/buckets/pl-labkrk-2/go-test-logs-destination-1778158524428891000/object-url method: POST response: - body: '{"url": "https://us-southeast-1.linodeobjects.com:443/go-test-logs-destination-1778050340582306000/updated/logs/path/cloud-logs-test-connection-20260506T065226?Signature=31dIv2zHtx8eDE9%2BNpg3EGnU0BE%3D&Expires=1778050714&AWSAccessKeyID=SANITIZED", + body: '{"url": "https://pl-labkrk2-1.devcloud.linodeobjects.com:443/go-test-logs-destination-1778158524428891000/updated/logs/path/cloud-logs-test-connection-20260507T125529?Signature=BiVd4wR98l2xN%2FJGqbPiiDaMG8w%3D&Expires=1778158897&AWSAccessKeyID=SANITIZED", "exists": true}' headers: Access-Control-Allow-Credentials: @@ -751,19 +809,17 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: - - "275" + - "282" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Expires: - - Wed, 06 May 2026 06:52:34 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: @@ -778,7 +834,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" + - "400" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -794,7 +850,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-southeast/go-test-logs-destination-1778050340582306000 + url: https://api.devcloud.linode.com/v4beta/object-storage/buckets/pl-labkrk-2/go-test-logs-destination-1778158524428891000 method: DELETE response: body: '{}' @@ -812,7 +868,7 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - max-age=0, no-cache, no-store + - private, max-age=60, s-maxage=60 Connection: - keep-alive Content-Length: @@ -821,10 +877,8 @@ interactions: - default-src 'none' Content-Type: - application/json - Expires: - - Wed, 06 May 2026 06:52:37 GMT - Pragma: - - no-cache + Server: + - nginx Strict-Transport-Security: - max-age=31536000 Vary: @@ -839,7 +893,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "1840" + - "400" X-Xss-Protection: - 1; mode=block status: 200 OK diff --git a/test/integration/monitor_logs_test.go b/test/integration/monitor_logs_test.go index cb180dbac..b8c63034a 100644 --- a/test/integration/monitor_logs_test.go +++ b/test/integration/monitor_logs_test.go @@ -14,10 +14,6 @@ import ( "github.com/stretchr/testify/require" ) -const ( - aclpLogsCapability = "Akamai Cloud Pulse Logs" -) - // requireACLPLogsStreamTests skips the test if RUN_ACLP_LOGS_STREAM_TESTS is not set. // Call this before creating a test client so the env check short-circuits early. func requireACLPLogsStreamTests(t *testing.T) { @@ -31,29 +27,17 @@ func requireACLPLogsStreamTests(t *testing.T) { } } -// requireACLPLogsCapability skips the test if the aclp_logs capability is not enabled. -// Call this after creating a test client. -func requireACLPLogsCapability(t *testing.T, client *linodego.Client) { - if testingMode == recorder.ModeReplaying { - return - } - t.Helper() - account, err := client.GetAccount(context.Background()) - require.NoError(t, err) - for _, cap := range account.Capabilities { - if cap == aclpLogsCapability { - return - } - } - t.Skipf("aclp_logs capability not enabled for this account") -} - // creates a object storage and access keys for use in tests func setupObjectStorageForLogs(t *testing.T, client *linodego.Client) (*linodego.ObjectStorageBucket, *linodego.ObjectStorageKey, func()) { t.Helper() + regions := getRegionsWithCaps(t, client, []string{linodego.CapabilityObjectStorage}) + if len(regions) == 0 { + t.Fatal("no region with Object Storage capability found") + } + bucket, err := client.CreateObjectStorageBucket(context.Background(), linodego.ObjectStorageBucketCreateOptions{ - Region: "us-southeast", + Region: regions[0], Label: testLabel(), ACL: "private", CorsEnabled: linodego.Pointer(false), @@ -63,7 +47,8 @@ func setupObjectStorageForLogs(t *testing.T, client *linodego.Client) (*linodego } storageKey, err := client.CreateObjectStorageKey(context.Background(), linodego.ObjectStorageKeyCreateOptions{ - Label: testLabel(), + Label: testLabel(), + Regions: []string{regions[0]}, }) if err != nil { _ = client.DeleteObjectStorageBucket(context.Background(), bucket.Region, bucket.Label) @@ -78,7 +63,7 @@ func setupObjectStorageForLogs(t *testing.T, client *linodego.Client) (*linodego bucketObjects, terr := client.ListObjectStorageBucketContents(context.Background(), bucket.Region, bucket.Label, nil) if terr == nil { for _, obj := range bucketObjects.Data { - url, err := client.CreateObjectStorageObjectURL(context.TODO(), bucket.Cluster, bucket.Label, linodego.ObjectStorageObjectURLCreateOptions{ + url, err := client.CreateObjectStorageObjectURL(context.TODO(), bucket.Region, bucket.Label, linodego.ObjectStorageObjectURLCreateOptions{ Name: obj.Name, Method: http.MethodDelete, ExpiresIn: &objectStorageObjectURLExpirySeconds, @@ -186,13 +171,46 @@ func setupLogStream(t *testing.T, fixturesYaml string) (*linodego.Client, *linod } teardown := func() { - _ = client.DeleteLogStream(context.Background(), stream.ID) + // Wait for stream to reach a stable (non-transitional) state before deleting; + // deleting while in "deactivating"/"provisioning" silently fails and then + // the destination delete returns 400 because the stream is still attached. + if _, err := waitForLogStreamProvisioned(context.Background(), client, stream.ID, 60, 3600); err != nil { + t.Logf("Warning: could not wait for stream %d to stabilize before deletion: %v", stream.ID, err) + } + if err := client.DeleteLogStream(context.Background(), stream.ID); err != nil { + t.Errorf("Expected to delete log stream %d, but got %v", stream.ID, err) + } else if err := waitForLogStreamDeleted(context.Background(), client, stream.ID, 60, 3600); err != nil { + t.Logf("Warning: stream %d may not be fully deleted: %v", stream.ID, err) + } destTeardown() } return client, stream, dest, teardown } +// waitForLogStreamDeleted polls until the stream returns 404, indicating it has been fully removed. +func waitForLogStreamDeleted( + ctx context.Context, + client *linodego.Client, + streamID int, + pollIntervalSeconds int, + timeoutSeconds int, +) error { + deadline := time.Now().Add(time.Duration(timeoutSeconds) * time.Second) + for { + _, err := client.GetLogStream(ctx, streamID) + if apiErr, ok := err.(*linodego.Error); ok && apiErr.Code == 404 { + return nil + } + if time.Now().After(deadline) { + return fmt.Errorf("timed out waiting for log stream %d to be deleted", streamID) + } + if testingMode != recorder.ModeReplaying { + time.Sleep(time.Duration(pollIntervalSeconds) * time.Second) + } + } +} + // waitForLogStreamProvisioned polls until the stream leaves provisioning state. // Stream provisioning can take up to 60 minutes; timeoutSeconds should be set accordingly. func waitForLogStreamProvisioned( @@ -233,25 +251,27 @@ func TestLogsDestination_List(t *testing.T) { for _, d := range destinations { assert.NotZero(t, d.ID) assert.NotEmpty(t, d.Label) - assert.Equal(t, linodego.LogsDestinationTypeAkamaiObjectStorage, d.Type) - assert.Contains(t, - []linodego.LogsDestinationStatus{ - linodego.LogsDestinationStatusActive, - linodego.LogsDestinationStatusInactive, - }, - d.Status, - ) - assert.NotEmpty(t, d.Details.AccessKeyID) - assert.NotEmpty(t, d.Details.BucketName) - assert.NotEmpty(t, d.Details.Host) } - ids := make([]int, len(destinations)) - for i, d := range destinations { - ids[i] = d.ID + var found *linodego.LogsDestination + for i := range destinations { + if destinations[i].ID == dest.ID { + found = &destinations[i] + break + } } - - assert.Contains(t, ids, dest.ID) + require.NotNil(t, found, "created destination not found in list") + assert.Equal(t, linodego.LogsDestinationTypeAkamaiObjectStorage, found.Type) + assert.Contains(t, + []linodego.LogsDestinationStatus{ + linodego.LogsDestinationStatusActive, + linodego.LogsDestinationStatusInactive, + }, + found.Status, + ) + assert.NotEmpty(t, found.Details.AccessKeyID) + assert.NotEmpty(t, found.Details.BucketName) + assert.NotEmpty(t, found.Details.Host) } func TestLogsDestination_Delete(t *testing.T) { @@ -399,7 +419,6 @@ func TestLogStream_Create_InvalidDestination(t *testing.T) { client, teardown := createTestClient(t, "fixtures/TestLogStream_Create_InvalidDestination") defer teardown() - requireACLPLogsCapability(t, client) requireNoExistingStreams(t, client) _, err := client.CreateLogStream(context.Background(), linodego.StreamCreateOptions{ @@ -419,7 +438,6 @@ func TestLogStream_Create_EmptyDestinations(t *testing.T) { client, teardown := createTestClient(t, "fixtures/TestLogStream_Create_EmptyDestinations") defer teardown() - requireACLPLogsCapability(t, client) requireNoExistingStreams(t, client) _, err := client.CreateLogStream(context.Background(), linodego.StreamCreateOptions{ @@ -439,7 +457,6 @@ func TestLogStream_Create_TwoDestinations(t *testing.T) { client, teardown := createTestClient(t, "fixtures/TestLogStream_Create_TwoDestinations") defer teardown() - requireACLPLogsCapability(t, client) requireNoExistingStreams(t, client) bucket1, storageKey1, storageTeardown1 := setupObjectStorageForLogs(t, client) @@ -490,7 +507,6 @@ func TestLogStream_Delete(t *testing.T) { client, stream, _, teardown := setupLogStream(t, "fixtures/TestLogStream_Delete") defer teardown() - requireACLPLogsCapability(t, client) provisioned, err := waitForLogStreamProvisioned(context.Background(), client, stream.ID, 60, 3600) require.NoError(t, err) @@ -507,7 +523,6 @@ func TestLogStream_List(t *testing.T) { client, stream, _, teardown := setupLogStream(t, "fixtures/TestLogStream_List") defer teardown() - requireACLPLogsCapability(t, client) provisioned, err := waitForLogStreamProvisioned(context.Background(), client, stream.ID, 60, 3600) require.NoError(t, err) @@ -531,7 +546,6 @@ func TestLogStream_Get(t *testing.T) { client, stream, _, teardown := setupLogStream(t, "fixtures/TestLogStream_Get") defer teardown() - requireACLPLogsCapability(t, client) provisioned, err := waitForLogStreamProvisioned(context.Background(), client, stream.ID, 60, 3600) require.NoError(t, err) @@ -549,7 +563,6 @@ func TestLogStream_Update_LabelAndStatus(t *testing.T) { client, stream, _, teardown := setupLogStream(t, "fixtures/TestLogStream_Update_LabelAndStatus") defer teardown() - requireACLPLogsCapability(t, client) provisioned, err := waitForLogStreamProvisioned(context.Background(), client, stream.ID, 60, 3600) require.NoError(t, err) @@ -559,9 +572,16 @@ func TestLogStream_Update_LabelAndStatus(t *testing.T) { versionBefore := provisioned.Version newLabel := originalLabel + "-upd" - newStatus := linodego.StreamStatusInactive + // When active, requesting inactive triggers "deactivating" first; vice versa triggers "provisioning". + // Accept both the requested status and its transitional counterpart. + var newStatus linodego.StreamStatus + var expectedStatuses []linodego.StreamStatus if originalStatus == linodego.StreamStatusInactive { newStatus = linodego.StreamStatusActive + expectedStatuses = []linodego.StreamStatus{linodego.StreamStatusActive, linodego.StreamStatusProvisioning} + } else { + newStatus = linodego.StreamStatusInactive + expectedStatuses = []linodego.StreamStatus{linodego.StreamStatusInactive, linodego.StreamStatusDeactivating} } updated, err := client.UpdateLogStream(context.Background(), provisioned.ID, linodego.StreamUpdateOptions{ @@ -570,14 +590,7 @@ func TestLogStream_Update_LabelAndStatus(t *testing.T) { }) require.NoError(t, err) assert.Equal(t, newLabel, updated.Label) - assert.Equal(t, newStatus, updated.Status) - - defer func() { - _, _ = client.UpdateLogStream(context.Background(), provisioned.ID, linodego.StreamUpdateOptions{ - Label: &originalLabel, - Status: &originalStatus, - }) - }() + assert.Contains(t, expectedStatuses, updated.Status) history, err := client.ListLogStreamHistory(context.Background(), provisioned.ID, nil) require.NoError(t, err) @@ -603,7 +616,6 @@ func TestLogStream_Update_Destinations(t *testing.T) { client, stream, dest, teardown := setupLogStream(t, "fixtures/TestLogStream_Update_Destinations") defer teardown() - requireACLPLogsCapability(t, client) objBucket2, objKey2, objTeardown2 := setupObjectStorageForLogs(t, client) defer objTeardown2() diff --git a/test/unit/fixtures/monitor_log_stream.json b/test/unit/fixtures/monitor_log_stream.json index 6e024ccf4..d82740373 100644 --- a/test/unit/fixtures/monitor_log_stream.json +++ b/test/unit/fixtures/monitor_log_stream.json @@ -4,7 +4,7 @@ "destinations": [ { "details": { - "access_key_id": 123, + "access_key_id": "123", "bucket_name": "primary-bucket", "host": "primary-bucket-1.us-iad-12.linodeobjects.com", "path": "audit-logs" diff --git a/test/unit/fixtures/monitor_log_stream_lke.json b/test/unit/fixtures/monitor_log_stream_lke.json new file mode 100644 index 000000000..b61780b98 --- /dev/null +++ b/test/unit/fixtures/monitor_log_stream_lke.json @@ -0,0 +1,28 @@ +{ + "created": "2025-03-20T01:41:09", + "created_by": "John Q. Linode", + "destinations": [ + { + "details": { + "access_key_id": "123", + "bucket_name": "primary-bucket", + "host": "primary-bucket-1.us-iad-12.linodeobjects.com", + "path": "audit-logs" + }, + "id": 12345, + "label": "OBJ_logs_destination", + "type": "akamai_object_storage" + } + ], + "id": 789, + "label": "LKEAuditLog-config", + "status": "active", + "type": "lke_audit_logs", + "details": { + "cluster_ids": [1234, 5678], + "is_auto_add_all_clusters_enabled": false + }, + "updated": "2025-03-20T01:41:09", + "updated_by": "Jane Q. Linode", + "version": 1 +} diff --git a/test/unit/fixtures/monitor_log_streams_history.json b/test/unit/fixtures/monitor_log_streams_history.json index 935da599f..87daf25fa 100644 --- a/test/unit/fixtures/monitor_log_streams_history.json +++ b/test/unit/fixtures/monitor_log_streams_history.json @@ -6,7 +6,7 @@ "destinations": [ { "details": { - "access_key_id": 123, + "access_key_id": "123", "bucket_name": "primary-bucket", "host": "primary-bucket-1.us-iad-12.linodeobjects.com", "path": "audit-logs" @@ -30,7 +30,7 @@ "destinations": [ { "details": { - "access_key_id": 123, + "access_key_id": "123", "bucket_name": "primary-bucket", "host": "primary-bucket-1.us-iad-12.linodeobjects.com", "path": "audit-logs-v2" diff --git a/test/unit/fixtures/monitor_log_streams_list.json b/test/unit/fixtures/monitor_log_streams_list.json index a1a96071a..0b8e709e5 100644 --- a/test/unit/fixtures/monitor_log_streams_list.json +++ b/test/unit/fixtures/monitor_log_streams_list.json @@ -6,7 +6,7 @@ "destinations": [ { "details": { - "access_key_id": 123, + "access_key_id": "123", "bucket_name": "primary-bucket", "host": "primary-bucket-1.us-iad-12.linodeobjects.com", "path": "audit-logs" diff --git a/test/unit/monitor_logs_test.go b/test/unit/monitor_logs_test.go index 48dc9c90c..1ddb9f637 100644 --- a/test/unit/monitor_logs_test.go +++ b/test/unit/monitor_logs_test.go @@ -11,6 +11,7 @@ import ( const ( testLogsDestinationID = 12345 testLogStreamID = 456 + testLKELogStreamID = 789 ) // ---- Logs Destination tests ---- @@ -424,7 +425,7 @@ func TestGetLogStream_DestinationDetails(t *testing.T) { assert.Equal(t, testLogsDestinationID, dest.ID) assert.Equal(t, "OBJ_logs_destination", dest.Label) assert.Equal(t, linodego.StreamDestinationTypeAkamaiObjectStorage, dest.Type) - assert.Equal(t, 123, dest.Details.AccessKeyID) + assert.Equal(t, "123", dest.Details.AccessKeyID) assert.Equal(t, "primary-bucket", dest.Details.BucketName) assert.Equal(t, "primary-bucket-1.us-iad-12.linodeobjects.com", dest.Details.Host) assert.Equal(t, "audit-logs", dest.Details.Path) @@ -480,3 +481,94 @@ func TestDeleteLogStream(t *testing.T) { err := base.Client.DeleteLogStream(context.Background(), testLogStreamID) assert.NoError(t, err) } + +func TestStreamTypeLKEAuditLogs_Constant(t *testing.T) { + assert.Equal(t, linodego.StreamType("audit_logs"), linodego.StreamTypeAuditLogs) + assert.Equal(t, linodego.StreamType("lke_audit_logs"), linodego.StreamTypeLKEAuditLogs) +} + +func TestGetLogStream_LKEAuditLogs(t *testing.T) { + fixtureData, err := fixtures.GetFixture("monitor_log_stream_lke") + assert.NoError(t, err) + + var base ClientBaseCase + base.SetUp(t) + defer base.TearDown(t) + + base.MockGet("monitor/streams/789", fixtureData) + + stream, err := base.Client.GetLogStream(context.Background(), testLKELogStreamID) + assert.NoError(t, err) + assert.NotNil(t, stream) + assert.Equal(t, testLKELogStreamID, stream.ID) + assert.Equal(t, linodego.StreamTypeLKEAuditLogs, stream.Type) + assert.NotNil(t, stream.Details) + assert.Equal(t, []int{1234, 5678}, stream.Details.ClusterIDs) + assert.False(t, stream.Details.IsAutoAddAllClustersEnabled) +} + +func TestGetLogStream_AuditLogs_NoDetails(t *testing.T) { + fixtureData, err := fixtures.GetFixture("monitor_log_stream") + assert.NoError(t, err) + + var base ClientBaseCase + base.SetUp(t) + defer base.TearDown(t) + + base.MockGet("monitor/streams/456", fixtureData) + + stream, err := base.Client.GetLogStream(context.Background(), testLogStreamID) + assert.NoError(t, err) + assert.Nil(t, stream.Details) +} + +func TestCreateLogStream_LKEAuditLogs(t *testing.T) { + fixtureData, err := fixtures.GetFixture("monitor_log_stream_lke") + assert.NoError(t, err) + + var base ClientBaseCase + base.SetUp(t) + defer base.TearDown(t) + + base.MockPost("monitor/streams", fixtureData) + + createOpts := linodego.StreamCreateOptions{ + Destinations: []int{testLogsDestinationID}, + Label: "LKEAuditLog-config", + Type: linodego.StreamTypeLKEAuditLogs, + Details: &linodego.StreamDetails{ + ClusterIDs: []int{1111, 2222}, + IsAutoAddAllClustersEnabled: false, + }, + } + + stream, err := base.Client.CreateLogStream(context.Background(), createOpts) + assert.NoError(t, err) + assert.NotNil(t, stream) + assert.Equal(t, testLKELogStreamID, stream.ID) + assert.Equal(t, linodego.StreamTypeLKEAuditLogs, stream.Type) + assert.NotNil(t, stream.Details) + assert.Equal(t, []int{1234, 5678}, stream.Details.ClusterIDs) +} + +func TestCreateLogStream_AuditLogs_OmitsDetails(t *testing.T) { + fixtureData, err := fixtures.GetFixture("monitor_log_stream") + assert.NoError(t, err) + + var base ClientBaseCase + base.SetUp(t) + defer base.TearDown(t) + + base.MockPost("monitor/streams", fixtureData) + + createOpts := linodego.StreamCreateOptions{ + Destinations: []int{testLogsDestinationID}, + Label: "AuditLog-config", + Type: linodego.StreamTypeAuditLogs, + } + + stream, err := base.Client.CreateLogStream(context.Background(), createOpts) + assert.NoError(t, err) + assert.NotNil(t, stream) + assert.Nil(t, stream.Details) +} From e4cdb80a9d9434422ff3f131352a88005424cb5f Mon Sep 17 00:00:00 2001 From: Kajetan Date: Thu, 7 May 2026 17:07:49 +0200 Subject: [PATCH 09/21] [DPS-42279] [ACLP SDK] [Go] ACLP Logs stream API - log destinations api.linode fixtures --- ...estLogStream_Create_EmptyDestinations.yaml | 10 +- ...stLogStream_Create_InvalidDestination.yaml | 10 +- .../TestLogStream_Create_TwoDestinations.yaml | 10 +- .../fixtures/TestLogStream_Delete.yaml | 48 +- .../fixtures/TestLogStream_Get.yaml | 48 +- .../fixtures/TestLogStream_List.yaml | 52 +- .../TestLogStream_Update_Destinations.yaml | 84 +-- .../TestLogStream_Update_LabelAndStatus.yaml | 60 +- ...tLogsDestination_Create_InvalidSecret.yaml | 484 ++++++++++--- ...estLogsDestination_Create_InvalidType.yaml | 479 +++++++++++-- .../fixtures/TestLogsDestination_Delete.yaml | 553 ++++++++++++--- .../fixtures/TestLogsDestination_Get.yaml | 571 +++++++++++---- .../fixtures/TestLogsDestination_List.yaml | 642 ++++++++++++----- .../TestLogsDestination_UpdateAndHistory.yaml | 653 +++++++++++++----- test/integration/monitor_logs_test.go | 7 +- 15 files changed, 2822 insertions(+), 889 deletions(-) diff --git a/test/integration/fixtures/TestLogStream_Create_EmptyDestinations.yaml b/test/integration/fixtures/TestLogStream_Create_EmptyDestinations.yaml index b5909f56f..283742497 100644 --- a/test/integration/fixtures/TestLogStream_Create_EmptyDestinations.yaml +++ b/test/integration/fixtures/TestLogStream_Create_EmptyDestinations.yaml @@ -11,29 +11,29 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/monitor/streams?page=1 + url: https://api.linode.com/v4beta/monitor/streams?page=1 method: GET response: body: '{"pages": 1, "page": 1, "results": 4, "data": [{"id": 1288, "label": "heliosstream1", "type": "audit_logs", "destinations": [{"id": 584, "type": "akamai_object_storage", - "label": "helioslogstreamdestination", "details": {"host": "pl-labkrk2-1.devcloud.linodeobjects.com", + "label": "helioslogstreamdestination", "details": {"host": "pl-labkrk2-1.linodeobjects.com", "bucket_name": "helios-bucket", "path": "helioslogs", "access_key_id": "JEYJTV5JQJ86H6ZHNBAX"}}], "details": null, "version": 2, "status": "active", "created_by": "ndeverse-aclp", "created": "2018-01-02T03:04:05", "updated_by": "vivkumar-aclp", "updated": "2018-01-02T03:04:05"}, {"id": 2114, "label": "tgfjszqd", "type": "audit_logs", "destinations": [{"id": 1084, "type": "akamai_object_storage", "label": "klfikshb-upd", - "details": {"host": "waimfikm.pl-labkrk2-1.devcloud.linodeobjects.com", "bucket_name": + "details": {"host": "waimfikm.pl-labkrk2-1.linodeobjects.com", "bucket_name": "waimfikm", "path": "updated/logs/path/", "access_key_id": "ZFYLHL1J17IJZIXDEK0V"}}], "details": null, "version": 1, "status": "inactive", "created_by": "sjerecze-aclp", "created": "2018-01-02T03:04:05", "updated_by": "sjerecze-aclp", "updated": "2018-01-02T03:04:05"}, {"id": 2116, "label": "dqukxuje-upd", "type": "audit_logs", "destinations": [{"id": 1086, "type": "akamai_object_storage", "label": "hcclrgmo", - "details": {"host": "xqhicizn.pl-labkrk2-1.devcloud.linodeobjects.com", "bucket_name": + "details": {"host": "xqhicizn.pl-labkrk2-1.linodeobjects.com", "bucket_name": "xqhicizn", "access_key_id": "VX1VWTK7OCLBDH58RBPY"}}], "details": null, "version": 3, "status": "active", "created_by": "sjerecze-aclp", "created": "2018-01-02T03:04:05", "updated_by": "sjerecze-aclp", "updated": "2018-01-02T03:04:05"}, {"id": 2118, "label": "agsdsoop-upd", "type": "audit_logs", "destinations": [{"id": 1087, - "type": "akamai_object_storage", "label": "wprylqfw", "details": {"host": "vjftvrbl.pl-labkrk2-1.devcloud.linodeobjects.com", + "type": "akamai_object_storage", "label": "wprylqfw", "details": {"host": "vjftvrbl.pl-labkrk2-1.linodeobjects.com", "bucket_name": "vjftvrbl", "access_key_id": "GXUK06GMN46SNHMDUILT"}}], "details": null, "version": 2, "status": "active", "created_by": "sjerecze-aclp", "created": "2018-01-02T03:04:05", "updated_by": "sjerecze-aclp", "updated": "2018-01-02T03:04:05"}]}' diff --git a/test/integration/fixtures/TestLogStream_Create_InvalidDestination.yaml b/test/integration/fixtures/TestLogStream_Create_InvalidDestination.yaml index b5909f56f..283742497 100644 --- a/test/integration/fixtures/TestLogStream_Create_InvalidDestination.yaml +++ b/test/integration/fixtures/TestLogStream_Create_InvalidDestination.yaml @@ -11,29 +11,29 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/monitor/streams?page=1 + url: https://api.linode.com/v4beta/monitor/streams?page=1 method: GET response: body: '{"pages": 1, "page": 1, "results": 4, "data": [{"id": 1288, "label": "heliosstream1", "type": "audit_logs", "destinations": [{"id": 584, "type": "akamai_object_storage", - "label": "helioslogstreamdestination", "details": {"host": "pl-labkrk2-1.devcloud.linodeobjects.com", + "label": "helioslogstreamdestination", "details": {"host": "pl-labkrk2-1.linodeobjects.com", "bucket_name": "helios-bucket", "path": "helioslogs", "access_key_id": "JEYJTV5JQJ86H6ZHNBAX"}}], "details": null, "version": 2, "status": "active", "created_by": "ndeverse-aclp", "created": "2018-01-02T03:04:05", "updated_by": "vivkumar-aclp", "updated": "2018-01-02T03:04:05"}, {"id": 2114, "label": "tgfjszqd", "type": "audit_logs", "destinations": [{"id": 1084, "type": "akamai_object_storage", "label": "klfikshb-upd", - "details": {"host": "waimfikm.pl-labkrk2-1.devcloud.linodeobjects.com", "bucket_name": + "details": {"host": "waimfikm.pl-labkrk2-1.linodeobjects.com", "bucket_name": "waimfikm", "path": "updated/logs/path/", "access_key_id": "ZFYLHL1J17IJZIXDEK0V"}}], "details": null, "version": 1, "status": "inactive", "created_by": "sjerecze-aclp", "created": "2018-01-02T03:04:05", "updated_by": "sjerecze-aclp", "updated": "2018-01-02T03:04:05"}, {"id": 2116, "label": "dqukxuje-upd", "type": "audit_logs", "destinations": [{"id": 1086, "type": "akamai_object_storage", "label": "hcclrgmo", - "details": {"host": "xqhicizn.pl-labkrk2-1.devcloud.linodeobjects.com", "bucket_name": + "details": {"host": "xqhicizn.pl-labkrk2-1.linodeobjects.com", "bucket_name": "xqhicizn", "access_key_id": "VX1VWTK7OCLBDH58RBPY"}}], "details": null, "version": 3, "status": "active", "created_by": "sjerecze-aclp", "created": "2018-01-02T03:04:05", "updated_by": "sjerecze-aclp", "updated": "2018-01-02T03:04:05"}, {"id": 2118, "label": "agsdsoop-upd", "type": "audit_logs", "destinations": [{"id": 1087, - "type": "akamai_object_storage", "label": "wprylqfw", "details": {"host": "vjftvrbl.pl-labkrk2-1.devcloud.linodeobjects.com", + "type": "akamai_object_storage", "label": "wprylqfw", "details": {"host": "vjftvrbl.pl-labkrk2-1.linodeobjects.com", "bucket_name": "vjftvrbl", "access_key_id": "GXUK06GMN46SNHMDUILT"}}], "details": null, "version": 2, "status": "active", "created_by": "sjerecze-aclp", "created": "2018-01-02T03:04:05", "updated_by": "sjerecze-aclp", "updated": "2018-01-02T03:04:05"}]}' diff --git a/test/integration/fixtures/TestLogStream_Create_TwoDestinations.yaml b/test/integration/fixtures/TestLogStream_Create_TwoDestinations.yaml index b5909f56f..283742497 100644 --- a/test/integration/fixtures/TestLogStream_Create_TwoDestinations.yaml +++ b/test/integration/fixtures/TestLogStream_Create_TwoDestinations.yaml @@ -11,29 +11,29 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/monitor/streams?page=1 + url: https://api.linode.com/v4beta/monitor/streams?page=1 method: GET response: body: '{"pages": 1, "page": 1, "results": 4, "data": [{"id": 1288, "label": "heliosstream1", "type": "audit_logs", "destinations": [{"id": 584, "type": "akamai_object_storage", - "label": "helioslogstreamdestination", "details": {"host": "pl-labkrk2-1.devcloud.linodeobjects.com", + "label": "helioslogstreamdestination", "details": {"host": "pl-labkrk2-1.linodeobjects.com", "bucket_name": "helios-bucket", "path": "helioslogs", "access_key_id": "JEYJTV5JQJ86H6ZHNBAX"}}], "details": null, "version": 2, "status": "active", "created_by": "ndeverse-aclp", "created": "2018-01-02T03:04:05", "updated_by": "vivkumar-aclp", "updated": "2018-01-02T03:04:05"}, {"id": 2114, "label": "tgfjszqd", "type": "audit_logs", "destinations": [{"id": 1084, "type": "akamai_object_storage", "label": "klfikshb-upd", - "details": {"host": "waimfikm.pl-labkrk2-1.devcloud.linodeobjects.com", "bucket_name": + "details": {"host": "waimfikm.pl-labkrk2-1.linodeobjects.com", "bucket_name": "waimfikm", "path": "updated/logs/path/", "access_key_id": "ZFYLHL1J17IJZIXDEK0V"}}], "details": null, "version": 1, "status": "inactive", "created_by": "sjerecze-aclp", "created": "2018-01-02T03:04:05", "updated_by": "sjerecze-aclp", "updated": "2018-01-02T03:04:05"}, {"id": 2116, "label": "dqukxuje-upd", "type": "audit_logs", "destinations": [{"id": 1086, "type": "akamai_object_storage", "label": "hcclrgmo", - "details": {"host": "xqhicizn.pl-labkrk2-1.devcloud.linodeobjects.com", "bucket_name": + "details": {"host": "xqhicizn.pl-labkrk2-1.linodeobjects.com", "bucket_name": "xqhicizn", "access_key_id": "VX1VWTK7OCLBDH58RBPY"}}], "details": null, "version": 3, "status": "active", "created_by": "sjerecze-aclp", "created": "2018-01-02T03:04:05", "updated_by": "sjerecze-aclp", "updated": "2018-01-02T03:04:05"}, {"id": 2118, "label": "agsdsoop-upd", "type": "audit_logs", "destinations": [{"id": 1087, - "type": "akamai_object_storage", "label": "wprylqfw", "details": {"host": "vjftvrbl.pl-labkrk2-1.devcloud.linodeobjects.com", + "type": "akamai_object_storage", "label": "wprylqfw", "details": {"host": "vjftvrbl.pl-labkrk2-1.linodeobjects.com", "bucket_name": "vjftvrbl", "access_key_id": "GXUK06GMN46SNHMDUILT"}}], "details": null, "version": 2, "status": "active", "created_by": "sjerecze-aclp", "created": "2018-01-02T03:04:05", "updated_by": "sjerecze-aclp", "updated": "2018-01-02T03:04:05"}]}' diff --git a/test/integration/fixtures/TestLogStream_Delete.yaml b/test/integration/fixtures/TestLogStream_Delete.yaml index 1ae69bb14..9588be9c8 100644 --- a/test/integration/fixtures/TestLogStream_Delete.yaml +++ b/test/integration/fixtures/TestLogStream_Delete.yaml @@ -11,7 +11,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/regions?page=1 + url: https://api.linode.com/v4beta/regions?page=1 method: GET response: body: '{"data": [{"id": "pl-labkrk-2", "label": "Krakow, PL", "country": "pl", @@ -97,13 +97,13 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/object-storage/buckets + url: https://api.linode.com/v4beta/object-storage/buckets method: POST response: - body: '{"hostname": "go-test-logs-destination-1778070608785939000.pl-labkrk2-1.devcloud.linodeobjects.com", + body: '{"hostname": "go-test-logs-destination-1778070608785939000.pl-labkrk2-1.linodeobjects.com", "label": "go-test-logs-destination-1778070608785939000", "created": "2018-01-02T03:04:05", "region": "pl-labkrk-2", "cluster": "pl-labkrk2-1", "size": 0, "objects": 0, - "endpoint_type": "E1", "s3_endpoint": "pl-labkrk2-1.devcloud.linodeobjects.com"}' + "endpoint_type": "E1", "s3_endpoint": "pl-labkrk2-1.linodeobjects.com"}' headers: Access-Control-Allow-Credentials: - "true" @@ -159,12 +159,12 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/object-storage/keys + url: https://api.linode.com/v4beta/object-storage/keys method: POST response: body: '{"id": 340229, "label": "go-test-logs-destination-1778070609592758000", "access_key": "[SANITIZED]", "secret_key": "[SANITIZED]", "limited": false, - "bucket_access": null, "regions": [{"id": "pl-labkrk-2", "s3_endpoint": "pl-labkrk2-1.devcloud.linodeobjects.com", + "bucket_access": null, "regions": [{"id": "pl-labkrk-2", "s3_endpoint": "pl-labkrk2-1.linodeobjects.com", "endpoint_type": "E1"}]}' headers: Access-Control-Allow-Credentials: @@ -212,7 +212,7 @@ interactions: code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1778070610236920000","type":"akamai_object_storage","details":{"access_key_id":"L3G818UP71COR0RIMUAN","access_key_secret":"Kf7uBbRv8WF2NslnZA9XIrLOEQhSHkax0PK3U3b7","bucket_name":"go-test-logs-destination-1778070608785939000","host":"go-test-logs-destination-1778070608785939000.pl-labkrk2-1.devcloud.linodeobjects.com"}}' + body: '{"label":"go-test-logs-destination-1778070610236920000","type":"akamai_object_storage","details":{"access_key_id":"L3G818UP71COR0RIMUAN","access_key_secret":"Kf7uBbRv8WF2NslnZA9XIrLOEQhSHkax0PK3U3b7","bucket_name":"go-test-logs-destination-1778070608785939000","host":"go-test-logs-destination-1778070608785939000.pl-labkrk2-1.linodeobjects.com"}}' form: {} headers: Accept: @@ -221,11 +221,11 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/monitor/streams/destinations + url: https://api.linode.com/v4beta/monitor/streams/destinations method: POST response: body: '{"id": 1090, "label": "go-test-logs-destination-1778070610236920000", "type": - "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778070608785939000.pl-labkrk2-1.devcloud.linodeobjects.com", + "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778070608785939000.pl-labkrk2-1.linodeobjects.com", "bucket_name": "go-test-logs-destination-1778070608785939000", "access_key_id": "L3G818UP71COR0RIMUAN"}, "version": 1, "status": "active", "created_by": "klipensk-aclp", "created": "2018-01-02T03:04:05", "updated_by": "klipensk-aclp", "updated": @@ -285,13 +285,13 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/monitor/streams + url: https://api.linode.com/v4beta/monitor/streams method: POST response: body: '{"id": 2121, "label": "go-test-log-stream-1778070612105601000", "type": "audit_logs", "destinations": [{"id": 1090, "type": "akamai_object_storage", "label": "go-test-logs-destination-1778070610236920000", "details": {"host": - "go-test-logs-destination-1778070608785939000.pl-labkrk2-1.devcloud.linodeobjects.com", + "go-test-logs-destination-1778070608785939000.pl-labkrk2-1.linodeobjects.com", "bucket_name": "go-test-logs-destination-1778070608785939000", "access_key_id": "L3G818UP71COR0RIMUAN"}}], "details": null, "version": 1, "status": "provisioning", "created_by": "klipensk-aclp", "created": "2018-01-02T03:04:05", "updated_by": @@ -351,13 +351,13 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/monitor/streams/2121 + url: https://api.linode.com/v4beta/monitor/streams/2121 method: GET response: body: '{"id": 2121, "label": "go-test-log-stream-1778070612105601000", "type": "audit_logs", "destinations": [{"id": 1090, "type": "akamai_object_storage", "label": "go-test-logs-destination-1778070610236920000", "details": {"host": - "go-test-logs-destination-1778070608785939000.pl-labkrk2-1.devcloud.linodeobjects.com", + "go-test-logs-destination-1778070608785939000.pl-labkrk2-1.linodeobjects.com", "bucket_name": "go-test-logs-destination-1778070608785939000", "access_key_id": "L3G818UP71COR0RIMUAN"}}], "details": null, "version": 1, "status": "active", "created_by": "klipensk-aclp", "created": "2018-01-02T03:04:05", "updated_by": @@ -419,7 +419,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/monitor/streams/2121 + url: https://api.linode.com/v4beta/monitor/streams/2121 method: DELETE response: body: '{}' @@ -478,7 +478,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/monitor/streams/2121 + url: https://api.linode.com/v4beta/monitor/streams/2121 method: GET response: body: '{"errors": [{"reason": "Stream not found"}]}' @@ -524,7 +524,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/monitor/streams/2121 + url: https://api.linode.com/v4beta/monitor/streams/2121 method: DELETE response: body: '{"errors": [{"reason": "Stream not found"}]}' @@ -566,11 +566,11 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/monitor/streams/destinations/1090 + url: https://api.linode.com/v4beta/monitor/streams/destinations/1090 method: GET response: body: '{"id": 1090, "label": "go-test-logs-destination-1778070610236920000", "type": - "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778070608785939000.pl-labkrk2-1.devcloud.linodeobjects.com", + "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778070608785939000.pl-labkrk2-1.linodeobjects.com", "bucket_name": "go-test-logs-destination-1778070608785939000", "access_key_id": "L3G818UP71COR0RIMUAN"}, "version": 1, "status": "active", "created_by": "klipensk-aclp", "created": "2018-01-02T03:04:05", "updated_by": "klipensk-aclp", "updated": @@ -632,7 +632,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/monitor/streams/destinations/1090 + url: https://api.linode.com/v4beta/monitor/streams/destinations/1090 method: DELETE response: body: '{}' @@ -691,7 +691,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/object-storage/keys/340229 + url: https://api.linode.com/v4beta/object-storage/keys/340229 method: DELETE response: body: '{}' @@ -750,7 +750,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/object-storage/buckets/pl-labkrk-2/go-test-logs-destination-1778070608785939000/object-list + url: https://api.linode.com/v4beta/object-storage/buckets/pl-labkrk-2/go-test-logs-destination-1778070608785939000/object-list method: GET response: body: '{"data": [{"name": "cloud-logs-test-connection-20260506T123011", "size": @@ -814,10 +814,10 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/object-storage/buckets/pl-labkrk2-1/go-test-logs-destination-1778070608785939000/object-url + url: https://api.linode.com/v4beta/object-storage/buckets/pl-labkrk-2/go-test-logs-destination-1778070608785939000/object-url method: POST response: - body: '{"url": "https://pl-labkrk2-1.devcloud.linodeobjects.com:443/go-test-logs-destination-1778070608785939000/cloud-logs-test-connection-20260506T123011?Signature=HbmeMtjF%2Fx7Wd8ZdtcFy%2BTmhZ8c%3D&Expires=1778072775&AWSAccessKeyID=SANITIZED", + body: '{"url": "https://pl-labkrk2-1.linodeobjects.com:443/go-test-logs-destination-1778070608785939000/cloud-logs-test-connection-20260506T123011?Signature=HbmeMtjF%2Fx7Wd8ZdtcFy%2BTmhZ8c%3D&Expires=1778072775&AWSAccessKeyID=SANITIZED", "exists": true}' headers: Access-Control-Allow-Credentials: @@ -874,7 +874,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/object-storage/buckets/pl-labkrk-2/go-test-logs-destination-1778070608785939000 + url: https://api.linode.com/v4beta/object-storage/buckets/pl-labkrk-2/go-test-logs-destination-1778070608785939000 method: DELETE response: body: '{}' diff --git a/test/integration/fixtures/TestLogStream_Get.yaml b/test/integration/fixtures/TestLogStream_Get.yaml index 29f49824c..b88c5e1f1 100644 --- a/test/integration/fixtures/TestLogStream_Get.yaml +++ b/test/integration/fixtures/TestLogStream_Get.yaml @@ -11,7 +11,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/regions?page=1 + url: https://api.linode.com/v4beta/regions?page=1 method: GET response: body: '{"data": [{"id": "pl-labkrk-2", "label": "Krakow, PL", "country": "pl", @@ -97,13 +97,13 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/object-storage/buckets + url: https://api.linode.com/v4beta/object-storage/buckets method: POST response: - body: '{"hostname": "go-test-logs-destination-1778077361692714000.pl-labkrk2-1.devcloud.linodeobjects.com", + body: '{"hostname": "go-test-logs-destination-1778077361692714000.pl-labkrk2-1.linodeobjects.com", "label": "go-test-logs-destination-1778077361692714000", "created": "2018-01-02T03:04:05", "region": "pl-labkrk-2", "cluster": "pl-labkrk2-1", "size": 0, "objects": 0, - "endpoint_type": "E1", "s3_endpoint": "pl-labkrk2-1.devcloud.linodeobjects.com"}' + "endpoint_type": "E1", "s3_endpoint": "pl-labkrk2-1.linodeobjects.com"}' headers: Access-Control-Allow-Credentials: - "true" @@ -159,12 +159,12 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/object-storage/keys + url: https://api.linode.com/v4beta/object-storage/keys method: POST response: body: '{"id": 340471, "label": "go-test-logs-destination-1778077362450834000", "access_key": "[SANITIZED]", "secret_key": "[SANITIZED]", "limited": false, - "bucket_access": null, "regions": [{"id": "pl-labkrk-2", "s3_endpoint": "pl-labkrk2-1.devcloud.linodeobjects.com", + "bucket_access": null, "regions": [{"id": "pl-labkrk-2", "s3_endpoint": "pl-labkrk2-1.linodeobjects.com", "endpoint_type": "E1"}]}' headers: Access-Control-Allow-Credentials: @@ -212,7 +212,7 @@ interactions: code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1778077363114776000","type":"akamai_object_storage","details":{"access_key_id":"KU09RCXVUJUB9I7Q6ZSD","access_key_secret":"GswNLX4wQRRLeDwYIsyolZJjREZ77H5XZaBYcw5L","bucket_name":"go-test-logs-destination-1778077361692714000","host":"go-test-logs-destination-1778077361692714000.pl-labkrk2-1.devcloud.linodeobjects.com"}}' + body: '{"label":"go-test-logs-destination-1778077363114776000","type":"akamai_object_storage","details":{"access_key_id":"KU09RCXVUJUB9I7Q6ZSD","access_key_secret":"GswNLX4wQRRLeDwYIsyolZJjREZ77H5XZaBYcw5L","bucket_name":"go-test-logs-destination-1778077361692714000","host":"go-test-logs-destination-1778077361692714000.pl-labkrk2-1.linodeobjects.com"}}' form: {} headers: Accept: @@ -221,11 +221,11 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/monitor/streams/destinations + url: https://api.linode.com/v4beta/monitor/streams/destinations method: POST response: body: '{"id": 1094, "label": "go-test-logs-destination-1778077363114776000", "type": - "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778077361692714000.pl-labkrk2-1.devcloud.linodeobjects.com", + "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778077361692714000.pl-labkrk2-1.linodeobjects.com", "bucket_name": "go-test-logs-destination-1778077361692714000", "access_key_id": "KU09RCXVUJUB9I7Q6ZSD"}, "version": 1, "status": "active", "created_by": "klipensk-aclp", "created": "2018-01-02T03:04:05", "updated_by": "klipensk-aclp", "updated": @@ -285,13 +285,13 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/monitor/streams + url: https://api.linode.com/v4beta/monitor/streams method: POST response: body: '{"id": 2124, "label": "go-test-log-stream-1778077365217644000", "type": "audit_logs", "destinations": [{"id": 1094, "type": "akamai_object_storage", "label": "go-test-logs-destination-1778077363114776000", "details": {"host": - "go-test-logs-destination-1778077361692714000.pl-labkrk2-1.devcloud.linodeobjects.com", + "go-test-logs-destination-1778077361692714000.pl-labkrk2-1.linodeobjects.com", "bucket_name": "go-test-logs-destination-1778077361692714000", "access_key_id": "KU09RCXVUJUB9I7Q6ZSD"}}], "details": null, "version": 1, "status": "provisioning", "created_by": "klipensk-aclp", "created": "2018-01-02T03:04:05", "updated_by": @@ -351,13 +351,13 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/monitor/streams/2124 + url: https://api.linode.com/v4beta/monitor/streams/2124 method: GET response: body: '{"id": 2124, "label": "go-test-log-stream-1778077365217644000", "type": "audit_logs", "destinations": [{"id": 1094, "type": "akamai_object_storage", "label": "go-test-logs-destination-1778077363114776000", "details": {"host": - "go-test-logs-destination-1778077361692714000.pl-labkrk2-1.devcloud.linodeobjects.com", + "go-test-logs-destination-1778077361692714000.pl-labkrk2-1.linodeobjects.com", "bucket_name": "go-test-logs-destination-1778077361692714000", "access_key_id": "KU09RCXVUJUB9I7Q6ZSD"}}], "details": null, "version": 1, "status": "active", "created_by": "klipensk-aclp", "created": "2018-01-02T03:04:05", "updated_by": @@ -419,13 +419,13 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/monitor/streams/2124 + url: https://api.linode.com/v4beta/monitor/streams/2124 method: GET response: body: '{"id": 2124, "label": "go-test-log-stream-1778077365217644000", "type": "audit_logs", "destinations": [{"id": 1094, "type": "akamai_object_storage", "label": "go-test-logs-destination-1778077363114776000", "details": {"host": - "go-test-logs-destination-1778077361692714000.pl-labkrk2-1.devcloud.linodeobjects.com", + "go-test-logs-destination-1778077361692714000.pl-labkrk2-1.linodeobjects.com", "bucket_name": "go-test-logs-destination-1778077361692714000", "access_key_id": "KU09RCXVUJUB9I7Q6ZSD"}}], "details": null, "version": 1, "status": "active", "created_by": "klipensk-aclp", "created": "2018-01-02T03:04:05", "updated_by": @@ -487,7 +487,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/monitor/streams/2124 + url: https://api.linode.com/v4beta/monitor/streams/2124 method: DELETE response: body: '{}' @@ -546,11 +546,11 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/monitor/streams/destinations/1094 + url: https://api.linode.com/v4beta/monitor/streams/destinations/1094 method: GET response: body: '{"id": 1094, "label": "go-test-logs-destination-1778077363114776000", "type": - "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778077361692714000.pl-labkrk2-1.devcloud.linodeobjects.com", + "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778077361692714000.pl-labkrk2-1.linodeobjects.com", "bucket_name": "go-test-logs-destination-1778077361692714000", "access_key_id": "KU09RCXVUJUB9I7Q6ZSD"}, "version": 1, "status": "active", "created_by": "klipensk-aclp", "created": "2018-01-02T03:04:05", "updated_by": "klipensk-aclp", "updated": @@ -612,7 +612,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/monitor/streams/destinations/1094 + url: https://api.linode.com/v4beta/monitor/streams/destinations/1094 method: DELETE response: body: '{}' @@ -671,7 +671,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/object-storage/keys/340471 + url: https://api.linode.com/v4beta/object-storage/keys/340471 method: DELETE response: body: '{}' @@ -730,7 +730,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/object-storage/buckets/pl-labkrk-2/go-test-logs-destination-1778077361692714000/object-list + url: https://api.linode.com/v4beta/object-storage/buckets/pl-labkrk-2/go-test-logs-destination-1778077361692714000/object-list method: GET response: body: '{"data": [{"name": "cloud-logs-test-connection-20260506T142244", "size": @@ -794,10 +794,10 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/object-storage/buckets/pl-labkrk2-1/go-test-logs-destination-1778077361692714000/object-url + url: https://api.linode.com/v4beta/object-storage/buckets/pl-labkrk-2/go-test-logs-destination-1778077361692714000/object-url method: POST response: - body: '{"url": "https://pl-labkrk2-1.devcloud.linodeobjects.com:443/go-test-logs-destination-1778077361692714000/cloud-logs-test-connection-20260506T142244?Signature=aum22VqPehBfdia9VBm5RsHOLrw%3D&Expires=1778079713&AWSAccessKeyID=SANITIZED", + body: '{"url": "https://pl-labkrk2-1.linodeobjects.com:443/go-test-logs-destination-1778077361692714000/cloud-logs-test-connection-20260506T142244?Signature=aum22VqPehBfdia9VBm5RsHOLrw%3D&Expires=1778079713&AWSAccessKeyID=SANITIZED", "exists": true}' headers: Access-Control-Allow-Credentials: @@ -854,7 +854,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/object-storage/buckets/pl-labkrk-2/go-test-logs-destination-1778077361692714000 + url: https://api.linode.com/v4beta/object-storage/buckets/pl-labkrk-2/go-test-logs-destination-1778077361692714000 method: DELETE response: body: '{}' diff --git a/test/integration/fixtures/TestLogStream_List.yaml b/test/integration/fixtures/TestLogStream_List.yaml index 707a558f7..850ea6e44 100644 --- a/test/integration/fixtures/TestLogStream_List.yaml +++ b/test/integration/fixtures/TestLogStream_List.yaml @@ -11,7 +11,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/regions?page=1 + url: https://api.linode.com/v4beta/regions?page=1 method: GET response: body: '{"data": [{"id": "pl-labkrk-2", "label": "Krakow, PL", "country": "pl", @@ -97,13 +97,13 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/object-storage/buckets + url: https://api.linode.com/v4beta/object-storage/buckets method: POST response: - body: '{"hostname": "go-test-logs-destination-1778075037875407000.pl-labkrk2-1.devcloud.linodeobjects.com", + body: '{"hostname": "go-test-logs-destination-1778075037875407000.pl-labkrk2-1.linodeobjects.com", "label": "go-test-logs-destination-1778075037875407000", "created": "2018-01-02T03:04:05", "region": "pl-labkrk-2", "cluster": "pl-labkrk2-1", "size": 0, "objects": 0, - "endpoint_type": "E1", "s3_endpoint": "pl-labkrk2-1.devcloud.linodeobjects.com"}' + "endpoint_type": "E1", "s3_endpoint": "pl-labkrk2-1.linodeobjects.com"}' headers: Access-Control-Allow-Credentials: - "true" @@ -159,12 +159,12 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/object-storage/keys + url: https://api.linode.com/v4beta/object-storage/keys method: POST response: body: '{"id": 340311, "label": "go-test-logs-destination-1778075038706784000", "access_key": "[SANITIZED]", "secret_key": "[SANITIZED]", "limited": false, - "bucket_access": null, "regions": [{"id": "pl-labkrk-2", "s3_endpoint": "pl-labkrk2-1.devcloud.linodeobjects.com", + "bucket_access": null, "regions": [{"id": "pl-labkrk-2", "s3_endpoint": "pl-labkrk2-1.linodeobjects.com", "endpoint_type": "E1"}]}' headers: Access-Control-Allow-Credentials: @@ -212,7 +212,7 @@ interactions: code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1778075039374625000","type":"akamai_object_storage","details":{"access_key_id":"2NWF5MNDG2NZ5CL8GUER","access_key_secret":"FUM51UqtGJSlbGkjixAISUCmsbuUD9W5Y2uxtYfR","bucket_name":"go-test-logs-destination-1778075037875407000","host":"go-test-logs-destination-1778075037875407000.pl-labkrk2-1.devcloud.linodeobjects.com"}}' + body: '{"label":"go-test-logs-destination-1778075039374625000","type":"akamai_object_storage","details":{"access_key_id":"2NWF5MNDG2NZ5CL8GUER","access_key_secret":"FUM51UqtGJSlbGkjixAISUCmsbuUD9W5Y2uxtYfR","bucket_name":"go-test-logs-destination-1778075037875407000","host":"go-test-logs-destination-1778075037875407000.pl-labkrk2-1.linodeobjects.com"}}' form: {} headers: Accept: @@ -221,11 +221,11 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/monitor/streams/destinations + url: https://api.linode.com/v4beta/monitor/streams/destinations method: POST response: body: '{"id": 1091, "label": "go-test-logs-destination-1778075039374625000", "type": - "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778075037875407000.pl-labkrk2-1.devcloud.linodeobjects.com", + "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778075037875407000.pl-labkrk2-1.linodeobjects.com", "bucket_name": "go-test-logs-destination-1778075037875407000", "access_key_id": "2NWF5MNDG2NZ5CL8GUER"}, "version": 1, "status": "active", "created_by": "klipensk-aclp", "created": "2018-01-02T03:04:05", "updated_by": "klipensk-aclp", "updated": @@ -285,13 +285,13 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/monitor/streams + url: https://api.linode.com/v4beta/monitor/streams method: POST response: body: '{"id": 2122, "label": "go-test-log-stream-1778075041741946000", "type": "audit_logs", "destinations": [{"id": 1091, "type": "akamai_object_storage", "label": "go-test-logs-destination-1778075039374625000", "details": {"host": - "go-test-logs-destination-1778075037875407000.pl-labkrk2-1.devcloud.linodeobjects.com", + "go-test-logs-destination-1778075037875407000.pl-labkrk2-1.linodeobjects.com", "bucket_name": "go-test-logs-destination-1778075037875407000", "access_key_id": "2NWF5MNDG2NZ5CL8GUER"}}], "details": null, "version": 1, "status": "provisioning", "created_by": "klipensk-aclp", "created": "2018-01-02T03:04:05", "updated_by": @@ -351,13 +351,13 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/monitor/streams/2122 + url: https://api.linode.com/v4beta/monitor/streams/2122 method: GET response: body: '{"id": 2122, "label": "go-test-log-stream-1778075041741946000", "type": "audit_logs", "destinations": [{"id": 1091, "type": "akamai_object_storage", "label": "go-test-logs-destination-1778075039374625000", "details": {"host": - "go-test-logs-destination-1778075037875407000.pl-labkrk2-1.devcloud.linodeobjects.com", + "go-test-logs-destination-1778075037875407000.pl-labkrk2-1.linodeobjects.com", "bucket_name": "go-test-logs-destination-1778075037875407000", "access_key_id": "2NWF5MNDG2NZ5CL8GUER"}}], "details": null, "version": 1, "status": "active", "created_by": "klipensk-aclp", "created": "2018-01-02T03:04:05", "updated_by": @@ -419,25 +419,25 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/monitor/streams?page=1 + url: https://api.linode.com/v4beta/monitor/streams?page=1 method: GET response: body: '{"pages": 1, "page": 1, "results": 3, "data": [{"id": 1288, "label": "heliosstream1", "type": "audit_logs", "destinations": [{"id": 584, "type": "akamai_object_storage", - "label": "helioslogstreamdestination", "details": {"host": "pl-labkrk2-1.devcloud.linodeobjects.com", + "label": "helioslogstreamdestination", "details": {"host": "pl-labkrk2-1.linodeobjects.com", "bucket_name": "helios-bucket", "path": "helioslogs", "access_key_id": "JEYJTV5JQJ86H6ZHNBAX"}}], "details": null, "version": 2, "status": "active", "created_by": "ndeverse-aclp", "created": "2018-01-02T03:04:05", "updated_by": "vivkumar-aclp", "updated": "2018-01-02T03:04:05"}, {"id": 2122, "label": "go-test-log-stream-1778075041741946000", "type": "audit_logs", "destinations": [{"id": 1091, "type": "akamai_object_storage", "label": "go-test-logs-destination-1778075039374625000", "details": {"host": - "go-test-logs-destination-1778075037875407000.pl-labkrk2-1.devcloud.linodeobjects.com", + "go-test-logs-destination-1778075037875407000.pl-labkrk2-1.linodeobjects.com", "bucket_name": "go-test-logs-destination-1778075037875407000", "access_key_id": "2NWF5MNDG2NZ5CL8GUER"}}], "details": null, "version": 1, "status": "active", "created_by": "klipensk-aclp", "created": "2018-01-02T03:04:05", "updated_by": "klipensk-aclp", "updated": "2018-01-02T03:04:05"}, {"id": 2123, "label": "ansible-test-stream-43190597", "type": "audit_logs", "destinations": [{"id": 1092, "type": "akamai_object_storage", - "label": "ansible-test-dest-36504758", "details": {"host": "pl-labkrk2-1.devcloud.linodeobjects.com", + "label": "ansible-test-dest-36504758", "details": {"host": "pl-labkrk2-1.linodeobjects.com", "bucket_name": "ansible-test-dest-36504758", "access_key_id": "4J0AP7RF1BMDM1TGSIRG"}}], "details": null, "version": 1, "status": "provisioning", "created_by": "sjerecze-aclp", "created": "2018-01-02T03:04:05", "updated_by": "sjerecze-aclp", "updated": @@ -497,7 +497,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/monitor/streams/2122 + url: https://api.linode.com/v4beta/monitor/streams/2122 method: DELETE response: body: '{}' @@ -556,11 +556,11 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/monitor/streams/destinations/1091 + url: https://api.linode.com/v4beta/monitor/streams/destinations/1091 method: GET response: body: '{"id": 1091, "label": "go-test-logs-destination-1778075039374625000", "type": - "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778075037875407000.pl-labkrk2-1.devcloud.linodeobjects.com", + "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778075037875407000.pl-labkrk2-1.linodeobjects.com", "bucket_name": "go-test-logs-destination-1778075037875407000", "access_key_id": "2NWF5MNDG2NZ5CL8GUER"}, "version": 1, "status": "active", "created_by": "klipensk-aclp", "created": "2018-01-02T03:04:05", "updated_by": "klipensk-aclp", "updated": @@ -622,7 +622,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/monitor/streams/destinations/1091 + url: https://api.linode.com/v4beta/monitor/streams/destinations/1091 method: DELETE response: body: '{}' @@ -681,7 +681,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/object-storage/keys/340311 + url: https://api.linode.com/v4beta/object-storage/keys/340311 method: DELETE response: body: '{}' @@ -740,7 +740,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/object-storage/buckets/pl-labkrk-2/go-test-logs-destination-1778075037875407000/object-list + url: https://api.linode.com/v4beta/object-storage/buckets/pl-labkrk-2/go-test-logs-destination-1778075037875407000/object-list method: GET response: body: '{"data": [{"name": "cloud-logs-test-connection-20260506T134400", "size": @@ -804,10 +804,10 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/object-storage/buckets/pl-labkrk2-1/go-test-logs-destination-1778075037875407000/object-url + url: https://api.linode.com/v4beta/object-storage/buckets/pl-labkrk-2/go-test-logs-destination-1778075037875407000/object-url method: POST response: - body: '{"url": "https://pl-labkrk2-1.devcloud.linodeobjects.com:443/go-test-logs-destination-1778075037875407000/cloud-logs-test-connection-20260506T134400?Signature=XTR4jtyeglQHOWYaBB3%2FGBAd7Lc%3D&Expires=1778077106&AWSAccessKeyID=SANITIZED", + body: '{"url": "https://pl-labkrk2-1.linodeobjects.com:443/go-test-logs-destination-1778075037875407000/cloud-logs-test-connection-20260506T134400?Signature=XTR4jtyeglQHOWYaBB3%2FGBAd7Lc%3D&Expires=1778077106&AWSAccessKeyID=SANITIZED", "exists": true}' headers: Access-Control-Allow-Credentials: @@ -864,7 +864,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/object-storage/buckets/pl-labkrk-2/go-test-logs-destination-1778075037875407000 + url: https://api.linode.com/v4beta/object-storage/buckets/pl-labkrk-2/go-test-logs-destination-1778075037875407000 method: DELETE response: body: '{}' diff --git a/test/integration/fixtures/TestLogStream_Update_Destinations.yaml b/test/integration/fixtures/TestLogStream_Update_Destinations.yaml index b26f6cf15..af87e0717 100644 --- a/test/integration/fixtures/TestLogStream_Update_Destinations.yaml +++ b/test/integration/fixtures/TestLogStream_Update_Destinations.yaml @@ -11,7 +11,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/regions?page=1 + url: https://api.linode.com/v4beta/regions?page=1 method: GET response: body: '{"data": [{"id": "pl-labkrk-2", "label": "Krakow, PL", "country": "pl", @@ -97,13 +97,13 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/object-storage/buckets + url: https://api.linode.com/v4beta/object-storage/buckets method: POST response: - body: '{"hostname": "go-test-logs-destination-1778092381336293000.pl-labkrk2-1.devcloud.linodeobjects.com", + body: '{"hostname": "go-test-logs-destination-1778092381336293000.pl-labkrk2-1.linodeobjects.com", "label": "go-test-logs-destination-1778092381336293000", "created": "2018-01-02T03:04:05", "region": "pl-labkrk-2", "cluster": "pl-labkrk2-1", "size": 0, "objects": 0, - "endpoint_type": "E1", "s3_endpoint": "pl-labkrk2-1.devcloud.linodeobjects.com"}' + "endpoint_type": "E1", "s3_endpoint": "pl-labkrk2-1.linodeobjects.com"}' headers: Access-Control-Allow-Credentials: - "true" @@ -159,12 +159,12 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/object-storage/keys + url: https://api.linode.com/v4beta/object-storage/keys method: POST response: body: '{"id": 340783, "label": "go-test-logs-destination-1778092382145143000", "access_key": "[SANITIZED]", "secret_key": "[SANITIZED]", "limited": false, - "bucket_access": null, "regions": [{"id": "pl-labkrk-2", "s3_endpoint": "pl-labkrk2-1.devcloud.linodeobjects.com", + "bucket_access": null, "regions": [{"id": "pl-labkrk-2", "s3_endpoint": "pl-labkrk2-1.linodeobjects.com", "endpoint_type": "E1"}]}' headers: Access-Control-Allow-Credentials: @@ -212,7 +212,7 @@ interactions: code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1778092382634636000","type":"akamai_object_storage","details":{"access_key_id":"5X3BYDLE4YQQWY63YJHM","access_key_secret":"pUKNpJi9ut96gSsSfk0BPsJqZ82hB6iOVZwc0D3O","bucket_name":"go-test-logs-destination-1778092381336293000","host":"go-test-logs-destination-1778092381336293000.pl-labkrk2-1.devcloud.linodeobjects.com"}}' + body: '{"label":"go-test-logs-destination-1778092382634636000","type":"akamai_object_storage","details":{"access_key_id":"5X3BYDLE4YQQWY63YJHM","access_key_secret":"pUKNpJi9ut96gSsSfk0BPsJqZ82hB6iOVZwc0D3O","bucket_name":"go-test-logs-destination-1778092381336293000","host":"go-test-logs-destination-1778092381336293000.pl-labkrk2-1.linodeobjects.com"}}' form: {} headers: Accept: @@ -221,11 +221,11 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/monitor/streams/destinations + url: https://api.linode.com/v4beta/monitor/streams/destinations method: POST response: body: '{"id": 1098, "label": "go-test-logs-destination-1778092382634636000", "type": - "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778092381336293000.pl-labkrk2-1.devcloud.linodeobjects.com", + "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778092381336293000.pl-labkrk2-1.linodeobjects.com", "bucket_name": "go-test-logs-destination-1778092381336293000", "access_key_id": "5X3BYDLE4YQQWY63YJHM"}, "version": 1, "status": "active", "created_by": "klipensk-aclp", "created": "2018-01-02T03:04:05", "updated_by": "klipensk-aclp", "updated": @@ -285,13 +285,13 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/monitor/streams + url: https://api.linode.com/v4beta/monitor/streams method: POST response: body: '{"id": 2128, "label": "go-test-log-stream-1778092384810499000", "type": "audit_logs", "destinations": [{"id": 1098, "type": "akamai_object_storage", "label": "go-test-logs-destination-1778092382634636000", "details": {"host": - "go-test-logs-destination-1778092381336293000.pl-labkrk2-1.devcloud.linodeobjects.com", + "go-test-logs-destination-1778092381336293000.pl-labkrk2-1.linodeobjects.com", "bucket_name": "go-test-logs-destination-1778092381336293000", "access_key_id": "5X3BYDLE4YQQWY63YJHM"}}], "details": null, "version": 1, "status": "provisioning", "created_by": "klipensk-aclp", "created": "2018-01-02T03:04:05", "updated_by": @@ -351,13 +351,13 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/object-storage/buckets + url: https://api.linode.com/v4beta/object-storage/buckets method: POST response: - body: '{"hostname": "go-test-logs-destination-1778092389375217000.pl-labkrk2-1.devcloud.linodeobjects.com", + body: '{"hostname": "go-test-logs-destination-1778092389375217000.pl-labkrk2-1.linodeobjects.com", "label": "go-test-logs-destination-1778092389375217000", "created": "2018-01-02T03:04:05", "region": "pl-labkrk-2", "cluster": "pl-labkrk2-1", "size": 0, "objects": 0, - "endpoint_type": "E1", "s3_endpoint": "pl-labkrk2-1.devcloud.linodeobjects.com"}' + "endpoint_type": "E1", "s3_endpoint": "pl-labkrk2-1.linodeobjects.com"}' headers: Access-Control-Allow-Credentials: - "true" @@ -413,12 +413,12 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/object-storage/keys + url: https://api.linode.com/v4beta/object-storage/keys method: POST response: body: '{"id": 340784, "label": "go-test-logs-destination-1778092390182681000", "access_key": "[SANITIZED]", "secret_key": "[SANITIZED]", "limited": false, - "bucket_access": null, "regions": [{"id": "pl-labkrk-2", "s3_endpoint": "pl-labkrk2-1.devcloud.linodeobjects.com", + "bucket_access": null, "regions": [{"id": "pl-labkrk-2", "s3_endpoint": "pl-labkrk2-1.linodeobjects.com", "endpoint_type": "E1"}]}' headers: Access-Control-Allow-Credentials: @@ -466,7 +466,7 @@ interactions: code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1778092390679630000","type":"akamai_object_storage","details":{"access_key_id":"MXVW7MM9OMSPL8HF3G5V","access_key_secret":"B8uiL21m41LHLHjjWBpoxU7KB7CzxRL6KdwMqQu1","bucket_name":"go-test-logs-destination-1778092389375217000","host":"go-test-logs-destination-1778092389375217000.pl-labkrk2-1.devcloud.linodeobjects.com"}}' + body: '{"label":"go-test-logs-destination-1778092390679630000","type":"akamai_object_storage","details":{"access_key_id":"MXVW7MM9OMSPL8HF3G5V","access_key_secret":"B8uiL21m41LHLHjjWBpoxU7KB7CzxRL6KdwMqQu1","bucket_name":"go-test-logs-destination-1778092389375217000","host":"go-test-logs-destination-1778092389375217000.pl-labkrk2-1.linodeobjects.com"}}' form: {} headers: Accept: @@ -475,11 +475,11 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/monitor/streams/destinations + url: https://api.linode.com/v4beta/monitor/streams/destinations method: POST response: body: '{"id": 1099, "label": "go-test-logs-destination-1778092390679630000", "type": - "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778092389375217000.pl-labkrk2-1.devcloud.linodeobjects.com", + "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778092389375217000.pl-labkrk2-1.linodeobjects.com", "bucket_name": "go-test-logs-destination-1778092389375217000", "access_key_id": "MXVW7MM9OMSPL8HF3G5V"}, "version": 1, "status": "active", "created_by": "klipensk-aclp", "created": "2018-01-02T03:04:05", "updated_by": "klipensk-aclp", "updated": @@ -539,13 +539,13 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/monitor/streams/2128 + url: https://api.linode.com/v4beta/monitor/streams/2128 method: GET response: body: '{"id": 2128, "label": "go-test-log-stream-1778092384810499000", "type": "audit_logs", "destinations": [{"id": 1098, "type": "akamai_object_storage", "label": "go-test-logs-destination-1778092382634636000", "details": {"host": - "go-test-logs-destination-1778092381336293000.pl-labkrk2-1.devcloud.linodeobjects.com", + "go-test-logs-destination-1778092381336293000.pl-labkrk2-1.linodeobjects.com", "bucket_name": "go-test-logs-destination-1778092381336293000", "access_key_id": "5X3BYDLE4YQQWY63YJHM"}}], "details": null, "version": 1, "status": "active", "created_by": "klipensk-aclp", "created": "2018-01-02T03:04:05", "updated_by": @@ -607,13 +607,13 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/monitor/streams/2128 + url: https://api.linode.com/v4beta/monitor/streams/2128 method: PUT response: body: '{"id": 2128, "label": "go-test-log-stream-1778092384810499000", "type": "audit_logs", "destinations": [{"id": 1099, "type": "akamai_object_storage", "label": "go-test-logs-destination-1778092390679630000", "details": {"host": - "go-test-logs-destination-1778092389375217000.pl-labkrk2-1.devcloud.linodeobjects.com", + "go-test-logs-destination-1778092389375217000.pl-labkrk2-1.linodeobjects.com", "bucket_name": "go-test-logs-destination-1778092389375217000", "access_key_id": "MXVW7MM9OMSPL8HF3G5V"}}], "details": null, "version": 2, "status": "provisioning", "created_by": "klipensk-aclp", "created": "2018-01-02T03:04:05", "updated_by": @@ -673,20 +673,20 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/monitor/streams/2128/history?page=1 + url: https://api.linode.com/v4beta/monitor/streams/2128/history?page=1 method: GET response: body: '{"pages": 1, "page": 1, "results": 2, "data": [{"id": 2128, "label": "go-test-log-stream-1778092384810499000", "type": "audit_logs", "destinations": [{"id": 1099, "type": "akamai_object_storage", "label": "go-test-logs-destination-1778092390679630000", "details": {"host": - "go-test-logs-destination-1778092389375217000.pl-labkrk2-1.devcloud.linodeobjects.com", + "go-test-logs-destination-1778092389375217000.pl-labkrk2-1.linodeobjects.com", "bucket_name": "go-test-logs-destination-1778092389375217000", "access_key_id": "MXVW7MM9OMSPL8HF3G5V"}}], "details": null, "version": 2, "status": "provisioning", "created_by": "klipensk-aclp", "created": "2018-01-02T03:04:05", "updated_by": "klipensk-aclp", "updated": "2018-01-02T03:04:05"}, {"id": 2128, "label": "go-test-log-stream-1778092384810499000", "type": "audit_logs", "destinations": [{"id": 1098, "type": "akamai_object_storage", "label": "go-test-logs-destination-1778092382634636000", "details": {"host": - "go-test-logs-destination-1778092381336293000.pl-labkrk2-1.devcloud.linodeobjects.com", + "go-test-logs-destination-1778092381336293000.pl-labkrk2-1.linodeobjects.com", "bucket_name": "go-test-logs-destination-1778092381336293000", "access_key_id": "5X3BYDLE4YQQWY63YJHM"}}], "details": null, "version": 1, "status": "inactive", "created_by": "klipensk-aclp", "created": "2018-01-02T03:04:05", "updated_by": @@ -746,7 +746,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/monitor/streams/2128 + url: https://api.linode.com/v4beta/monitor/streams/2128 method: PUT response: body: '{"errors": [{"reason": "Unable to edit Stream at this time"}]}' @@ -788,7 +788,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/monitor/streams/destinations/1099 + url: https://api.linode.com/v4beta/monitor/streams/destinations/1099 method: DELETE response: body: '{"errors": [{"reason": "Unable to delete Destination attached to active @@ -831,7 +831,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/object-storage/keys/340784 + url: https://api.linode.com/v4beta/object-storage/keys/340784 method: DELETE response: body: '{}' @@ -890,7 +890,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/object-storage/buckets/pl-labkrk-2/go-test-logs-destination-1778092389375217000/object-list + url: https://api.linode.com/v4beta/object-storage/buckets/pl-labkrk-2/go-test-logs-destination-1778092389375217000/object-list method: GET response: body: '{"data": [{"name": "cloud-logs-test-connection-20260506T183312", "size": @@ -954,10 +954,10 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/object-storage/buckets/pl-labkrk2-1/go-test-logs-destination-1778092389375217000/object-url + url: https://api.linode.com/v4beta/object-storage/buckets/pl-labkrk-2/go-test-logs-destination-1778092389375217000/object-url method: POST response: - body: '{"url": "https://pl-labkrk2-1.devcloud.linodeobjects.com:443/go-test-logs-destination-1778092389375217000/cloud-logs-test-connection-20260506T183312?Signature=GdNrFnHihS15Q2mtgQjBKUHHv1s%3D&Expires=1778094450&AWSAccessKeyID=SANITIZED", + body: '{"url": "https://pl-labkrk2-1.linodeobjects.com:443/go-test-logs-destination-1778092389375217000/cloud-logs-test-connection-20260506T183312?Signature=GdNrFnHihS15Q2mtgQjBKUHHv1s%3D&Expires=1778094450&AWSAccessKeyID=SANITIZED", "exists": true}' headers: Access-Control-Allow-Credentials: @@ -1014,7 +1014,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/object-storage/buckets/pl-labkrk-2/go-test-logs-destination-1778092389375217000 + url: https://api.linode.com/v4beta/object-storage/buckets/pl-labkrk-2/go-test-logs-destination-1778092389375217000 method: DELETE response: body: '{}' @@ -1073,7 +1073,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/monitor/streams/2128 + url: https://api.linode.com/v4beta/monitor/streams/2128 method: DELETE response: body: '{"errors": [{"reason": "Unable to delete Stream at this time"}]}' @@ -1115,11 +1115,11 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/monitor/streams/destinations/1098 + url: https://api.linode.com/v4beta/monitor/streams/destinations/1098 method: GET response: body: '{"id": 1098, "label": "go-test-logs-destination-1778092382634636000", "type": - "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778092381336293000.pl-labkrk2-1.devcloud.linodeobjects.com", + "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778092381336293000.pl-labkrk2-1.linodeobjects.com", "bucket_name": "go-test-logs-destination-1778092381336293000", "access_key_id": "5X3BYDLE4YQQWY63YJHM"}, "version": 1, "status": "active", "created_by": "klipensk-aclp", "created": "2018-01-02T03:04:05", "updated_by": "klipensk-aclp", "updated": @@ -1181,7 +1181,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/monitor/streams/destinations/1098 + url: https://api.linode.com/v4beta/monitor/streams/destinations/1098 method: DELETE response: body: '{}' @@ -1240,7 +1240,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/object-storage/keys/340783 + url: https://api.linode.com/v4beta/object-storage/keys/340783 method: DELETE response: body: '{}' @@ -1299,7 +1299,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/object-storage/buckets/pl-labkrk-2/go-test-logs-destination-1778092381336293000/object-list + url: https://api.linode.com/v4beta/object-storage/buckets/pl-labkrk-2/go-test-logs-destination-1778092381336293000/object-list method: GET response: body: '{"data": [{"name": "cloud-logs-test-connection-20260506T183304", "size": @@ -1363,10 +1363,10 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/object-storage/buckets/pl-labkrk2-1/go-test-logs-destination-1778092381336293000/object-url + url: https://api.linode.com/v4beta/object-storage/buckets/pl-labkrk-2/go-test-logs-destination-1778092381336293000/object-url method: POST response: - body: '{"url": "https://pl-labkrk2-1.devcloud.linodeobjects.com:443/go-test-logs-destination-1778092381336293000/cloud-logs-test-connection-20260506T183304?Signature=8WS%2FOc3CCeKCNmhcOeLJg%2B%2BxNPc%3D&Expires=1778094480&AWSAccessKeyID=SANITIZED", + body: '{"url": "https://pl-labkrk2-1.linodeobjects.com:443/go-test-logs-destination-1778092381336293000/cloud-logs-test-connection-20260506T183304?Signature=8WS%2FOc3CCeKCNmhcOeLJg%2B%2BxNPc%3D&Expires=1778094480&AWSAccessKeyID=SANITIZED", "exists": true}' headers: Access-Control-Allow-Credentials: @@ -1423,7 +1423,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/object-storage/buckets/pl-labkrk-2/go-test-logs-destination-1778092381336293000 + url: https://api.linode.com/v4beta/object-storage/buckets/pl-labkrk-2/go-test-logs-destination-1778092381336293000 method: DELETE response: body: '{}' diff --git a/test/integration/fixtures/TestLogStream_Update_LabelAndStatus.yaml b/test/integration/fixtures/TestLogStream_Update_LabelAndStatus.yaml index 1c1f9d9d7..52bb3d848 100644 --- a/test/integration/fixtures/TestLogStream_Update_LabelAndStatus.yaml +++ b/test/integration/fixtures/TestLogStream_Update_LabelAndStatus.yaml @@ -11,7 +11,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/regions?page=1 + url: https://api.linode.com/v4beta/regions?page=1 method: GET response: body: '{"data": [{"id": "pl-labkrk-2", "label": "Krakow, PL", "country": "pl", @@ -97,13 +97,13 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/object-storage/buckets + url: https://api.linode.com/v4beta/object-storage/buckets method: POST response: - body: '{"hostname": "go-test-logs-destination-1778150734488950000.pl-labkrk2-1.devcloud.linodeobjects.com", + body: '{"hostname": "go-test-logs-destination-1778150734488950000.pl-labkrk2-1.linodeobjects.com", "label": "go-test-logs-destination-1778150734488950000", "created": "2018-01-02T03:04:05", "region": "pl-labkrk-2", "cluster": "pl-labkrk2-1", "size": 0, "objects": 0, - "endpoint_type": "E1", "s3_endpoint": "pl-labkrk2-1.devcloud.linodeobjects.com"}' + "endpoint_type": "E1", "s3_endpoint": "pl-labkrk2-1.linodeobjects.com"}' headers: Access-Control-Allow-Credentials: - "true" @@ -159,12 +159,12 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/object-storage/keys + url: https://api.linode.com/v4beta/object-storage/keys method: POST response: body: '{"id": 341620, "label": "go-test-logs-destination-1778150735295090000", "access_key": "[SANITIZED]", "secret_key": "[SANITIZED]", "limited": false, - "bucket_access": null, "regions": [{"id": "pl-labkrk-2", "s3_endpoint": "pl-labkrk2-1.devcloud.linodeobjects.com", + "bucket_access": null, "regions": [{"id": "pl-labkrk-2", "s3_endpoint": "pl-labkrk2-1.linodeobjects.com", "endpoint_type": "E1"}]}' headers: Access-Control-Allow-Credentials: @@ -212,7 +212,7 @@ interactions: code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1778150735872446000","type":"akamai_object_storage","details":{"access_key_id":"9NLU0IUEBUHXCEC0VN6C","access_key_secret":"KLDglWZDnByzgrOUL4Lr1jLs6ZjMULI4AbwfTpWu","bucket_name":"go-test-logs-destination-1778150734488950000","host":"go-test-logs-destination-1778150734488950000.pl-labkrk2-1.devcloud.linodeobjects.com"}}' + body: '{"label":"go-test-logs-destination-1778150735872446000","type":"akamai_object_storage","details":{"access_key_id":"9NLU0IUEBUHXCEC0VN6C","access_key_secret":"KLDglWZDnByzgrOUL4Lr1jLs6ZjMULI4AbwfTpWu","bucket_name":"go-test-logs-destination-1778150734488950000","host":"go-test-logs-destination-1778150734488950000.pl-labkrk2-1.linodeobjects.com"}}' form: {} headers: Accept: @@ -221,11 +221,11 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/monitor/streams/destinations + url: https://api.linode.com/v4beta/monitor/streams/destinations method: POST response: body: '{"id": 1125, "label": "go-test-logs-destination-1778150735872446000", "type": - "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778150734488950000.pl-labkrk2-1.devcloud.linodeobjects.com", + "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778150734488950000.pl-labkrk2-1.linodeobjects.com", "bucket_name": "go-test-logs-destination-1778150734488950000", "access_key_id": "9NLU0IUEBUHXCEC0VN6C"}, "version": 1, "status": "active", "created_by": "klipensk-aclp", "created": "2018-01-02T03:04:05", "updated_by": "klipensk-aclp", "updated": @@ -285,13 +285,13 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/monitor/streams + url: https://api.linode.com/v4beta/monitor/streams method: POST response: body: '{"id": 2152, "label": "go-test-log-stream-1778150737226222000", "type": "audit_logs", "destinations": [{"id": 1125, "type": "akamai_object_storage", "label": "go-test-logs-destination-1778150735872446000", "details": {"host": - "go-test-logs-destination-1778150734488950000.pl-labkrk2-1.devcloud.linodeobjects.com", + "go-test-logs-destination-1778150734488950000.pl-labkrk2-1.linodeobjects.com", "bucket_name": "go-test-logs-destination-1778150734488950000", "access_key_id": "9NLU0IUEBUHXCEC0VN6C"}}], "details": null, "version": 1, "status": "provisioning", "created_by": "klipensk-aclp", "created": "2018-01-02T03:04:05", "updated_by": @@ -351,13 +351,13 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/monitor/streams/2152 + url: https://api.linode.com/v4beta/monitor/streams/2152 method: GET response: body: '{"id": 2152, "label": "go-test-log-stream-1778150737226222000", "type": "audit_logs", "destinations": [{"id": 1125, "type": "akamai_object_storage", "label": "go-test-logs-destination-1778150735872446000", "details": {"host": - "go-test-logs-destination-1778150734488950000.pl-labkrk2-1.devcloud.linodeobjects.com", + "go-test-logs-destination-1778150734488950000.pl-labkrk2-1.linodeobjects.com", "bucket_name": "go-test-logs-destination-1778150734488950000", "access_key_id": "9NLU0IUEBUHXCEC0VN6C"}}], "details": null, "version": 1, "status": "active", "created_by": "klipensk-aclp", "created": "2018-01-02T03:04:05", "updated_by": @@ -419,13 +419,13 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/monitor/streams/2152 + url: https://api.linode.com/v4beta/monitor/streams/2152 method: PUT response: body: '{"id": 2152, "label": "go-test-log-stream-1778150737226222000-upd", "type": "audit_logs", "destinations": [{"id": 1125, "type": "akamai_object_storage", "label": "go-test-logs-destination-1778150735872446000", "details": {"host": - "go-test-logs-destination-1778150734488950000.pl-labkrk2-1.devcloud.linodeobjects.com", + "go-test-logs-destination-1778150734488950000.pl-labkrk2-1.linodeobjects.com", "bucket_name": "go-test-logs-destination-1778150734488950000", "access_key_id": "9NLU0IUEBUHXCEC0VN6C"}}], "details": null, "version": 2, "status": "deactivating", "created_by": "klipensk-aclp", "created": "2018-01-02T03:04:05", "updated_by": @@ -485,20 +485,20 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/monitor/streams/2152/history?page=1 + url: https://api.linode.com/v4beta/monitor/streams/2152/history?page=1 method: GET response: body: '{"pages": 1, "page": 1, "results": 2, "data": [{"id": 2152, "label": "go-test-log-stream-1778150737226222000-upd", "type": "audit_logs", "destinations": [{"id": 1125, "type": "akamai_object_storage", "label": "go-test-logs-destination-1778150735872446000", "details": {"host": - "go-test-logs-destination-1778150734488950000.pl-labkrk2-1.devcloud.linodeobjects.com", + "go-test-logs-destination-1778150734488950000.pl-labkrk2-1.linodeobjects.com", "bucket_name": "go-test-logs-destination-1778150734488950000", "access_key_id": "9NLU0IUEBUHXCEC0VN6C"}}], "details": null, "version": 2, "status": "deactivating", "created_by": "klipensk-aclp", "created": "2018-01-02T03:04:05", "updated_by": "klipensk-aclp", "updated": "2018-01-02T03:04:05"}, {"id": 2152, "label": "go-test-log-stream-1778150737226222000", "type": "audit_logs", "destinations": [{"id": 1125, "type": "akamai_object_storage", "label": "go-test-logs-destination-1778150735872446000", "details": {"host": - "go-test-logs-destination-1778150734488950000.pl-labkrk2-1.devcloud.linodeobjects.com", + "go-test-logs-destination-1778150734488950000.pl-labkrk2-1.linodeobjects.com", "bucket_name": "go-test-logs-destination-1778150734488950000", "access_key_id": "9NLU0IUEBUHXCEC0VN6C"}}], "details": null, "version": 1, "status": "inactive", "created_by": "klipensk-aclp", "created": "2018-01-02T03:04:05", "updated_by": @@ -558,13 +558,13 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/monitor/streams/2152 + url: https://api.linode.com/v4beta/monitor/streams/2152 method: GET response: body: '{"id": 2152, "label": "go-test-log-stream-1778150737226222000-upd", "type": "audit_logs", "destinations": [{"id": 1125, "type": "akamai_object_storage", "label": "go-test-logs-destination-1778150735872446000", "details": {"host": - "go-test-logs-destination-1778150734488950000.pl-labkrk2-1.devcloud.linodeobjects.com", + "go-test-logs-destination-1778150734488950000.pl-labkrk2-1.linodeobjects.com", "bucket_name": "go-test-logs-destination-1778150734488950000", "access_key_id": "9NLU0IUEBUHXCEC0VN6C"}}], "details": null, "version": 2, "status": "inactive", "created_by": "klipensk-aclp", "created": "2018-01-02T03:04:05", "updated_by": @@ -626,7 +626,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/monitor/streams/2152 + url: https://api.linode.com/v4beta/monitor/streams/2152 method: DELETE response: body: '{}' @@ -685,7 +685,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/monitor/streams/2152 + url: https://api.linode.com/v4beta/monitor/streams/2152 method: GET response: body: '{"errors": [{"reason": "Stream not found"}]}' @@ -731,11 +731,11 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/monitor/streams/destinations/1125 + url: https://api.linode.com/v4beta/monitor/streams/destinations/1125 method: GET response: body: '{"id": 1125, "label": "go-test-logs-destination-1778150735872446000", "type": - "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778150734488950000.pl-labkrk2-1.devcloud.linodeobjects.com", + "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778150734488950000.pl-labkrk2-1.linodeobjects.com", "bucket_name": "go-test-logs-destination-1778150734488950000", "access_key_id": "9NLU0IUEBUHXCEC0VN6C"}, "version": 1, "status": "active", "created_by": "klipensk-aclp", "created": "2018-01-02T03:04:05", "updated_by": "klipensk-aclp", "updated": @@ -797,7 +797,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/monitor/streams/destinations/1125 + url: https://api.linode.com/v4beta/monitor/streams/destinations/1125 method: DELETE response: body: '{}' @@ -856,7 +856,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/object-storage/keys/341620 + url: https://api.linode.com/v4beta/object-storage/keys/341620 method: DELETE response: body: '{}' @@ -915,7 +915,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/object-storage/buckets/pl-labkrk-2/go-test-logs-destination-1778150734488950000/object-list + url: https://api.linode.com/v4beta/object-storage/buckets/pl-labkrk-2/go-test-logs-destination-1778150734488950000/object-list method: GET response: body: '{"data": [{"name": "cloud-logs-test-connection-20260507T104536", "size": @@ -979,10 +979,10 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/object-storage/buckets/pl-labkrk-2/go-test-logs-destination-1778150734488950000/object-url + url: https://api.linode.com/v4beta/object-storage/buckets/pl-labkrk-2/go-test-logs-destination-1778150734488950000/object-url method: POST response: - body: '{"url": "https://pl-labkrk2-1.devcloud.linodeobjects.com:443/go-test-logs-destination-1778150734488950000/cloud-logs-test-connection-20260507T104536?Signature=q%2BNXxZWnIZNBfSqY8HP6%2F8Xbr9U%3D&Expires=1778154957&AWSAccessKeyID=SANITIZED", + body: '{"url": "https://pl-labkrk2-1.linodeobjects.com:443/go-test-logs-destination-1778150734488950000/cloud-logs-test-connection-20260507T104536?Signature=q%2BNXxZWnIZNBfSqY8HP6%2F8Xbr9U%3D&Expires=1778154957&AWSAccessKeyID=SANITIZED", "exists": true}' headers: Access-Control-Allow-Credentials: @@ -1039,7 +1039,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/object-storage/buckets/pl-labkrk-2/go-test-logs-destination-1778150734488950000 + url: https://api.linode.com/v4beta/object-storage/buckets/pl-labkrk-2/go-test-logs-destination-1778150734488950000 method: DELETE response: body: '{}' diff --git a/test/integration/fixtures/TestLogsDestination_Create_InvalidSecret.yaml b/test/integration/fixtures/TestLogsDestination_Create_InvalidSecret.yaml index baff495e2..c1f57eec9 100644 --- a/test/integration/fixtures/TestLogsDestination_Create_InvalidSecret.yaml +++ b/test/integration/fixtures/TestLogsDestination_Create_InvalidSecret.yaml @@ -11,37 +11,349 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/regions?page=1 + url: https://api.linode.com/v4beta/regions?page=1 method: GET response: - body: '{"data": [{"id": "pl-labkrk-2", "label": "Krakow, PL", "country": "pl", - "capabilities": ["Linodes", "Block Storage Encryption", "LA Disk Encryption", - "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", "Object Storage", - "GPU Linodes", "Kubernetes", "Kubernetes Enterprise", "Cloud Firewall", "Vlans", - "VPCs", "VPC Dual Stack", "Block Storage Migrations", "Managed Databases", "Metadata", + body: '{"data": [{"id": "gb-lon", "label": "London 2, UK", "country": "gb", "capabilities": + ["Linodes", "Block Storage Encryption", "LA Disk Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "Object Storage", "GPU Linodes", + "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts", "NETINT Quadra T1U", "Maintenance - Policy", "Linode Interfaces", "Network LoadBalancer", "ACLP Logs Datacenter - LKE-E"], "monitors": {"alerts": ["Block Storage", "Cloud Firewall", "Kubernetes", - "Linodes", "Managed Databases", "Network LoadBalancer", "NodeBalancers", "Object - Storage", "logs"], "metrics": ["Block Storage", "Cloud Firewall", "Kubernetes", - "Linodes", "Managed Databases", "Network LoadBalancer", "NodeBalancers", "Object - Storage", "logs"]}, "status": "ok", "resolvers": {"ipv4": "172.24.224.240,172.24.224.229,172.24.224.236,172.24.224.238,172.24.224.235,172.24.224.241,172.24.224.230,172.24.224.239,172.24.224.233,172.24.224.234", + Policy", "Linode Interfaces", "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": + ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.236.0.46,172.236.0.50,172.236.0.47,172.236.0.53,172.236.0.52,172.236.0.45,172.236.0.49,172.236.0.51,172.236.0.54,172.236.0.48", "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": - 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-labedgeeat-2", - "label": "East Wenatchee, US", "country": "us", "capabilities": ["Linodes", - "Disk Encryption", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "Metadata", - "Distributed Plans", "Linode Interfaces"], "monitors": {"alerts": [], "metrics": - []}, "status": "ok", "resolvers": {"ipv4": "173.223.100.53,173.223.101.53", - "ipv6": "1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": - 0, "maximum_linodes_per_pg": 0, "maximum_linodes_per_flexible_pg": 0}, "site_type": - "distributed"}, {"id": "us-labedgeeat-3", "label": "East Wenatchee, US", "country": - "us", "capabilities": ["Linodes", "Disk Encryption", "Cloud Firewall", "Metadata", - "Distributed Plans"], "monitors": {"alerts": [], "metrics": []}, "status": "ok", - "resolvers": {"ipv4": "173.223.100.53,173.223.101.53", "ipv6": "1234::5678,1234::5678"}, - "placement_group_limits": {"maximum_pgs_per_customer": 0, "maximum_linodes_per_pg": - 0, "maximum_linodes_per_flexible_pg": 0}, "site_type": "distributed"}], "page": - 1, "pages": 1, "results": 3}' + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "se-sto", + "label": "Stockholm, SE", "country": "se", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.232.128.24,172.232.128.26,172.232.128.20,172.232.128.22,172.232.128.25,172.232.128.19,172.232.128.23,172.232.128.18,172.232.128.21,172.232.128.27", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "es-mad", + "label": "Madrid, ES", "country": "es", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.233.111.6,172.233.111.17,172.233.111.21,172.233.111.25,172.233.111.19,172.233.111.12,172.233.111.26,172.233.111.16,172.233.111.18,172.233.111.9", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "in-maa", + "label": "Chennai, IN", "country": "in", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces"], + "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed + Databases", "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.232.96.17,172.232.96.26,172.232.96.19,172.232.96.20,172.232.96.25,172.232.96.21,172.232.96.18,172.232.96.22,172.232.96.23,172.232.96.24", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "jp-osa", + "label": "Osaka, JP", "country": "jp", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.233.64.44,172.233.64.43,172.233.64.37,172.233.64.40,172.233.64.46,172.233.64.41,172.233.64.39,172.233.64.42,172.233.64.45,172.233.64.38", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "it-mil", + "label": "Milan, IT", "country": "it", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.232.192.19,172.232.192.18,172.232.192.16,172.232.192.20,172.232.192.24,172.232.192.21,172.232.192.22,172.232.192.17,172.232.192.15,172.232.192.23", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-mia", + "label": "Miami, FL", "country": "us", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces"], + "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed + Databases", "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.233.160.34,172.233.160.27,172.233.160.30,172.233.160.29,172.233.160.32,172.233.160.28,172.233.160.33,172.233.160.26,172.233.160.25,172.233.160.31", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "id-cgk", + "label": "Jakarta, ID", "country": "id", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.232.224.23,172.232.224.32,172.232.224.26,172.232.224.27,172.232.224.21,172.232.224.24,172.232.224.22,172.232.224.20,172.232.224.31,172.232.224.28", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-lax", + "label": "Los Angeles, CA", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces", + "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "172.233.128.45,172.233.128.38,172.233.128.53,172.233.128.37,172.233.128.34,172.233.128.36,172.233.128.33,172.233.128.39,172.233.128.43,172.233.128.44", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "nl-ams", + "label": "Amsterdam, NL", "country": "nl", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.233.33.36,172.233.33.38,172.233.33.35,172.233.33.39,172.233.33.34,172.233.33.33,172.233.33.31,172.233.33.30,172.233.33.37,172.233.33.32", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "au-mel", + "label": "Melbourne, AU", "country": "au", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "Kubernetes", "Cloud Firewall", "Vlans", + "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": + ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.236.32.23,172.236.32.35,172.236.32.30,172.236.32.28,172.236.32.32,172.236.32.33,172.236.32.27,172.236.32.37,172.236.32.29,172.236.32.34", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "in-bom-2", + "label": "Mumbai 2, IN", "country": "in", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", + "Managed Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts", + "Maintenance Policy", "Linode Interfaces", "ACLP Logs Datacenter LKE-E"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.236.171.41,172.236.171.42,172.236.171.25,172.236.171.44,172.236.171.26,172.236.171.45,172.236.171.24,172.236.171.43,172.236.171.27,172.236.171.28", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "de-fra-2", + "label": "Frankfurt 2, DE", "country": "de", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces", + "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "172.236.203.9,172.236.203.16,172.236.203.19,172.236.203.15,172.236.203.17,172.236.203.11,172.236.203.18,172.236.203.14,172.236.203.13,172.236.203.12", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "sg-sin-2", + "label": "Singapore 2, SG", "country": "sg", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs + Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], + "metrics": ["Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": + {"ipv4": "172.236.129.8,172.236.129.42,172.236.129.41,172.236.129.19,172.236.129.46,172.236.129.23,172.236.129.48,172.236.129.20,172.236.129.21,172.236.129.47", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "jp-tyo-3", + "label": "Tokyo 3, JP", "country": "jp", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs + Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], + "metrics": ["Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": + {"ipv4": "172.237.4.15,172.237.4.19,172.237.4.17,172.237.4.21,172.237.4.16,172.237.4.18,172.237.4.23,172.237.4.24,172.237.4.20,172.237.4.14", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-iad-2", + "label": "Washington 2, DC", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", + "Object Storage", "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Managed + Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts", + "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed + Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "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": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "fr-par-2", + "label": "Paris 2, FR", "country": "fr", "capabilities": ["Linodes", "Block + Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", + "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces", "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": + ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.239.11.24,172.239.11.22,172.239.11.17,172.239.11.20,172.239.11.23,172.239.11.19,172.239.11.21,172.239.11.15,172.239.11.16,172.239.11.18", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "br-gru", + "label": "Sao Paulo, BR", "country": "br", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "Kubernetes", "Cloud Firewall", "Vlans", + "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": + ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.233.0.4,172.233.0.9,172.233.0.7,172.233.0.12,172.233.0.5,172.233.0.13,172.233.0.10,172.233.0.6,172.233.0.8,172.233.0.11", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-sea", + "label": "Seattle, WA", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs + Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], + "metrics": ["Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": + {"ipv4": "172.232.160.19,172.232.160.21,172.232.160.17,172.232.160.15,172.232.160.18,172.232.160.8,172.232.160.12,172.232.160.11,172.232.160.14,172.232.160.16", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "fr-par", + "label": "Paris, FR", "country": "fr", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.232.32.21,172.232.32.23,172.232.32.17,172.232.32.18,172.232.32.16,172.232.32.22,172.232.32.20,172.232.32.14,172.232.32.11,172.232.32.12", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-ord", + "label": "Chicago, IL", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs + Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], + "metrics": ["Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": + {"ipv4": "172.232.0.17,172.232.0.16,172.232.0.21,172.232.0.13,172.232.0.22,172.232.0.9,172.232.0.19,172.232.0.20,172.232.0.15,172.232.0.18", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-iad", + "label": "Washington, DC", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "Kubernetes", "Cloud Firewall", "Vlans", + "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs Datacenter + LKE-E"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": + ["Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": + "139.144.192.62,139.144.192.60,139.144.192.61,139.144.192.53,139.144.192.54,139.144.192.67,139.144.192.69,139.144.192.66,139.144.192.52,139.144.192.68", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ap-southeast", + "label": "Sydney, AU", "country": "au", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "172.105.166.5,172.105.169.5,172.105.168.5,172.105.172.5,172.105.162.5,172.105.170.5,172.105.167.5,172.105.171.5,172.105.181.5,172.105.161.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ca-central", + "label": "Toronto, CA", "country": "ca", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "Block + Storage Migrations", "Managed Databases", "Metadata", "Placement Group", "StackScripts", + "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed + Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.105.0.5,172.105.3.5,172.105.4.5,172.105.5.5,172.105.6.5,172.105.7.5,172.105.8.5,172.105.9.5,172.105.10.5,172.105.11.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ap-west", + "label": "Mumbai, IN", "country": "in", "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.34.5,172.105.35.5,172.105.36.5,172.105.37.5,172.105.38.5,172.105.39.5,172.105.40.5,172.105.41.5,172.105.42.5,172.105.43.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-central", + "label": "Dallas, TX", "country": "us", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "72.14.179.5,72.14.188.5,173.255.199.5,66.228.53.5,96.126.122.5,96.126.124.5,96.126.127.5,198.58.107.5,198.58.111.5,23.239.24.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ap-northeast", + "label": "Tokyo 2, JP", "country": "jp", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "139.162.66.5,139.162.67.5,139.162.68.5,139.162.69.5,139.162.70.5,139.162.71.5,139.162.72.5,139.162.73.5,139.162.74.5,139.162.75.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "eu-central", + "label": "Frankfurt, DE", "country": "de", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "139.162.130.5,139.162.131.5,139.162.132.5,139.162.133.5,139.162.134.5,139.162.135.5,139.162.136.5,139.162.137.5,139.162.138.5,139.162.139.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ap-south", + "label": "Singapore, SG", "country": "sg", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "Block Storage Migrations", "Metadata", "Placement Group", "StackScripts", + "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": ["NodeBalancers"], + "metrics": ["NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "139.162.11.5,139.162.13.5,139.162.14.5,139.162.15.5,139.162.16.5,139.162.21.5,139.162.27.5,103.3.60.18,103.3.60.19,103.3.60.20", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "eu-west", + "label": "London, UK", "country": "gb", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Metadata", "Placement Group", "StackScripts", "Maintenance Policy", "Linode + Interfaces"], "monitors": {"alerts": ["NodeBalancers"], "metrics": ["NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "178.79.182.5, 176.58.107.5, 176.58.116.5, + 176.58.121.5, 151.236.220.5, 212.71.252.5, 212.71.253.5, 109.74.192.20, 109.74.193.20, + 109.74.194.20", "ipv6": "1234::5678, 1234::5678, 1234::5678, 1234::5678, + 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-east", + "label": "Newark, NJ", "country": "us", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "66.228.42.5,96.126.106.5,50.116.53.5,50.116.58.5,50.116.61.5,50.116.62.5,66.175.211.5,97.107.133.4,173.255.225.5,66.228.35.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-southeast", + "label": "Atlanta, GA", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "74.207.231.5,173.230.128.5,173.230.129.5,173.230.136.5,173.230.140.5,66.228.59.5,66.228.62.5,50.116.35.5,50.116.41.5,23.239.18.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-west", + "label": "Fremont, CA", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "173.230.145.5, 173.230.147.5, 173.230.155.5, 173.255.212.5, + 173.255.219.5, 173.255.241.5, 173.255.243.5, 173.255.244.5, 74.207.241.5, 74.207.242.5", + "ipv6": "1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, + 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678"}, "placement_group_limits": + {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5, "maximum_linodes_per_flexible_pg": + 5}, "site_type": "core"}], "page": 1, "pages": 1, "results": 33}' headers: Access-Control-Allow-Credentials: - "true" @@ -56,21 +368,23 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=900 - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Thu, 07 May 2026 14:58:50 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: @@ -81,14 +395,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"region":"pl-labkrk-2","label":"go-test-logs-destination-1778158616911573000","acl":"private","cors_enabled":false}' + body: '{"region":"gb-lon","label":"go-test-logs-destination-1778165930409875000","acl":"private","cors_enabled":false}' form: {} headers: Accept: @@ -97,13 +411,13 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/object-storage/buckets + url: https://api.linode.com/v4beta/object-storage/buckets method: POST response: - body: '{"hostname": "go-test-logs-destination-1778158616911573000.pl-labkrk2-1.devcloud.linodeobjects.com", - "label": "go-test-logs-destination-1778158616911573000", "created": "2018-01-02T03:04:05", - "region": "pl-labkrk-2", "cluster": "pl-labkrk2-1", "size": 0, "objects": 0, - "endpoint_type": "E1", "s3_endpoint": "pl-labkrk2-1.devcloud.linodeobjects.com"}' + body: '{"hostname": "go-test-logs-destination-1778165930409875000.gb-lon-1.linodeobjects.com", + "label": "go-test-logs-destination-1778165930409875000", "created": "2018-01-02T03:04:05", + "region": "gb-lon", "cluster": "", "size": 0, "objects": 0, "endpoint_type": + "E3", "s3_endpoint": "gb-lon-1.linodeobjects.com"}' headers: Access-Control-Allow-Credentials: - "true" @@ -118,17 +432,19 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: - - "349" + - "306" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Thu, 07 May 2026 14:58:54 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -143,14 +459,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "12" + - "60" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1778158617644701000","regions":["pl-labkrk-2"]}' + body: '{"label":"go-test-logs-destination-1778165934918364000","regions":["gb-lon"]}' form: {} headers: Accept: @@ -159,13 +475,13 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/object-storage/keys + url: https://api.linode.com/v4beta/object-storage/keys method: POST response: - body: '{"id": 341691, "label": "go-test-logs-destination-1778158617644701000", + body: '{"id": 3600063, "label": "go-test-logs-destination-1778165934918364000", "access_key": "[SANITIZED]", "secret_key": "[SANITIZED]", "limited": false, - "bucket_access": null, "regions": [{"id": "pl-labkrk-2", "s3_endpoint": "pl-labkrk2-1.devcloud.linodeobjects.com", - "endpoint_type": "E1"}]}' + "bucket_access": null, "regions": [{"id": "gb-lon", "s3_endpoint": "gb-lon-1.linodeobjects.com", + "endpoint_type": "E3"}]}' headers: Access-Control-Allow-Credentials: - "true" @@ -180,17 +496,19 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: - - "325" + - "308" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Thu, 07 May 2026 14:58:56 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -205,14 +523,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "12" + - "60" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1778158618299844000","type":"akamai_object_storage","details":{"access_key_id":"1","access_key_secret":"1","bucket_name":"go-test-logs-destination-1778158616911573000","host":"go-test-logs-destination-1778158616911573000.pl-labkrk2-1.devcloud.linodeobjects.com"}}' + body: '{"label":"go-test-logs-destination-1778165936733905000","type":"akamai_object_storage","details":{"access_key_id":"1","access_key_secret":"1","bucket_name":"go-test-logs-destination-1778165930409875000","host":"go-test-logs-destination-1778165930409875000.gb-lon-1.linodeobjects.com"}}' form: {} headers: Accept: @@ -221,11 +539,10 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/monitor/streams/destinations + url: https://api.linode.com/v4beta/monitor/streams/destinations method: POST response: - body: '{"errors": [{"reason": "Invalid access key id or secret key", "field": - "access_key_id/access_secret_key"}]}' + body: '{"errors": [{"reason": "An error occurred"}]}' headers: Access-Control-Allow-Headers: - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter @@ -235,14 +552,18 @@ interactions: - '*' Akamai-Internal-Account: - '*' - Connection: - - keep-alive + Cache-Control: + - max-age=0, no-cache, no-store Content-Length: - - "107" + - "45" Content-Type: - application/json - Server: - - nginx + Expires: + - Thu, 07 May 2026 14:58:58 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 X-Accepted-Oauth-Scopes: - monitor:read_write X-Frame-Options: @@ -250,8 +571,8 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" - status: 400 BAD REQUEST + - "1840" + status: 400 Bad Request code: 400 duration: "" - request: @@ -264,7 +585,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/object-storage/keys/341691 + url: https://api.linode.com/v4beta/object-storage/keys/3600063 method: DELETE response: body: '{}' @@ -282,7 +603,7 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: @@ -291,8 +612,10 @@ interactions: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Thu, 07 May 2026 14:58:58 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -307,7 +630,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "12" + - "60" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -323,7 +646,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/object-storage/buckets/pl-labkrk-2/go-test-logs-destination-1778158616911573000/object-list + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778165930409875000/object-list method: GET response: body: '{"data": [], "next_marker": null, "is_truncated": false}' @@ -341,8 +664,7 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=0, s-maxage=0, no-cache, no-store - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: @@ -351,8 +673,10 @@ interactions: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Thu, 07 May 2026 14:59:00 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -368,7 +692,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -384,7 +708,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/object-storage/buckets/pl-labkrk-2/go-test-logs-destination-1778158616911573000 + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778165930409875000 method: DELETE response: body: '{}' @@ -402,7 +726,7 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: @@ -411,8 +735,10 @@ interactions: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Thu, 07 May 2026 14:59:05 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -427,7 +753,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" X-Xss-Protection: - 1; mode=block status: 200 OK diff --git a/test/integration/fixtures/TestLogsDestination_Create_InvalidType.yaml b/test/integration/fixtures/TestLogsDestination_Create_InvalidType.yaml index 7049d9d3f..a77e44132 100644 --- a/test/integration/fixtures/TestLogsDestination_Create_InvalidType.yaml +++ b/test/integration/fixtures/TestLogsDestination_Create_InvalidType.yaml @@ -11,37 +11,349 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/regions?page=1 + url: https://api.linode.com/v4beta/regions?page=1 method: GET response: - body: '{"data": [{"id": "pl-labkrk-2", "label": "Krakow, PL", "country": "pl", - "capabilities": ["Linodes", "Block Storage Encryption", "LA Disk Encryption", - "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", "Object Storage", - "GPU Linodes", "Kubernetes", "Kubernetes Enterprise", "Cloud Firewall", "Vlans", - "VPCs", "VPC Dual Stack", "Block Storage Migrations", "Managed Databases", "Metadata", + body: '{"data": [{"id": "gb-lon", "label": "London 2, UK", "country": "gb", "capabilities": + ["Linodes", "Block Storage Encryption", "LA Disk Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "Object Storage", "GPU Linodes", + "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts", "NETINT Quadra T1U", "Maintenance - Policy", "Linode Interfaces", "Network LoadBalancer", "ACLP Logs Datacenter - LKE-E"], "monitors": {"alerts": ["Block Storage", "Cloud Firewall", "Kubernetes", - "Linodes", "Managed Databases", "Network LoadBalancer", "NodeBalancers", "Object - Storage", "logs"], "metrics": ["Block Storage", "Cloud Firewall", "Kubernetes", - "Linodes", "Managed Databases", "Network LoadBalancer", "NodeBalancers", "Object - Storage", "logs"]}, "status": "ok", "resolvers": {"ipv4": "172.24.224.240,172.24.224.229,172.24.224.236,172.24.224.238,172.24.224.235,172.24.224.241,172.24.224.230,172.24.224.239,172.24.224.233,172.24.224.234", + Policy", "Linode Interfaces", "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": + ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.236.0.46,172.236.0.50,172.236.0.47,172.236.0.53,172.236.0.52,172.236.0.45,172.236.0.49,172.236.0.51,172.236.0.54,172.236.0.48", "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": - 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-labedgeeat-2", - "label": "East Wenatchee, US", "country": "us", "capabilities": ["Linodes", - "Disk Encryption", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "Metadata", - "Distributed Plans", "Linode Interfaces"], "monitors": {"alerts": [], "metrics": - []}, "status": "ok", "resolvers": {"ipv4": "173.223.100.53,173.223.101.53", - "ipv6": "1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": - 0, "maximum_linodes_per_pg": 0, "maximum_linodes_per_flexible_pg": 0}, "site_type": - "distributed"}, {"id": "us-labedgeeat-3", "label": "East Wenatchee, US", "country": - "us", "capabilities": ["Linodes", "Disk Encryption", "Cloud Firewall", "Metadata", - "Distributed Plans"], "monitors": {"alerts": [], "metrics": []}, "status": "ok", - "resolvers": {"ipv4": "173.223.100.53,173.223.101.53", "ipv6": "1234::5678,1234::5678"}, - "placement_group_limits": {"maximum_pgs_per_customer": 0, "maximum_linodes_per_pg": - 0, "maximum_linodes_per_flexible_pg": 0}, "site_type": "distributed"}], "page": - 1, "pages": 1, "results": 3}' + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "se-sto", + "label": "Stockholm, SE", "country": "se", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.232.128.24,172.232.128.26,172.232.128.20,172.232.128.22,172.232.128.25,172.232.128.19,172.232.128.23,172.232.128.18,172.232.128.21,172.232.128.27", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "es-mad", + "label": "Madrid, ES", "country": "es", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.233.111.6,172.233.111.17,172.233.111.21,172.233.111.25,172.233.111.19,172.233.111.12,172.233.111.26,172.233.111.16,172.233.111.18,172.233.111.9", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "in-maa", + "label": "Chennai, IN", "country": "in", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces"], + "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed + Databases", "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.232.96.17,172.232.96.26,172.232.96.19,172.232.96.20,172.232.96.25,172.232.96.21,172.232.96.18,172.232.96.22,172.232.96.23,172.232.96.24", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "jp-osa", + "label": "Osaka, JP", "country": "jp", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.233.64.44,172.233.64.43,172.233.64.37,172.233.64.40,172.233.64.46,172.233.64.41,172.233.64.39,172.233.64.42,172.233.64.45,172.233.64.38", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "it-mil", + "label": "Milan, IT", "country": "it", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.232.192.19,172.232.192.18,172.232.192.16,172.232.192.20,172.232.192.24,172.232.192.21,172.232.192.22,172.232.192.17,172.232.192.15,172.232.192.23", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-mia", + "label": "Miami, FL", "country": "us", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces"], + "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed + Databases", "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.233.160.34,172.233.160.27,172.233.160.30,172.233.160.29,172.233.160.32,172.233.160.28,172.233.160.33,172.233.160.26,172.233.160.25,172.233.160.31", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "id-cgk", + "label": "Jakarta, ID", "country": "id", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.232.224.23,172.232.224.32,172.232.224.26,172.232.224.27,172.232.224.21,172.232.224.24,172.232.224.22,172.232.224.20,172.232.224.31,172.232.224.28", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-lax", + "label": "Los Angeles, CA", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces", + "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "172.233.128.45,172.233.128.38,172.233.128.53,172.233.128.37,172.233.128.34,172.233.128.36,172.233.128.33,172.233.128.39,172.233.128.43,172.233.128.44", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "nl-ams", + "label": "Amsterdam, NL", "country": "nl", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.233.33.36,172.233.33.38,172.233.33.35,172.233.33.39,172.233.33.34,172.233.33.33,172.233.33.31,172.233.33.30,172.233.33.37,172.233.33.32", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "au-mel", + "label": "Melbourne, AU", "country": "au", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "Kubernetes", "Cloud Firewall", "Vlans", + "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": + ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.236.32.23,172.236.32.35,172.236.32.30,172.236.32.28,172.236.32.32,172.236.32.33,172.236.32.27,172.236.32.37,172.236.32.29,172.236.32.34", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "in-bom-2", + "label": "Mumbai 2, IN", "country": "in", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", + "Managed Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts", + "Maintenance Policy", "Linode Interfaces", "ACLP Logs Datacenter LKE-E"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.236.171.41,172.236.171.42,172.236.171.25,172.236.171.44,172.236.171.26,172.236.171.45,172.236.171.24,172.236.171.43,172.236.171.27,172.236.171.28", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "de-fra-2", + "label": "Frankfurt 2, DE", "country": "de", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces", + "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "172.236.203.9,172.236.203.16,172.236.203.19,172.236.203.15,172.236.203.17,172.236.203.11,172.236.203.18,172.236.203.14,172.236.203.13,172.236.203.12", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "sg-sin-2", + "label": "Singapore 2, SG", "country": "sg", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs + Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], + "metrics": ["Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": + {"ipv4": "172.236.129.8,172.236.129.42,172.236.129.41,172.236.129.19,172.236.129.46,172.236.129.23,172.236.129.48,172.236.129.20,172.236.129.21,172.236.129.47", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "jp-tyo-3", + "label": "Tokyo 3, JP", "country": "jp", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs + Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], + "metrics": ["Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": + {"ipv4": "172.237.4.15,172.237.4.19,172.237.4.17,172.237.4.21,172.237.4.16,172.237.4.18,172.237.4.23,172.237.4.24,172.237.4.20,172.237.4.14", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-iad-2", + "label": "Washington 2, DC", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", + "Object Storage", "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Managed + Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts", + "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed + Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "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": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "fr-par-2", + "label": "Paris 2, FR", "country": "fr", "capabilities": ["Linodes", "Block + Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", + "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces", "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": + ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.239.11.24,172.239.11.22,172.239.11.17,172.239.11.20,172.239.11.23,172.239.11.19,172.239.11.21,172.239.11.15,172.239.11.16,172.239.11.18", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "br-gru", + "label": "Sao Paulo, BR", "country": "br", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "Kubernetes", "Cloud Firewall", "Vlans", + "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": + ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.233.0.4,172.233.0.9,172.233.0.7,172.233.0.12,172.233.0.5,172.233.0.13,172.233.0.10,172.233.0.6,172.233.0.8,172.233.0.11", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-sea", + "label": "Seattle, WA", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs + Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], + "metrics": ["Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": + {"ipv4": "172.232.160.19,172.232.160.21,172.232.160.17,172.232.160.15,172.232.160.18,172.232.160.8,172.232.160.12,172.232.160.11,172.232.160.14,172.232.160.16", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "fr-par", + "label": "Paris, FR", "country": "fr", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.232.32.21,172.232.32.23,172.232.32.17,172.232.32.18,172.232.32.16,172.232.32.22,172.232.32.20,172.232.32.14,172.232.32.11,172.232.32.12", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-ord", + "label": "Chicago, IL", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs + Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], + "metrics": ["Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": + {"ipv4": "172.232.0.17,172.232.0.16,172.232.0.21,172.232.0.13,172.232.0.22,172.232.0.9,172.232.0.19,172.232.0.20,172.232.0.15,172.232.0.18", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-iad", + "label": "Washington, DC", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "Kubernetes", "Cloud Firewall", "Vlans", + "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs Datacenter + LKE-E"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": + ["Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": + "139.144.192.62,139.144.192.60,139.144.192.61,139.144.192.53,139.144.192.54,139.144.192.67,139.144.192.69,139.144.192.66,139.144.192.52,139.144.192.68", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ap-southeast", + "label": "Sydney, AU", "country": "au", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "172.105.166.5,172.105.169.5,172.105.168.5,172.105.172.5,172.105.162.5,172.105.170.5,172.105.167.5,172.105.171.5,172.105.181.5,172.105.161.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ca-central", + "label": "Toronto, CA", "country": "ca", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "Block + Storage Migrations", "Managed Databases", "Metadata", "Placement Group", "StackScripts", + "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed + Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.105.0.5,172.105.3.5,172.105.4.5,172.105.5.5,172.105.6.5,172.105.7.5,172.105.8.5,172.105.9.5,172.105.10.5,172.105.11.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ap-west", + "label": "Mumbai, IN", "country": "in", "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.34.5,172.105.35.5,172.105.36.5,172.105.37.5,172.105.38.5,172.105.39.5,172.105.40.5,172.105.41.5,172.105.42.5,172.105.43.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-central", + "label": "Dallas, TX", "country": "us", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "72.14.179.5,72.14.188.5,173.255.199.5,66.228.53.5,96.126.122.5,96.126.124.5,96.126.127.5,198.58.107.5,198.58.111.5,23.239.24.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ap-northeast", + "label": "Tokyo 2, JP", "country": "jp", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "139.162.66.5,139.162.67.5,139.162.68.5,139.162.69.5,139.162.70.5,139.162.71.5,139.162.72.5,139.162.73.5,139.162.74.5,139.162.75.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "eu-central", + "label": "Frankfurt, DE", "country": "de", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "139.162.130.5,139.162.131.5,139.162.132.5,139.162.133.5,139.162.134.5,139.162.135.5,139.162.136.5,139.162.137.5,139.162.138.5,139.162.139.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ap-south", + "label": "Singapore, SG", "country": "sg", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "Block Storage Migrations", "Metadata", "Placement Group", "StackScripts", + "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": ["NodeBalancers"], + "metrics": ["NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "139.162.11.5,139.162.13.5,139.162.14.5,139.162.15.5,139.162.16.5,139.162.21.5,139.162.27.5,103.3.60.18,103.3.60.19,103.3.60.20", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "eu-west", + "label": "London, UK", "country": "gb", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Metadata", "Placement Group", "StackScripts", "Maintenance Policy", "Linode + Interfaces"], "monitors": {"alerts": ["NodeBalancers"], "metrics": ["NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "178.79.182.5, 176.58.107.5, 176.58.116.5, + 176.58.121.5, 151.236.220.5, 212.71.252.5, 212.71.253.5, 109.74.192.20, 109.74.193.20, + 109.74.194.20", "ipv6": "1234::5678, 1234::5678, 1234::5678, 1234::5678, + 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-east", + "label": "Newark, NJ", "country": "us", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "66.228.42.5,96.126.106.5,50.116.53.5,50.116.58.5,50.116.61.5,50.116.62.5,66.175.211.5,97.107.133.4,173.255.225.5,66.228.35.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-southeast", + "label": "Atlanta, GA", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "74.207.231.5,173.230.128.5,173.230.129.5,173.230.136.5,173.230.140.5,66.228.59.5,66.228.62.5,50.116.35.5,50.116.41.5,23.239.18.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-west", + "label": "Fremont, CA", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "173.230.145.5, 173.230.147.5, 173.230.155.5, 173.255.212.5, + 173.255.219.5, 173.255.241.5, 173.255.243.5, 173.255.244.5, 74.207.241.5, 74.207.242.5", + "ipv6": "1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, + 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678"}, "placement_group_limits": + {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5, "maximum_linodes_per_flexible_pg": + 5}, "site_type": "core"}], "page": 1, "pages": 1, "results": 33}' headers: Access-Control-Allow-Credentials: - "true" @@ -56,21 +368,23 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=900 - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Thu, 07 May 2026 15:05:18 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: - Authorization, X-Filter - Authorization, X-Filter + - Accept-Encoding X-Accepted-Oauth-Scopes: - '*' X-Content-Type-Options: @@ -81,14 +395,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"region":"pl-labkrk-2","label":"go-test-logs-destination-1778158714421342000","acl":"private","cors_enabled":false}' + body: '{"region":"gb-lon","label":"go-test-logs-destination-1778166318433976000","acl":"private","cors_enabled":false}' form: {} headers: Accept: @@ -97,13 +411,13 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/object-storage/buckets + url: https://api.linode.com/v4beta/object-storage/buckets method: POST response: - body: '{"hostname": "go-test-logs-destination-1778158714421342000.pl-labkrk2-1.devcloud.linodeobjects.com", - "label": "go-test-logs-destination-1778158714421342000", "created": "2018-01-02T03:04:05", - "region": "pl-labkrk-2", "cluster": "pl-labkrk2-1", "size": 0, "objects": 0, - "endpoint_type": "E1", "s3_endpoint": "pl-labkrk2-1.devcloud.linodeobjects.com"}' + body: '{"hostname": "go-test-logs-destination-1778166318433976000.gb-lon-1.linodeobjects.com", + "label": "go-test-logs-destination-1778166318433976000", "created": "2018-01-02T03:04:05", + "region": "gb-lon", "cluster": "", "size": 0, "objects": 0, "endpoint_type": + "E3", "s3_endpoint": "gb-lon-1.linodeobjects.com"}' headers: Access-Control-Allow-Credentials: - "true" @@ -118,17 +432,19 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: - - "349" + - "306" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Thu, 07 May 2026 15:05:23 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -143,14 +459,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "12" + - "60" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1778158715174294000","regions":["pl-labkrk-2"]}' + body: '{"label":"go-test-logs-destination-1778166323074869000","regions":["gb-lon"]}' form: {} headers: Accept: @@ -159,13 +475,13 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/object-storage/keys + url: https://api.linode.com/v4beta/object-storage/keys method: POST response: - body: '{"id": 341692, "label": "go-test-logs-destination-1778158715174294000", + body: '{"id": 3600145, "label": "go-test-logs-destination-1778166323074869000", "access_key": "[SANITIZED]", "secret_key": "[SANITIZED]", "limited": false, - "bucket_access": null, "regions": [{"id": "pl-labkrk-2", "s3_endpoint": "pl-labkrk2-1.devcloud.linodeobjects.com", - "endpoint_type": "E1"}]}' + "bucket_access": null, "regions": [{"id": "gb-lon", "s3_endpoint": "gb-lon-1.linodeobjects.com", + "endpoint_type": "E3"}]}' headers: Access-Control-Allow-Credentials: - "true" @@ -180,17 +496,19 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: - - "325" + - "308" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Thu, 07 May 2026 15:05:25 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -205,14 +523,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "12" + - "60" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1778158715901611000","type":"invalid_type","details":{"access_key_id":"Z6PRDPWQQTJ1S0DTFTKN","access_key_secret":"cTBCyfJnHRZGRpCQh5JnaCJCAQUw6zuJuv85zShX","bucket_name":"go-test-logs-destination-1778158714421342000","host":"go-test-logs-destination-1778158714421342000.pl-labkrk2-1.devcloud.linodeobjects.com"}}' + body: '{"label":"go-test-logs-destination-1778166325228503000","type":"invalid_type","details":{"access_key_id":"HT1LGY5TIPNDMUU4BJMP","access_key_secret":"oF2CKhKc1sUouidZNIm1mvSH7hUgp4drpMJaA28S","bucket_name":"go-test-logs-destination-1778166318433976000","host":"go-test-logs-destination-1778166318433976000.gb-lon-1.linodeobjects.com"}}' form: {} headers: Accept: @@ -221,7 +539,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/monitor/streams/destinations + url: https://api.linode.com/v4beta/monitor/streams/destinations method: POST response: body: '{"errors": [{"reason": "Must be one of akamai_object_storage, custom_https", @@ -235,14 +553,18 @@ interactions: - '*' Akamai-Internal-Account: - '*' - Connection: - - keep-alive + Cache-Control: + - max-age=0, no-cache, no-store Content-Length: - "95" Content-Type: - application/json - Server: - - nginx + Expires: + - Thu, 07 May 2026 15:05:25 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 X-Accepted-Oauth-Scopes: - monitor:read_write X-Frame-Options: @@ -250,8 +572,8 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" - status: 400 BAD REQUEST + - "1840" + status: 400 Bad Request code: 400 duration: "" - request: @@ -264,7 +586,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/object-storage/keys/341692 + url: https://api.linode.com/v4beta/object-storage/keys/3600145 method: DELETE response: body: '{}' @@ -282,7 +604,7 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: @@ -291,8 +613,10 @@ interactions: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Thu, 07 May 2026 15:05:25 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -307,7 +631,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "12" + - "60" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -323,7 +647,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/object-storage/buckets/pl-labkrk-2/go-test-logs-destination-1778158714421342000/object-list + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778166318433976000/object-list method: GET response: body: '{"data": [], "next_marker": null, "is_truncated": false}' @@ -341,8 +665,7 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=0, s-maxage=0, no-cache, no-store - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: @@ -351,8 +674,10 @@ interactions: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Thu, 07 May 2026 15:05:27 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -368,7 +693,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -384,7 +709,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/object-storage/buckets/pl-labkrk-2/go-test-logs-destination-1778158714421342000 + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778166318433976000 method: DELETE response: body: '{}' @@ -402,7 +727,7 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: @@ -411,8 +736,10 @@ interactions: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Thu, 07 May 2026 15:05:33 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -427,7 +754,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" X-Xss-Protection: - 1; mode=block status: 200 OK diff --git a/test/integration/fixtures/TestLogsDestination_Delete.yaml b/test/integration/fixtures/TestLogsDestination_Delete.yaml index e1193f397..82c65a7e6 100644 --- a/test/integration/fixtures/TestLogsDestination_Delete.yaml +++ b/test/integration/fixtures/TestLogsDestination_Delete.yaml @@ -11,37 +11,349 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/regions?page=1 + url: https://api.linode.com/v4beta/regions?page=1 method: GET response: - body: '{"data": [{"id": "pl-labkrk-2", "label": "Krakow, PL", "country": "pl", - "capabilities": ["Linodes", "Block Storage Encryption", "LA Disk Encryption", - "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", "Object Storage", - "GPU Linodes", "Kubernetes", "Kubernetes Enterprise", "Cloud Firewall", "Vlans", - "VPCs", "VPC Dual Stack", "Block Storage Migrations", "Managed Databases", "Metadata", + body: '{"data": [{"id": "gb-lon", "label": "London 2, UK", "country": "gb", "capabilities": + ["Linodes", "Block Storage Encryption", "LA Disk Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "Object Storage", "GPU Linodes", + "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts", "NETINT Quadra T1U", "Maintenance - Policy", "Linode Interfaces", "Network LoadBalancer", "ACLP Logs Datacenter - LKE-E"], "monitors": {"alerts": ["Block Storage", "Cloud Firewall", "Kubernetes", - "Linodes", "Managed Databases", "Network LoadBalancer", "NodeBalancers", "Object - Storage", "logs"], "metrics": ["Block Storage", "Cloud Firewall", "Kubernetes", - "Linodes", "Managed Databases", "Network LoadBalancer", "NodeBalancers", "Object - Storage", "logs"]}, "status": "ok", "resolvers": {"ipv4": "172.24.224.240,172.24.224.229,172.24.224.236,172.24.224.238,172.24.224.235,172.24.224.241,172.24.224.230,172.24.224.239,172.24.224.233,172.24.224.234", + Policy", "Linode Interfaces", "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": + ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.236.0.46,172.236.0.50,172.236.0.47,172.236.0.53,172.236.0.52,172.236.0.45,172.236.0.49,172.236.0.51,172.236.0.54,172.236.0.48", "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": - 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-labedgeeat-2", - "label": "East Wenatchee, US", "country": "us", "capabilities": ["Linodes", - "Disk Encryption", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "Metadata", - "Distributed Plans", "Linode Interfaces"], "monitors": {"alerts": [], "metrics": - []}, "status": "ok", "resolvers": {"ipv4": "173.223.100.53,173.223.101.53", - "ipv6": "1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": - 0, "maximum_linodes_per_pg": 0, "maximum_linodes_per_flexible_pg": 0}, "site_type": - "distributed"}, {"id": "us-labedgeeat-3", "label": "East Wenatchee, US", "country": - "us", "capabilities": ["Linodes", "Disk Encryption", "Cloud Firewall", "Metadata", - "Distributed Plans"], "monitors": {"alerts": [], "metrics": []}, "status": "ok", - "resolvers": {"ipv4": "173.223.100.53,173.223.101.53", "ipv6": "1234::5678,1234::5678"}, - "placement_group_limits": {"maximum_pgs_per_customer": 0, "maximum_linodes_per_pg": - 0, "maximum_linodes_per_flexible_pg": 0}, "site_type": "distributed"}], "page": - 1, "pages": 1, "results": 3}' + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "se-sto", + "label": "Stockholm, SE", "country": "se", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.232.128.24,172.232.128.26,172.232.128.20,172.232.128.22,172.232.128.25,172.232.128.19,172.232.128.23,172.232.128.18,172.232.128.21,172.232.128.27", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "es-mad", + "label": "Madrid, ES", "country": "es", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.233.111.6,172.233.111.17,172.233.111.21,172.233.111.25,172.233.111.19,172.233.111.12,172.233.111.26,172.233.111.16,172.233.111.18,172.233.111.9", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "in-maa", + "label": "Chennai, IN", "country": "in", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces"], + "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed + Databases", "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.232.96.17,172.232.96.26,172.232.96.19,172.232.96.20,172.232.96.25,172.232.96.21,172.232.96.18,172.232.96.22,172.232.96.23,172.232.96.24", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "jp-osa", + "label": "Osaka, JP", "country": "jp", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.233.64.44,172.233.64.43,172.233.64.37,172.233.64.40,172.233.64.46,172.233.64.41,172.233.64.39,172.233.64.42,172.233.64.45,172.233.64.38", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "it-mil", + "label": "Milan, IT", "country": "it", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.232.192.19,172.232.192.18,172.232.192.16,172.232.192.20,172.232.192.24,172.232.192.21,172.232.192.22,172.232.192.17,172.232.192.15,172.232.192.23", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-mia", + "label": "Miami, FL", "country": "us", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces"], + "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed + Databases", "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.233.160.34,172.233.160.27,172.233.160.30,172.233.160.29,172.233.160.32,172.233.160.28,172.233.160.33,172.233.160.26,172.233.160.25,172.233.160.31", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "id-cgk", + "label": "Jakarta, ID", "country": "id", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.232.224.23,172.232.224.32,172.232.224.26,172.232.224.27,172.232.224.21,172.232.224.24,172.232.224.22,172.232.224.20,172.232.224.31,172.232.224.28", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-lax", + "label": "Los Angeles, CA", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces", + "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "172.233.128.45,172.233.128.38,172.233.128.53,172.233.128.37,172.233.128.34,172.233.128.36,172.233.128.33,172.233.128.39,172.233.128.43,172.233.128.44", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "nl-ams", + "label": "Amsterdam, NL", "country": "nl", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.233.33.36,172.233.33.38,172.233.33.35,172.233.33.39,172.233.33.34,172.233.33.33,172.233.33.31,172.233.33.30,172.233.33.37,172.233.33.32", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "au-mel", + "label": "Melbourne, AU", "country": "au", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "Kubernetes", "Cloud Firewall", "Vlans", + "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": + ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.236.32.23,172.236.32.35,172.236.32.30,172.236.32.28,172.236.32.32,172.236.32.33,172.236.32.27,172.236.32.37,172.236.32.29,172.236.32.34", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "in-bom-2", + "label": "Mumbai 2, IN", "country": "in", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", + "Managed Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts", + "Maintenance Policy", "Linode Interfaces", "ACLP Logs Datacenter LKE-E"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.236.171.41,172.236.171.42,172.236.171.25,172.236.171.44,172.236.171.26,172.236.171.45,172.236.171.24,172.236.171.43,172.236.171.27,172.236.171.28", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "de-fra-2", + "label": "Frankfurt 2, DE", "country": "de", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces", + "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "172.236.203.9,172.236.203.16,172.236.203.19,172.236.203.15,172.236.203.17,172.236.203.11,172.236.203.18,172.236.203.14,172.236.203.13,172.236.203.12", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "sg-sin-2", + "label": "Singapore 2, SG", "country": "sg", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs + Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], + "metrics": ["Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": + {"ipv4": "172.236.129.8,172.236.129.42,172.236.129.41,172.236.129.19,172.236.129.46,172.236.129.23,172.236.129.48,172.236.129.20,172.236.129.21,172.236.129.47", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "jp-tyo-3", + "label": "Tokyo 3, JP", "country": "jp", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs + Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], + "metrics": ["Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": + {"ipv4": "172.237.4.15,172.237.4.19,172.237.4.17,172.237.4.21,172.237.4.16,172.237.4.18,172.237.4.23,172.237.4.24,172.237.4.20,172.237.4.14", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-iad-2", + "label": "Washington 2, DC", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", + "Object Storage", "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Managed + Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts", + "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed + Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "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": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "fr-par-2", + "label": "Paris 2, FR", "country": "fr", "capabilities": ["Linodes", "Block + Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", + "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces", "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": + ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.239.11.24,172.239.11.22,172.239.11.17,172.239.11.20,172.239.11.23,172.239.11.19,172.239.11.21,172.239.11.15,172.239.11.16,172.239.11.18", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "br-gru", + "label": "Sao Paulo, BR", "country": "br", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "Kubernetes", "Cloud Firewall", "Vlans", + "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": + ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.233.0.4,172.233.0.9,172.233.0.7,172.233.0.12,172.233.0.5,172.233.0.13,172.233.0.10,172.233.0.6,172.233.0.8,172.233.0.11", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-sea", + "label": "Seattle, WA", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs + Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], + "metrics": ["Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": + {"ipv4": "172.232.160.19,172.232.160.21,172.232.160.17,172.232.160.15,172.232.160.18,172.232.160.8,172.232.160.12,172.232.160.11,172.232.160.14,172.232.160.16", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "fr-par", + "label": "Paris, FR", "country": "fr", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.232.32.21,172.232.32.23,172.232.32.17,172.232.32.18,172.232.32.16,172.232.32.22,172.232.32.20,172.232.32.14,172.232.32.11,172.232.32.12", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-ord", + "label": "Chicago, IL", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs + Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], + "metrics": ["Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": + {"ipv4": "172.232.0.17,172.232.0.16,172.232.0.21,172.232.0.13,172.232.0.22,172.232.0.9,172.232.0.19,172.232.0.20,172.232.0.15,172.232.0.18", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-iad", + "label": "Washington, DC", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "Kubernetes", "Cloud Firewall", "Vlans", + "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs Datacenter + LKE-E"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": + ["Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": + "139.144.192.62,139.144.192.60,139.144.192.61,139.144.192.53,139.144.192.54,139.144.192.67,139.144.192.69,139.144.192.66,139.144.192.52,139.144.192.68", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ap-southeast", + "label": "Sydney, AU", "country": "au", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "172.105.166.5,172.105.169.5,172.105.168.5,172.105.172.5,172.105.162.5,172.105.170.5,172.105.167.5,172.105.171.5,172.105.181.5,172.105.161.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ca-central", + "label": "Toronto, CA", "country": "ca", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "Block + Storage Migrations", "Managed Databases", "Metadata", "Placement Group", "StackScripts", + "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed + Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.105.0.5,172.105.3.5,172.105.4.5,172.105.5.5,172.105.6.5,172.105.7.5,172.105.8.5,172.105.9.5,172.105.10.5,172.105.11.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ap-west", + "label": "Mumbai, IN", "country": "in", "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.34.5,172.105.35.5,172.105.36.5,172.105.37.5,172.105.38.5,172.105.39.5,172.105.40.5,172.105.41.5,172.105.42.5,172.105.43.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-central", + "label": "Dallas, TX", "country": "us", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "72.14.179.5,72.14.188.5,173.255.199.5,66.228.53.5,96.126.122.5,96.126.124.5,96.126.127.5,198.58.107.5,198.58.111.5,23.239.24.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ap-northeast", + "label": "Tokyo 2, JP", "country": "jp", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "139.162.66.5,139.162.67.5,139.162.68.5,139.162.69.5,139.162.70.5,139.162.71.5,139.162.72.5,139.162.73.5,139.162.74.5,139.162.75.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "eu-central", + "label": "Frankfurt, DE", "country": "de", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "139.162.130.5,139.162.131.5,139.162.132.5,139.162.133.5,139.162.134.5,139.162.135.5,139.162.136.5,139.162.137.5,139.162.138.5,139.162.139.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ap-south", + "label": "Singapore, SG", "country": "sg", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "Block Storage Migrations", "Metadata", "Placement Group", "StackScripts", + "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": ["NodeBalancers"], + "metrics": ["NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "139.162.11.5,139.162.13.5,139.162.14.5,139.162.15.5,139.162.16.5,139.162.21.5,139.162.27.5,103.3.60.18,103.3.60.19,103.3.60.20", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "eu-west", + "label": "London, UK", "country": "gb", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Metadata", "Placement Group", "StackScripts", "Maintenance Policy", "Linode + Interfaces"], "monitors": {"alerts": ["NodeBalancers"], "metrics": ["NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "178.79.182.5, 176.58.107.5, 176.58.116.5, + 176.58.121.5, 151.236.220.5, 212.71.252.5, 212.71.253.5, 109.74.192.20, 109.74.193.20, + 109.74.194.20", "ipv6": "1234::5678, 1234::5678, 1234::5678, 1234::5678, + 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-east", + "label": "Newark, NJ", "country": "us", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "66.228.42.5,96.126.106.5,50.116.53.5,50.116.58.5,50.116.61.5,50.116.62.5,66.175.211.5,97.107.133.4,173.255.225.5,66.228.35.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-southeast", + "label": "Atlanta, GA", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "74.207.231.5,173.230.128.5,173.230.129.5,173.230.136.5,173.230.140.5,66.228.59.5,66.228.62.5,50.116.35.5,50.116.41.5,23.239.18.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-west", + "label": "Fremont, CA", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "173.230.145.5, 173.230.147.5, 173.230.155.5, 173.255.212.5, + 173.255.219.5, 173.255.241.5, 173.255.243.5, 173.255.244.5, 74.207.241.5, 74.207.242.5", + "ipv6": "1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, + 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678"}, "placement_group_limits": + {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5, "maximum_linodes_per_flexible_pg": + 5}, "site_type": "core"}], "page": 1, "pages": 1, "results": 33}' headers: Access-Control-Allow-Credentials: - "true" @@ -56,21 +368,23 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=900 - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Thu, 07 May 2026 14:50:10 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: @@ -81,14 +395,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"region":"pl-labkrk-2","label":"go-test-logs-destination-1778158332905608000","acl":"private","cors_enabled":false}' + body: '{"region":"gb-lon","label":"go-test-logs-destination-1778165410060838000","acl":"private","cors_enabled":false}' form: {} headers: Accept: @@ -97,13 +411,13 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/object-storage/buckets + url: https://api.linode.com/v4beta/object-storage/buckets method: POST response: - body: '{"hostname": "go-test-logs-destination-1778158332905608000.pl-labkrk2-1.devcloud.linodeobjects.com", - "label": "go-test-logs-destination-1778158332905608000", "created": "2018-01-02T03:04:05", - "region": "pl-labkrk-2", "cluster": "pl-labkrk2-1", "size": 0, "objects": 0, - "endpoint_type": "E1", "s3_endpoint": "pl-labkrk2-1.devcloud.linodeobjects.com"}' + body: '{"hostname": "go-test-logs-destination-1778165410060838000.gb-lon-1.linodeobjects.com", + "label": "go-test-logs-destination-1778165410060838000", "created": "2018-01-02T03:04:05", + "region": "gb-lon", "cluster": "", "size": 0, "objects": 0, "endpoint_type": + "E3", "s3_endpoint": "gb-lon-1.linodeobjects.com"}' headers: Access-Control-Allow-Credentials: - "true" @@ -118,17 +432,19 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: - - "349" + - "306" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Thu, 07 May 2026 14:50:14 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -143,14 +459,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "12" + - "60" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1778158333741046000","regions":["pl-labkrk-2"]}' + body: '{"label":"go-test-logs-destination-1778165414593108000","regions":["gb-lon"]}' form: {} headers: Accept: @@ -159,13 +475,13 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/object-storage/keys + url: https://api.linode.com/v4beta/object-storage/keys method: POST response: - body: '{"id": 341687, "label": "go-test-logs-destination-1778158333741046000", + body: '{"id": 3599966, "label": "go-test-logs-destination-1778165414593108000", "access_key": "[SANITIZED]", "secret_key": "[SANITIZED]", "limited": false, - "bucket_access": null, "regions": [{"id": "pl-labkrk-2", "s3_endpoint": "pl-labkrk2-1.devcloud.linodeobjects.com", - "endpoint_type": "E1"}]}' + "bucket_access": null, "regions": [{"id": "gb-lon", "s3_endpoint": "gb-lon-1.linodeobjects.com", + "endpoint_type": "E3"}]}' headers: Access-Control-Allow-Credentials: - "true" @@ -180,17 +496,19 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: - - "325" + - "308" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Thu, 07 May 2026 14:50:16 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -205,14 +523,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "12" + - "60" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1778158334285584000","type":"akamai_object_storage","details":{"access_key_id":"FJJM18CNMNBMEP71REC0","access_key_secret":"jE36inti1qiAhrDQ1lTjeLq9J3xXczEPXAu3S5g5","bucket_name":"go-test-logs-destination-1778158332905608000","host":"go-test-logs-destination-1778158332905608000.pl-labkrk2-1.devcloud.linodeobjects.com"}}' + body: '{"label":"go-test-logs-destination-1778165416471312000","type":"akamai_object_storage","details":{"access_key_id":"D7C7MCVPVXEL040TSXNU","access_key_secret":"7ZkdcwMAxnFkTX2jRtPo5MEL5vVLTJtcNNeY6TUs","bucket_name":"go-test-logs-destination-1778165410060838000","host":"go-test-logs-destination-1778165410060838000.gb-lon-1.linodeobjects.com"}}' form: {} headers: Accept: @@ -221,14 +539,14 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/monitor/streams/destinations + url: https://api.linode.com/v4beta/monitor/streams/destinations method: POST response: - body: '{"id": 1131, "label": "go-test-logs-destination-1778158334285584000", "type": - "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778158332905608000.pl-labkrk2-1.devcloud.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1778158332905608000", "access_key_id": - "FJJM18CNMNBMEP71REC0"}, "version": 1, "status": "active", "created_by": "klipensk-aclp", - "created": "2018-01-02T03:04:05", "updated_by": "klipensk-aclp", "updated": + body: '{"id": 434, "label": "go-test-logs-destination-1778165416471312000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778165410060838000.gb-lon-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1778165410060838000", "access_key_id": + "D7C7MCVPVXEL040TSXNU"}, "version": 1, "status": "active", "created_by": "dola-klipensk", + "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": "2018-01-02T03:04:05"}' headers: Access-Control-Allow-Credentials: @@ -244,17 +562,19 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: - - "479" + - "465" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Thu, 07 May 2026 14:50:17 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -269,7 +589,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -285,7 +605,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/monitor/streams/destinations/1131 + url: https://api.linode.com/v4beta/monitor/streams/destinations/434 method: DELETE response: body: '{}' @@ -303,7 +623,7 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: @@ -312,8 +632,10 @@ interactions: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Thu, 07 May 2026 14:50:18 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -328,7 +650,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -344,7 +666,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/monitor/streams/destinations/1131 + url: https://api.linode.com/v4beta/monitor/streams/destinations/434 method: GET response: body: '{"errors": [{"reason": "Destination not found"}]}' @@ -358,15 +680,19 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=0, s-maxage=0, no-cache, no-store + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: - "49" Content-Type: - application/json - Server: - - nginx + Expires: + - Thu, 07 May 2026 14:50:18 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 Vary: - Authorization, X-Filter X-Accepted-Oauth-Scopes: @@ -376,8 +702,8 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" - status: 404 NOT FOUND + - "1840" + status: 404 Not Found code: 404 duration: "" - request: @@ -390,7 +716,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/monitor/streams/destinations/1131 + url: https://api.linode.com/v4beta/monitor/streams/destinations/434 method: GET response: body: '{"errors": [{"reason": "Destination not found"}]}' @@ -404,15 +730,19 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=0, s-maxage=0, no-cache, no-store + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: - "49" Content-Type: - application/json - Server: - - nginx + Expires: + - Thu, 07 May 2026 14:50:19 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 Vary: - Authorization, X-Filter X-Accepted-Oauth-Scopes: @@ -422,8 +752,8 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" - status: 404 NOT FOUND + - "1840" + status: 404 Not Found code: 404 duration: "" - request: @@ -436,7 +766,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/object-storage/keys/341687 + url: https://api.linode.com/v4beta/object-storage/keys/3599966 method: DELETE response: body: '{}' @@ -454,7 +784,7 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: @@ -463,8 +793,10 @@ interactions: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Thu, 07 May 2026 14:50:19 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -479,7 +811,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "12" + - "60" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -495,12 +827,12 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/object-storage/buckets/pl-labkrk-2/go-test-logs-destination-1778158332905608000/object-list + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778165410060838000/object-list method: GET response: - body: '{"data": [{"name": "cloud-logs-test-connection-20260507T125214", "size": - 9, "last_modified": "2018-01-02T03:04:05.026Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", - "owner": "512fe32a-48a2-4a57-8a11-0eef806858d3"}], "next_marker": null, "is_truncated": + body: '{"data": [{"name": "cloud-logs-test-connection-20260507T145016", "size": + 9, "last_modified": "2018-01-02T03:04:05.413Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}], "next_marker": null, "is_truncated": false}' headers: Access-Control-Allow-Credentials: @@ -516,8 +848,7 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=0, s-maxage=0, no-cache, no-store - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: @@ -526,8 +857,10 @@ interactions: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Thu, 07 May 2026 14:50:21 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -543,14 +876,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"name":"cloud-logs-test-connection-20260507T125214","method":"DELETE","expires_in":360}' + body: '{"name":"cloud-logs-test-connection-20260507T145016","method":"DELETE","expires_in":360}' form: {} headers: Accept: @@ -559,10 +892,10 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/object-storage/buckets/pl-labkrk-2/go-test-logs-destination-1778158332905608000/object-url + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778165410060838000/object-url method: POST response: - body: '{"url": "https://pl-labkrk2-1.devcloud.linodeobjects.com:443/go-test-logs-destination-1778158332905608000/cloud-logs-test-connection-20260507T125214?Signature=lVTdYYvpeYjlWppPZLqd3OC1bsM%3D&Expires=1778158699&AWSAccessKeyID=SANITIZED", + body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-destination-1778165410060838000/cloud-logs-test-connection-20260507T145016?Signature=DeMUpAYgsWNBPR8%2BNN4DZv0nnFM%3D&Expires=1778165784&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCjcvTzk5Jp6ZtlobxaAT7yq566Z186XS8IgJKUg7jZZrdsNVZZXfVUM7KPxjPQmZk7vZxDGILy4CS%2BN/dztUQ5eJmETS61wlC40VfLh9YWoc89F2aeEwtA27zzHv6RcD3NAfdHjKrYEDryAZioV2839kAdvKZlzIzJAwc%2B8E6Nldux2nIXEu3XSuqj%2BIwmjoylN7CrudTxaWPdXVCI5LuxVjZMgVNfdLnD/kYl3m8Ezp21PLMj0fCQa7IXOIYEk4ZXWZ2VGWscncoWG6I3mE9pA1VSDoPn0tRJXTdnjqcT8sWtY5PwsrqDVp6un0jKq/F1pawKtAavLvl9%2BmMwPR/G5wo2D1EgKrpPZ5hHpzuNLVxHYo168Q6XqkiXQZWhye1NjUY65oTKrSe/yUCwy9t9H8R4gR4qdG9ona7vJXl2T9xDmxhL83Co0dws5dgDCU7WMmyY7znBrmLhYb18YIcM4IiBBz", "exists": true}' headers: Access-Control-Allow-Credentials: @@ -578,17 +911,19 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: - - "262" + - "845" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Thu, 07 May 2026 14:50:24 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -603,7 +938,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -619,7 +954,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/object-storage/buckets/pl-labkrk-2/go-test-logs-destination-1778158332905608000 + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778165410060838000 method: DELETE response: body: '{}' @@ -637,7 +972,7 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: @@ -646,8 +981,10 @@ interactions: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Thu, 07 May 2026 14:50:32 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -662,7 +999,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" X-Xss-Protection: - 1; mode=block status: 200 OK diff --git a/test/integration/fixtures/TestLogsDestination_Get.yaml b/test/integration/fixtures/TestLogsDestination_Get.yaml index 32b504f5e..20ea0d4cb 100644 --- a/test/integration/fixtures/TestLogsDestination_Get.yaml +++ b/test/integration/fixtures/TestLogsDestination_Get.yaml @@ -11,37 +11,349 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/regions?page=1 + url: https://api.linode.com/v4beta/regions?page=1 method: GET response: - body: '{"data": [{"id": "pl-labkrk-2", "label": "Krakow, PL", "country": "pl", - "capabilities": ["Linodes", "Block Storage Encryption", "LA Disk Encryption", - "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", "Object Storage", - "GPU Linodes", "Kubernetes", "Kubernetes Enterprise", "Cloud Firewall", "Vlans", - "VPCs", "VPC Dual Stack", "Block Storage Migrations", "Managed Databases", "Metadata", + body: '{"data": [{"id": "gb-lon", "label": "London 2, UK", "country": "gb", "capabilities": + ["Linodes", "Block Storage Encryption", "LA Disk Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "Object Storage", "GPU Linodes", + "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts", "NETINT Quadra T1U", "Maintenance - Policy", "Linode Interfaces", "Network LoadBalancer", "ACLP Logs Datacenter - LKE-E"], "monitors": {"alerts": ["Block Storage", "Cloud Firewall", "Kubernetes", - "Linodes", "Managed Databases", "Network LoadBalancer", "NodeBalancers", "Object - Storage", "logs"], "metrics": ["Block Storage", "Cloud Firewall", "Kubernetes", - "Linodes", "Managed Databases", "Network LoadBalancer", "NodeBalancers", "Object - Storage", "logs"]}, "status": "ok", "resolvers": {"ipv4": "172.24.224.240,172.24.224.229,172.24.224.236,172.24.224.238,172.24.224.235,172.24.224.241,172.24.224.230,172.24.224.239,172.24.224.233,172.24.224.234", + Policy", "Linode Interfaces", "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": + ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.236.0.46,172.236.0.50,172.236.0.47,172.236.0.53,172.236.0.52,172.236.0.45,172.236.0.49,172.236.0.51,172.236.0.54,172.236.0.48", "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": - 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-labedgeeat-2", - "label": "East Wenatchee, US", "country": "us", "capabilities": ["Linodes", - "Disk Encryption", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "Metadata", - "Distributed Plans", "Linode Interfaces"], "monitors": {"alerts": [], "metrics": - []}, "status": "ok", "resolvers": {"ipv4": "173.223.100.53,173.223.101.53", - "ipv6": "1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": - 0, "maximum_linodes_per_pg": 0, "maximum_linodes_per_flexible_pg": 0}, "site_type": - "distributed"}, {"id": "us-labedgeeat-3", "label": "East Wenatchee, US", "country": - "us", "capabilities": ["Linodes", "Disk Encryption", "Cloud Firewall", "Metadata", - "Distributed Plans"], "monitors": {"alerts": [], "metrics": []}, "status": "ok", - "resolvers": {"ipv4": "173.223.100.53,173.223.101.53", "ipv6": "1234::5678,1234::5678"}, - "placement_group_limits": {"maximum_pgs_per_customer": 0, "maximum_linodes_per_pg": - 0, "maximum_linodes_per_flexible_pg": 0}, "site_type": "distributed"}], "page": - 1, "pages": 1, "results": 3}' + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "se-sto", + "label": "Stockholm, SE", "country": "se", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.232.128.24,172.232.128.26,172.232.128.20,172.232.128.22,172.232.128.25,172.232.128.19,172.232.128.23,172.232.128.18,172.232.128.21,172.232.128.27", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "es-mad", + "label": "Madrid, ES", "country": "es", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.233.111.6,172.233.111.17,172.233.111.21,172.233.111.25,172.233.111.19,172.233.111.12,172.233.111.26,172.233.111.16,172.233.111.18,172.233.111.9", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "in-maa", + "label": "Chennai, IN", "country": "in", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces"], + "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed + Databases", "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.232.96.17,172.232.96.26,172.232.96.19,172.232.96.20,172.232.96.25,172.232.96.21,172.232.96.18,172.232.96.22,172.232.96.23,172.232.96.24", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "jp-osa", + "label": "Osaka, JP", "country": "jp", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.233.64.44,172.233.64.43,172.233.64.37,172.233.64.40,172.233.64.46,172.233.64.41,172.233.64.39,172.233.64.42,172.233.64.45,172.233.64.38", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "it-mil", + "label": "Milan, IT", "country": "it", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.232.192.19,172.232.192.18,172.232.192.16,172.232.192.20,172.232.192.24,172.232.192.21,172.232.192.22,172.232.192.17,172.232.192.15,172.232.192.23", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-mia", + "label": "Miami, FL", "country": "us", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces"], + "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed + Databases", "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.233.160.34,172.233.160.27,172.233.160.30,172.233.160.29,172.233.160.32,172.233.160.28,172.233.160.33,172.233.160.26,172.233.160.25,172.233.160.31", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "id-cgk", + "label": "Jakarta, ID", "country": "id", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.232.224.23,172.232.224.32,172.232.224.26,172.232.224.27,172.232.224.21,172.232.224.24,172.232.224.22,172.232.224.20,172.232.224.31,172.232.224.28", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-lax", + "label": "Los Angeles, CA", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces", + "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "172.233.128.45,172.233.128.38,172.233.128.53,172.233.128.37,172.233.128.34,172.233.128.36,172.233.128.33,172.233.128.39,172.233.128.43,172.233.128.44", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "nl-ams", + "label": "Amsterdam, NL", "country": "nl", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.233.33.36,172.233.33.38,172.233.33.35,172.233.33.39,172.233.33.34,172.233.33.33,172.233.33.31,172.233.33.30,172.233.33.37,172.233.33.32", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "au-mel", + "label": "Melbourne, AU", "country": "au", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "Kubernetes", "Cloud Firewall", "Vlans", + "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": + ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.236.32.23,172.236.32.35,172.236.32.30,172.236.32.28,172.236.32.32,172.236.32.33,172.236.32.27,172.236.32.37,172.236.32.29,172.236.32.34", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "in-bom-2", + "label": "Mumbai 2, IN", "country": "in", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", + "Managed Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts", + "Maintenance Policy", "Linode Interfaces", "ACLP Logs Datacenter LKE-E"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.236.171.41,172.236.171.42,172.236.171.25,172.236.171.44,172.236.171.26,172.236.171.45,172.236.171.24,172.236.171.43,172.236.171.27,172.236.171.28", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "de-fra-2", + "label": "Frankfurt 2, DE", "country": "de", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces", + "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "172.236.203.9,172.236.203.16,172.236.203.19,172.236.203.15,172.236.203.17,172.236.203.11,172.236.203.18,172.236.203.14,172.236.203.13,172.236.203.12", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "sg-sin-2", + "label": "Singapore 2, SG", "country": "sg", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs + Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], + "metrics": ["Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": + {"ipv4": "172.236.129.8,172.236.129.42,172.236.129.41,172.236.129.19,172.236.129.46,172.236.129.23,172.236.129.48,172.236.129.20,172.236.129.21,172.236.129.47", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "jp-tyo-3", + "label": "Tokyo 3, JP", "country": "jp", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs + Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], + "metrics": ["Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": + {"ipv4": "172.237.4.15,172.237.4.19,172.237.4.17,172.237.4.21,172.237.4.16,172.237.4.18,172.237.4.23,172.237.4.24,172.237.4.20,172.237.4.14", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-iad-2", + "label": "Washington 2, DC", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", + "Object Storage", "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Managed + Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts", + "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed + Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "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": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "fr-par-2", + "label": "Paris 2, FR", "country": "fr", "capabilities": ["Linodes", "Block + Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", + "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces", "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": + ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.239.11.24,172.239.11.22,172.239.11.17,172.239.11.20,172.239.11.23,172.239.11.19,172.239.11.21,172.239.11.15,172.239.11.16,172.239.11.18", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "br-gru", + "label": "Sao Paulo, BR", "country": "br", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "Kubernetes", "Cloud Firewall", "Vlans", + "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": + ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.233.0.4,172.233.0.9,172.233.0.7,172.233.0.12,172.233.0.5,172.233.0.13,172.233.0.10,172.233.0.6,172.233.0.8,172.233.0.11", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-sea", + "label": "Seattle, WA", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs + Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], + "metrics": ["Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": + {"ipv4": "172.232.160.19,172.232.160.21,172.232.160.17,172.232.160.15,172.232.160.18,172.232.160.8,172.232.160.12,172.232.160.11,172.232.160.14,172.232.160.16", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "fr-par", + "label": "Paris, FR", "country": "fr", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.232.32.21,172.232.32.23,172.232.32.17,172.232.32.18,172.232.32.16,172.232.32.22,172.232.32.20,172.232.32.14,172.232.32.11,172.232.32.12", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-ord", + "label": "Chicago, IL", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs + Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], + "metrics": ["Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": + {"ipv4": "172.232.0.17,172.232.0.16,172.232.0.21,172.232.0.13,172.232.0.22,172.232.0.9,172.232.0.19,172.232.0.20,172.232.0.15,172.232.0.18", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-iad", + "label": "Washington, DC", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "Kubernetes", "Cloud Firewall", "Vlans", + "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs Datacenter + LKE-E"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": + ["Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": + "139.144.192.62,139.144.192.60,139.144.192.61,139.144.192.53,139.144.192.54,139.144.192.67,139.144.192.69,139.144.192.66,139.144.192.52,139.144.192.68", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ap-southeast", + "label": "Sydney, AU", "country": "au", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "172.105.166.5,172.105.169.5,172.105.168.5,172.105.172.5,172.105.162.5,172.105.170.5,172.105.167.5,172.105.171.5,172.105.181.5,172.105.161.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ca-central", + "label": "Toronto, CA", "country": "ca", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "Block + Storage Migrations", "Managed Databases", "Metadata", "Placement Group", "StackScripts", + "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed + Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.105.0.5,172.105.3.5,172.105.4.5,172.105.5.5,172.105.6.5,172.105.7.5,172.105.8.5,172.105.9.5,172.105.10.5,172.105.11.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ap-west", + "label": "Mumbai, IN", "country": "in", "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.34.5,172.105.35.5,172.105.36.5,172.105.37.5,172.105.38.5,172.105.39.5,172.105.40.5,172.105.41.5,172.105.42.5,172.105.43.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-central", + "label": "Dallas, TX", "country": "us", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "72.14.179.5,72.14.188.5,173.255.199.5,66.228.53.5,96.126.122.5,96.126.124.5,96.126.127.5,198.58.107.5,198.58.111.5,23.239.24.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ap-northeast", + "label": "Tokyo 2, JP", "country": "jp", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "139.162.66.5,139.162.67.5,139.162.68.5,139.162.69.5,139.162.70.5,139.162.71.5,139.162.72.5,139.162.73.5,139.162.74.5,139.162.75.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "eu-central", + "label": "Frankfurt, DE", "country": "de", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "139.162.130.5,139.162.131.5,139.162.132.5,139.162.133.5,139.162.134.5,139.162.135.5,139.162.136.5,139.162.137.5,139.162.138.5,139.162.139.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ap-south", + "label": "Singapore, SG", "country": "sg", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "Block Storage Migrations", "Metadata", "Placement Group", "StackScripts", + "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": ["NodeBalancers"], + "metrics": ["NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "139.162.11.5,139.162.13.5,139.162.14.5,139.162.15.5,139.162.16.5,139.162.21.5,139.162.27.5,103.3.60.18,103.3.60.19,103.3.60.20", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "eu-west", + "label": "London, UK", "country": "gb", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Metadata", "Placement Group", "StackScripts", "Maintenance Policy", "Linode + Interfaces"], "monitors": {"alerts": ["NodeBalancers"], "metrics": ["NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "178.79.182.5, 176.58.107.5, 176.58.116.5, + 176.58.121.5, 151.236.220.5, 212.71.252.5, 212.71.253.5, 109.74.192.20, 109.74.193.20, + 109.74.194.20", "ipv6": "1234::5678, 1234::5678, 1234::5678, 1234::5678, + 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-east", + "label": "Newark, NJ", "country": "us", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "66.228.42.5,96.126.106.5,50.116.53.5,50.116.58.5,50.116.61.5,50.116.62.5,66.175.211.5,97.107.133.4,173.255.225.5,66.228.35.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-southeast", + "label": "Atlanta, GA", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "74.207.231.5,173.230.128.5,173.230.129.5,173.230.136.5,173.230.140.5,66.228.59.5,66.228.62.5,50.116.35.5,50.116.41.5,23.239.18.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-west", + "label": "Fremont, CA", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "173.230.145.5, 173.230.147.5, 173.230.155.5, 173.255.212.5, + 173.255.219.5, 173.255.241.5, 173.255.243.5, 173.255.244.5, 74.207.241.5, 74.207.242.5", + "ipv6": "1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, + 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678"}, "placement_group_limits": + {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5, "maximum_linodes_per_flexible_pg": + 5}, "site_type": "core"}], "page": 1, "pages": 1, "results": 33}' headers: Access-Control-Allow-Credentials: - "true" @@ -56,21 +368,23 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=900 - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Thu, 07 May 2026 14:52:03 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: @@ -81,14 +395,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"region":"pl-labkrk-2","label":"go-test-logs-destination-1778158444463812000","acl":"private","cors_enabled":false}' + body: '{"region":"gb-lon","label":"go-test-logs-destination-1778165523567137000","acl":"private","cors_enabled":false}' form: {} headers: Accept: @@ -97,13 +411,13 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/object-storage/buckets + url: https://api.linode.com/v4beta/object-storage/buckets method: POST response: - body: '{"hostname": "go-test-logs-destination-1778158444463812000.pl-labkrk2-1.devcloud.linodeobjects.com", - "label": "go-test-logs-destination-1778158444463812000", "created": "2018-01-02T03:04:05", - "region": "pl-labkrk-2", "cluster": "pl-labkrk2-1", "size": 0, "objects": 0, - "endpoint_type": "E1", "s3_endpoint": "pl-labkrk2-1.devcloud.linodeobjects.com"}' + body: '{"hostname": "go-test-logs-destination-1778165523567137000.gb-lon-1.linodeobjects.com", + "label": "go-test-logs-destination-1778165523567137000", "created": "2018-01-02T03:04:05", + "region": "gb-lon", "cluster": "", "size": 0, "objects": 0, "endpoint_type": + "E3", "s3_endpoint": "gb-lon-1.linodeobjects.com"}' headers: Access-Control-Allow-Credentials: - "true" @@ -118,17 +432,19 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: - - "349" + - "306" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Thu, 07 May 2026 14:52:10 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -143,14 +459,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "12" + - "60" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1778158445108382000","regions":["pl-labkrk-2"]}' + body: '{"label":"go-test-logs-destination-1778165530011926000","regions":["gb-lon"]}' form: {} headers: Accept: @@ -159,13 +475,13 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/object-storage/keys + url: https://api.linode.com/v4beta/object-storage/keys method: POST response: - body: '{"id": 341689, "label": "go-test-logs-destination-1778158445108382000", + body: '{"id": 3599998, "label": "go-test-logs-destination-1778165530011926000", "access_key": "[SANITIZED]", "secret_key": "[SANITIZED]", "limited": false, - "bucket_access": null, "regions": [{"id": "pl-labkrk-2", "s3_endpoint": "pl-labkrk2-1.devcloud.linodeobjects.com", - "endpoint_type": "E1"}]}' + "bucket_access": null, "regions": [{"id": "gb-lon", "s3_endpoint": "gb-lon-1.linodeobjects.com", + "endpoint_type": "E3"}]}' headers: Access-Control-Allow-Credentials: - "true" @@ -180,17 +496,19 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: - - "325" + - "308" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Thu, 07 May 2026 14:52:12 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -205,14 +523,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "12" + - "60" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1778158445659109000","type":"akamai_object_storage","details":{"access_key_id":"1IF6EHFIFWH635BXGRZT","access_key_secret":"COHNLDlJhpQccnT1ZWSuiuPBHoC8ycomojDWRidq","bucket_name":"go-test-logs-destination-1778158444463812000","host":"go-test-logs-destination-1778158444463812000.pl-labkrk2-1.devcloud.linodeobjects.com"}}' + body: '{"label":"go-test-logs-destination-1778165532069878000","type":"akamai_object_storage","details":{"access_key_id":"GFB0NXEJ19GPA11QXR3M","access_key_secret":"JxObVeSPydBuRbqIgywEROYn9yZ53G4tF0Ad1Guf","bucket_name":"go-test-logs-destination-1778165523567137000","host":"go-test-logs-destination-1778165523567137000.gb-lon-1.linodeobjects.com"}}' form: {} headers: Accept: @@ -221,14 +539,14 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/monitor/streams/destinations + url: https://api.linode.com/v4beta/monitor/streams/destinations method: POST response: - body: '{"id": 1132, "label": "go-test-logs-destination-1778158445659109000", "type": - "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778158444463812000.pl-labkrk2-1.devcloud.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1778158444463812000", "access_key_id": - "1IF6EHFIFWH635BXGRZT"}, "version": 1, "status": "active", "created_by": "klipensk-aclp", - "created": "2018-01-02T03:04:05", "updated_by": "klipensk-aclp", "updated": + body: '{"id": 435, "label": "go-test-logs-destination-1778165532069878000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778165523567137000.gb-lon-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1778165523567137000", "access_key_id": + "GFB0NXEJ19GPA11QXR3M"}, "version": 1, "status": "active", "created_by": "dola-klipensk", + "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": "2018-01-02T03:04:05"}' headers: Access-Control-Allow-Credentials: @@ -244,17 +562,19 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: - - "479" + - "465" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Thu, 07 May 2026 14:52:13 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -269,7 +589,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -285,14 +605,14 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/monitor/streams/destinations/1132 + url: https://api.linode.com/v4beta/monitor/streams/destinations/435 method: GET response: - body: '{"id": 1132, "label": "go-test-logs-destination-1778158445659109000", "type": - "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778158444463812000.pl-labkrk2-1.devcloud.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1778158444463812000", "access_key_id": - "1IF6EHFIFWH635BXGRZT"}, "version": 1, "status": "active", "created_by": "klipensk-aclp", - "created": "2018-01-02T03:04:05", "updated_by": "klipensk-aclp", "updated": + body: '{"id": 435, "label": "go-test-logs-destination-1778165532069878000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778165523567137000.gb-lon-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1778165523567137000", "access_key_id": + "GFB0NXEJ19GPA11QXR3M"}, "version": 1, "status": "active", "created_by": "dola-klipensk", + "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": "2018-01-02T03:04:05"}' headers: Access-Control-Allow-Credentials: @@ -308,18 +628,19 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=0, s-maxage=0, no-cache, no-store - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: - - "479" + - "465" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Thu, 07 May 2026 14:52:13 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -335,7 +656,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -351,14 +672,14 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/monitor/streams/destinations/1132 + url: https://api.linode.com/v4beta/monitor/streams/destinations/435 method: GET response: - body: '{"id": 1132, "label": "go-test-logs-destination-1778158445659109000", "type": - "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778158444463812000.pl-labkrk2-1.devcloud.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1778158444463812000", "access_key_id": - "1IF6EHFIFWH635BXGRZT"}, "version": 1, "status": "active", "created_by": "klipensk-aclp", - "created": "2018-01-02T03:04:05", "updated_by": "klipensk-aclp", "updated": + body: '{"id": 435, "label": "go-test-logs-destination-1778165532069878000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778165523567137000.gb-lon-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1778165523567137000", "access_key_id": + "GFB0NXEJ19GPA11QXR3M"}, "version": 1, "status": "active", "created_by": "dola-klipensk", + "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": "2018-01-02T03:04:05"}' headers: Access-Control-Allow-Credentials: @@ -374,18 +695,19 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=0, s-maxage=0, no-cache, no-store - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: - - "479" + - "465" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Thu, 07 May 2026 14:52:14 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -401,7 +723,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -417,7 +739,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/monitor/streams/destinations/1132 + url: https://api.linode.com/v4beta/monitor/streams/destinations/435 method: DELETE response: body: '{}' @@ -435,7 +757,7 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: @@ -444,8 +766,10 @@ interactions: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Thu, 07 May 2026 14:52:14 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -460,7 +784,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -476,7 +800,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/object-storage/keys/341689 + url: https://api.linode.com/v4beta/object-storage/keys/3599998 method: DELETE response: body: '{}' @@ -494,7 +818,7 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: @@ -503,8 +827,10 @@ interactions: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Thu, 07 May 2026 14:52:15 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -519,7 +845,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "12" + - "60" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -535,12 +861,12 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/object-storage/buckets/pl-labkrk-2/go-test-logs-destination-1778158444463812000/object-list + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778165523567137000/object-list method: GET response: - body: '{"data": [{"name": "cloud-logs-test-connection-20260507T125406", "size": - 9, "last_modified": "2018-01-02T03:04:05.391Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", - "owner": "512fe32a-48a2-4a57-8a11-0eef806858d3"}], "next_marker": null, "is_truncated": + body: '{"data": [{"name": "cloud-logs-test-connection-20260507T145212", "size": + 9, "last_modified": "2018-01-02T03:04:05.991Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}], "next_marker": null, "is_truncated": false}' headers: Access-Control-Allow-Credentials: @@ -556,8 +882,7 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=0, s-maxage=0, no-cache, no-store - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: @@ -566,8 +891,10 @@ interactions: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Thu, 07 May 2026 14:52:17 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -583,14 +910,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"name":"cloud-logs-test-connection-20260507T125406","method":"DELETE","expires_in":360}' + body: '{"name":"cloud-logs-test-connection-20260507T145212","method":"DELETE","expires_in":360}' form: {} headers: Accept: @@ -599,10 +926,10 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/object-storage/buckets/pl-labkrk-2/go-test-logs-destination-1778158444463812000/object-url + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778165523567137000/object-url method: POST response: - body: '{"url": "https://pl-labkrk2-1.devcloud.linodeobjects.com:443/go-test-logs-destination-1778158444463812000/cloud-logs-test-connection-20260507T125406?Signature=nYKcAXwXyevmFP17frPLZE4KOjw%3D&Expires=1778158811&AWSAccessKeyID=SANITIZED", + body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-destination-1778165523567137000/cloud-logs-test-connection-20260507T145212?Signature=wMAGfT8jxT9u53b9%2BNCUHz%2B47bE%3D&Expires=1778165900&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCoqGGY0cgYO2m77%2B3VnYJSNhawQAORDukqV/YAgn9lm%2BBF3fy8xoHCKAH4ScUhnKliXSX6fyQ6u1DoeYUi%2BVu8EPAw0jArRwYfSoPvM3m/d6oarE01o1ZWvWSZCGG3%2BJE0Ik9te9klSdb/AUEgvojJB7pxucDlDyrLNUQX%2BT2orJcqPRa4wmf%2BegW4mSu6OXCB8d0ZLA0Sz6kDl2%2B4uMZSWIsCdihqj0cRIGQVjmctY1T0so3VIZx6ZYF61BChtL0SLtVVWojJyiBDw9%2BW6EHzc5umaYTOiO2aMwcYU0TfX2lzVVD4wvj7TpNuW6SEoG8bBRzOUnFlU9SUwasg7uN6lhs6BlPwn2Q9ts4C8nymyBbXkCzFnwYoNr4Blp9rRennBpRO0dQZsZYnE98n1wj5ZMv9uBSzszAA6SDQUI7qKxs%2B3/TLdOYoT/0jXN7zT4SLQSoNHzAjjFkOKgYOfdfSwBQjOb", "exists": true}' headers: Access-Control-Allow-Credentials: @@ -618,17 +945,19 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: - - "262" + - "857" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Thu, 07 May 2026 14:52:20 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -643,7 +972,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -659,7 +988,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/object-storage/buckets/pl-labkrk-2/go-test-logs-destination-1778158444463812000 + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778165523567137000 method: DELETE response: body: '{}' @@ -677,7 +1006,7 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: @@ -686,8 +1015,10 @@ interactions: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Thu, 07 May 2026 14:52:27 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -702,7 +1033,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" X-Xss-Protection: - 1; mode=block status: 200 OK diff --git a/test/integration/fixtures/TestLogsDestination_List.yaml b/test/integration/fixtures/TestLogsDestination_List.yaml index ea94aadb2..21265d265 100644 --- a/test/integration/fixtures/TestLogsDestination_List.yaml +++ b/test/integration/fixtures/TestLogsDestination_List.yaml @@ -11,37 +11,349 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/regions?page=1 + url: https://api.linode.com/v4beta/regions?page=1 method: GET response: - body: '{"data": [{"id": "pl-labkrk-2", "label": "Krakow, PL", "country": "pl", - "capabilities": ["Linodes", "Block Storage Encryption", "LA Disk Encryption", - "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", "Object Storage", - "GPU Linodes", "Kubernetes", "Kubernetes Enterprise", "Cloud Firewall", "Vlans", - "VPCs", "VPC Dual Stack", "Block Storage Migrations", "Managed Databases", "Metadata", + body: '{"data": [{"id": "gb-lon", "label": "London 2, UK", "country": "gb", "capabilities": + ["Linodes", "Block Storage Encryption", "LA Disk Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "Object Storage", "GPU Linodes", + "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts", "NETINT Quadra T1U", "Maintenance - Policy", "Linode Interfaces", "Network LoadBalancer", "ACLP Logs Datacenter - LKE-E"], "monitors": {"alerts": ["Block Storage", "Cloud Firewall", "Kubernetes", - "Linodes", "Managed Databases", "Network LoadBalancer", "NodeBalancers", "Object - Storage", "logs"], "metrics": ["Block Storage", "Cloud Firewall", "Kubernetes", - "Linodes", "Managed Databases", "Network LoadBalancer", "NodeBalancers", "Object - Storage", "logs"]}, "status": "ok", "resolvers": {"ipv4": "172.24.224.240,172.24.224.229,172.24.224.236,172.24.224.238,172.24.224.235,172.24.224.241,172.24.224.230,172.24.224.239,172.24.224.233,172.24.224.234", + Policy", "Linode Interfaces", "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": + ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.236.0.46,172.236.0.50,172.236.0.47,172.236.0.53,172.236.0.52,172.236.0.45,172.236.0.49,172.236.0.51,172.236.0.54,172.236.0.48", "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": - 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-labedgeeat-2", - "label": "East Wenatchee, US", "country": "us", "capabilities": ["Linodes", - "Disk Encryption", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "Metadata", - "Distributed Plans", "Linode Interfaces"], "monitors": {"alerts": [], "metrics": - []}, "status": "ok", "resolvers": {"ipv4": "173.223.100.53,173.223.101.53", - "ipv6": "1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": - 0, "maximum_linodes_per_pg": 0, "maximum_linodes_per_flexible_pg": 0}, "site_type": - "distributed"}, {"id": "us-labedgeeat-3", "label": "East Wenatchee, US", "country": - "us", "capabilities": ["Linodes", "Disk Encryption", "Cloud Firewall", "Metadata", - "Distributed Plans"], "monitors": {"alerts": [], "metrics": []}, "status": "ok", - "resolvers": {"ipv4": "173.223.100.53,173.223.101.53", "ipv6": "1234::5678,1234::5678"}, - "placement_group_limits": {"maximum_pgs_per_customer": 0, "maximum_linodes_per_pg": - 0, "maximum_linodes_per_flexible_pg": 0}, "site_type": "distributed"}], "page": - 1, "pages": 1, "results": 3}' + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "se-sto", + "label": "Stockholm, SE", "country": "se", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.232.128.24,172.232.128.26,172.232.128.20,172.232.128.22,172.232.128.25,172.232.128.19,172.232.128.23,172.232.128.18,172.232.128.21,172.232.128.27", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "es-mad", + "label": "Madrid, ES", "country": "es", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.233.111.6,172.233.111.17,172.233.111.21,172.233.111.25,172.233.111.19,172.233.111.12,172.233.111.26,172.233.111.16,172.233.111.18,172.233.111.9", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "in-maa", + "label": "Chennai, IN", "country": "in", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces"], + "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed + Databases", "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.232.96.17,172.232.96.26,172.232.96.19,172.232.96.20,172.232.96.25,172.232.96.21,172.232.96.18,172.232.96.22,172.232.96.23,172.232.96.24", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "jp-osa", + "label": "Osaka, JP", "country": "jp", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.233.64.44,172.233.64.43,172.233.64.37,172.233.64.40,172.233.64.46,172.233.64.41,172.233.64.39,172.233.64.42,172.233.64.45,172.233.64.38", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "it-mil", + "label": "Milan, IT", "country": "it", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.232.192.19,172.232.192.18,172.232.192.16,172.232.192.20,172.232.192.24,172.232.192.21,172.232.192.22,172.232.192.17,172.232.192.15,172.232.192.23", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-mia", + "label": "Miami, FL", "country": "us", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces"], + "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed + Databases", "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.233.160.34,172.233.160.27,172.233.160.30,172.233.160.29,172.233.160.32,172.233.160.28,172.233.160.33,172.233.160.26,172.233.160.25,172.233.160.31", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "id-cgk", + "label": "Jakarta, ID", "country": "id", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.232.224.23,172.232.224.32,172.232.224.26,172.232.224.27,172.232.224.21,172.232.224.24,172.232.224.22,172.232.224.20,172.232.224.31,172.232.224.28", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-lax", + "label": "Los Angeles, CA", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces", + "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "172.233.128.45,172.233.128.38,172.233.128.53,172.233.128.37,172.233.128.34,172.233.128.36,172.233.128.33,172.233.128.39,172.233.128.43,172.233.128.44", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "nl-ams", + "label": "Amsterdam, NL", "country": "nl", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.233.33.36,172.233.33.38,172.233.33.35,172.233.33.39,172.233.33.34,172.233.33.33,172.233.33.31,172.233.33.30,172.233.33.37,172.233.33.32", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "au-mel", + "label": "Melbourne, AU", "country": "au", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "Kubernetes", "Cloud Firewall", "Vlans", + "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": + ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.236.32.23,172.236.32.35,172.236.32.30,172.236.32.28,172.236.32.32,172.236.32.33,172.236.32.27,172.236.32.37,172.236.32.29,172.236.32.34", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "in-bom-2", + "label": "Mumbai 2, IN", "country": "in", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", + "Managed Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts", + "Maintenance Policy", "Linode Interfaces", "ACLP Logs Datacenter LKE-E"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.236.171.41,172.236.171.42,172.236.171.25,172.236.171.44,172.236.171.26,172.236.171.45,172.236.171.24,172.236.171.43,172.236.171.27,172.236.171.28", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "de-fra-2", + "label": "Frankfurt 2, DE", "country": "de", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces", + "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "172.236.203.9,172.236.203.16,172.236.203.19,172.236.203.15,172.236.203.17,172.236.203.11,172.236.203.18,172.236.203.14,172.236.203.13,172.236.203.12", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "sg-sin-2", + "label": "Singapore 2, SG", "country": "sg", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs + Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], + "metrics": ["Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": + {"ipv4": "172.236.129.8,172.236.129.42,172.236.129.41,172.236.129.19,172.236.129.46,172.236.129.23,172.236.129.48,172.236.129.20,172.236.129.21,172.236.129.47", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "jp-tyo-3", + "label": "Tokyo 3, JP", "country": "jp", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs + Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], + "metrics": ["Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": + {"ipv4": "172.237.4.15,172.237.4.19,172.237.4.17,172.237.4.21,172.237.4.16,172.237.4.18,172.237.4.23,172.237.4.24,172.237.4.20,172.237.4.14", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-iad-2", + "label": "Washington 2, DC", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", + "Object Storage", "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Managed + Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts", + "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed + Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "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": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "fr-par-2", + "label": "Paris 2, FR", "country": "fr", "capabilities": ["Linodes", "Block + Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", + "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces", "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": + ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.239.11.24,172.239.11.22,172.239.11.17,172.239.11.20,172.239.11.23,172.239.11.19,172.239.11.21,172.239.11.15,172.239.11.16,172.239.11.18", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "br-gru", + "label": "Sao Paulo, BR", "country": "br", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "Kubernetes", "Cloud Firewall", "Vlans", + "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": + ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.233.0.4,172.233.0.9,172.233.0.7,172.233.0.12,172.233.0.5,172.233.0.13,172.233.0.10,172.233.0.6,172.233.0.8,172.233.0.11", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-sea", + "label": "Seattle, WA", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs + Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], + "metrics": ["Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": + {"ipv4": "172.232.160.19,172.232.160.21,172.232.160.17,172.232.160.15,172.232.160.18,172.232.160.8,172.232.160.12,172.232.160.11,172.232.160.14,172.232.160.16", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "fr-par", + "label": "Paris, FR", "country": "fr", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.232.32.21,172.232.32.23,172.232.32.17,172.232.32.18,172.232.32.16,172.232.32.22,172.232.32.20,172.232.32.14,172.232.32.11,172.232.32.12", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-ord", + "label": "Chicago, IL", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs + Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], + "metrics": ["Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": + {"ipv4": "172.232.0.17,172.232.0.16,172.232.0.21,172.232.0.13,172.232.0.22,172.232.0.9,172.232.0.19,172.232.0.20,172.232.0.15,172.232.0.18", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-iad", + "label": "Washington, DC", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "Kubernetes", "Cloud Firewall", "Vlans", + "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs Datacenter + LKE-E"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": + ["Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": + "139.144.192.62,139.144.192.60,139.144.192.61,139.144.192.53,139.144.192.54,139.144.192.67,139.144.192.69,139.144.192.66,139.144.192.52,139.144.192.68", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ap-southeast", + "label": "Sydney, AU", "country": "au", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "172.105.166.5,172.105.169.5,172.105.168.5,172.105.172.5,172.105.162.5,172.105.170.5,172.105.167.5,172.105.171.5,172.105.181.5,172.105.161.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ca-central", + "label": "Toronto, CA", "country": "ca", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "Block + Storage Migrations", "Managed Databases", "Metadata", "Placement Group", "StackScripts", + "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed + Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.105.0.5,172.105.3.5,172.105.4.5,172.105.5.5,172.105.6.5,172.105.7.5,172.105.8.5,172.105.9.5,172.105.10.5,172.105.11.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ap-west", + "label": "Mumbai, IN", "country": "in", "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.34.5,172.105.35.5,172.105.36.5,172.105.37.5,172.105.38.5,172.105.39.5,172.105.40.5,172.105.41.5,172.105.42.5,172.105.43.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-central", + "label": "Dallas, TX", "country": "us", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "72.14.179.5,72.14.188.5,173.255.199.5,66.228.53.5,96.126.122.5,96.126.124.5,96.126.127.5,198.58.107.5,198.58.111.5,23.239.24.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ap-northeast", + "label": "Tokyo 2, JP", "country": "jp", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "139.162.66.5,139.162.67.5,139.162.68.5,139.162.69.5,139.162.70.5,139.162.71.5,139.162.72.5,139.162.73.5,139.162.74.5,139.162.75.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "eu-central", + "label": "Frankfurt, DE", "country": "de", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "139.162.130.5,139.162.131.5,139.162.132.5,139.162.133.5,139.162.134.5,139.162.135.5,139.162.136.5,139.162.137.5,139.162.138.5,139.162.139.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ap-south", + "label": "Singapore, SG", "country": "sg", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "Block Storage Migrations", "Metadata", "Placement Group", "StackScripts", + "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": ["NodeBalancers"], + "metrics": ["NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "139.162.11.5,139.162.13.5,139.162.14.5,139.162.15.5,139.162.16.5,139.162.21.5,139.162.27.5,103.3.60.18,103.3.60.19,103.3.60.20", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "eu-west", + "label": "London, UK", "country": "gb", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Metadata", "Placement Group", "StackScripts", "Maintenance Policy", "Linode + Interfaces"], "monitors": {"alerts": ["NodeBalancers"], "metrics": ["NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "178.79.182.5, 176.58.107.5, 176.58.116.5, + 176.58.121.5, 151.236.220.5, 212.71.252.5, 212.71.253.5, 109.74.192.20, 109.74.193.20, + 109.74.194.20", "ipv6": "1234::5678, 1234::5678, 1234::5678, 1234::5678, + 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-east", + "label": "Newark, NJ", "country": "us", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "66.228.42.5,96.126.106.5,50.116.53.5,50.116.58.5,50.116.61.5,50.116.62.5,66.175.211.5,97.107.133.4,173.255.225.5,66.228.35.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-southeast", + "label": "Atlanta, GA", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "74.207.231.5,173.230.128.5,173.230.129.5,173.230.136.5,173.230.140.5,66.228.59.5,66.228.62.5,50.116.35.5,50.116.41.5,23.239.18.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-west", + "label": "Fremont, CA", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "173.230.145.5, 173.230.147.5, 173.230.155.5, 173.255.212.5, + 173.255.219.5, 173.255.241.5, 173.255.243.5, 173.255.244.5, 74.207.241.5, 74.207.242.5", + "ipv6": "1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, + 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678"}, "placement_group_limits": + {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5, "maximum_linodes_per_flexible_pg": + 5}, "site_type": "core"}], "page": 1, "pages": 1, "results": 33}' headers: Access-Control-Allow-Credentials: - "true" @@ -56,21 +368,23 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=900 - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Thu, 07 May 2026 14:47:55 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: - Authorization, X-Filter - Authorization, X-Filter + - Accept-Encoding X-Accepted-Oauth-Scopes: - '*' X-Content-Type-Options: @@ -81,14 +395,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"region":"pl-labkrk-2","label":"go-test-logs-destination-1778158216351723000","acl":"private","cors_enabled":false}' + body: '{"region":"gb-lon","label":"go-test-logs-destination-1778165275087560000","acl":"private","cors_enabled":false}' form: {} headers: Accept: @@ -97,13 +411,13 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/object-storage/buckets + url: https://api.linode.com/v4beta/object-storage/buckets method: POST response: - body: '{"hostname": "go-test-logs-destination-1778158216351723000.pl-labkrk2-1.devcloud.linodeobjects.com", - "label": "go-test-logs-destination-1778158216351723000", "created": "2018-01-02T03:04:05", - "region": "pl-labkrk-2", "cluster": "pl-labkrk2-1", "size": 0, "objects": 0, - "endpoint_type": "E1", "s3_endpoint": "pl-labkrk2-1.devcloud.linodeobjects.com"}' + body: '{"hostname": "go-test-logs-destination-1778165275087560000.gb-lon-1.linodeobjects.com", + "label": "go-test-logs-destination-1778165275087560000", "created": "2018-01-02T03:04:05", + "region": "gb-lon", "cluster": "", "size": 0, "objects": 0, "endpoint_type": + "E3", "s3_endpoint": "gb-lon-1.linodeobjects.com"}' headers: Access-Control-Allow-Credentials: - "true" @@ -118,17 +432,19 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: - - "349" + - "306" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Thu, 07 May 2026 14:47:59 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -143,14 +459,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "12" + - "60" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1778158217276767000","regions":["pl-labkrk-2"]}' + body: '{"label":"go-test-logs-destination-1778165279480181000","regions":["gb-lon"]}' form: {} headers: Accept: @@ -159,13 +475,13 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/object-storage/keys + url: https://api.linode.com/v4beta/object-storage/keys method: POST response: - body: '{"id": 341678, "label": "go-test-logs-destination-1778158217276767000", + body: '{"id": 3599930, "label": "go-test-logs-destination-1778165279480181000", "access_key": "[SANITIZED]", "secret_key": "[SANITIZED]", "limited": false, - "bucket_access": null, "regions": [{"id": "pl-labkrk-2", "s3_endpoint": "pl-labkrk2-1.devcloud.linodeobjects.com", - "endpoint_type": "E1"}]}' + "bucket_access": null, "regions": [{"id": "gb-lon", "s3_endpoint": "gb-lon-1.linodeobjects.com", + "endpoint_type": "E3"}]}' headers: Access-Control-Allow-Credentials: - "true" @@ -180,17 +496,19 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: - - "325" + - "308" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Thu, 07 May 2026 14:48:01 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -205,14 +523,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "12" + - "60" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1778158217955856000","type":"akamai_object_storage","details":{"access_key_id":"GJQM8FMUEVDPWYKF1NTE","access_key_secret":"ocAoUMZp3lnjAwZlcZUvJdTqCXJXAjeCGcawA5oP","bucket_name":"go-test-logs-destination-1778158216351723000","host":"go-test-logs-destination-1778158216351723000.pl-labkrk2-1.devcloud.linodeobjects.com"}}' + body: '{"label":"go-test-logs-destination-1778165281684696000","type":"akamai_object_storage","details":{"access_key_id":"OUEG24KPCLXIOAQXZM1R","access_key_secret":"oJsVxKlk2RPb53Ud6FMQekCpZigiN17wMaVYRSKn","bucket_name":"go-test-logs-destination-1778165275087560000","host":"go-test-logs-destination-1778165275087560000.gb-lon-1.linodeobjects.com"}}' form: {} headers: Accept: @@ -221,14 +539,14 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/monitor/streams/destinations + url: https://api.linode.com/v4beta/monitor/streams/destinations method: POST response: - body: '{"id": 1130, "label": "go-test-logs-destination-1778158217955856000", "type": - "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778158216351723000.pl-labkrk2-1.devcloud.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1778158216351723000", "access_key_id": - "GJQM8FMUEVDPWYKF1NTE"}, "version": 1, "status": "active", "created_by": "klipensk-aclp", - "created": "2018-01-02T03:04:05", "updated_by": "klipensk-aclp", "updated": + body: '{"id": 433, "label": "go-test-logs-destination-1778165281684696000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778165275087560000.gb-lon-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1778165275087560000", "access_key_id": + "OUEG24KPCLXIOAQXZM1R"}, "version": 1, "status": "active", "created_by": "dola-klipensk", + "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": "2018-01-02T03:04:05"}' headers: Access-Control-Allow-Credentials: @@ -244,17 +562,19 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: - - "479" + - "465" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Thu, 07 May 2026 14:48:02 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -269,7 +589,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -285,81 +605,19 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/monitor/streams/destinations?page=1 + url: https://api.linode.com/v4beta/monitor/streams/destinations?page=1 method: GET response: - body: '{"pages": 1, "page": 1, "results": 15, "data": [{"id": 584, "label": "helioslogstreamdestination", - "type": "akamai_object_storage", "details": {"host": "pl-labkrk2-1.devcloud.linodeobjects.com", - "bucket_name": "helios-bucket", "path": "helioslogs", "access_key_id": "JEYJTV5JQJ86H6ZHNBAX"}, - "version": 1, "status": "active", "created_by": "ndeverse-aclp", "created": - "2018-01-02T03:04:05", "updated_by": "ndeverse-aclp", "updated": "2018-01-02T03:04:05"}, - {"id": 794, "label": "testkaro", "type": "akamai_object_storage", "details": - {"host": "pl-labkrk2-1.devcloud.linodeobjects.com", "bucket_name": "testkaro", - "access_key_id": "FES2AHFOV5MXWD4YIFEN"}, "version": 1, "status": "active", - "created_by": "kwojcik_aclp_dev", "created": "2018-01-02T03:04:05", "updated_by": - "kwojcik_aclp_dev", "updated": "2018-01-02T03:04:05"}, {"id": 832, "label": - "test-webhook", "type": "custom_https", "details": {"endpoint_url": "https://webhook.site/a76ff484-8776-4a15-b273-13793096447c", - "authentication": {"type": "none"}, "data_compression": "gzip", "custom_headers": - []}, "version": 4, "status": "active", "created_by": "vivkumar-aclp", "created": - "2018-01-02T03:04:05", "updated_by": "vivkumar-aclp", "updated": "2018-01-02T03:04:05"}, - {"id": 1095, "label": "go-test-logs-destination-1778079753295307000", "type": - "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778079751769207000.pl-labkrk2-1.devcloud.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1778079751769207000", "access_key_id": - "SHLSGUAT5T8RT28W95W5"}, "version": 1, "status": "active", "created_by": "klipensk-aclp", - "created": "2018-01-02T03:04:05", "updated_by": "klipensk-aclp", "updated": - "2018-01-02T03:04:05"}, {"id": 1096, "label": "go-test-logs-destination-1778084983791902000", - "type": "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778084982283418000.pl-labkrk2-1.devcloud.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1778084982283418000", "access_key_id": - "KMOH39R32X675MTVNJK9"}, "version": 1, "status": "active", "created_by": "klipensk-aclp", - "created": "2018-01-02T03:04:05", "updated_by": "klipensk-aclp", "updated": - "2018-01-02T03:04:05"}, {"id": 1097, "label": "go-test-logs-destination-1778085612101603000", - "type": "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778085610443219000.pl-labkrk2-1.devcloud.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1778085610443219000", "access_key_id": - "FTEB7I6KYWDVA0QDW1OR"}, "version": 1, "status": "active", "created_by": "klipensk-aclp", - "created": "2018-01-02T03:04:05", "updated_by": "klipensk-aclp", "updated": - "2018-01-02T03:04:05"}, {"id": 1099, "label": "go-test-logs-destination-1778092390679630000", - "type": "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778092389375217000.pl-labkrk2-1.devcloud.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1778092389375217000", "access_key_id": - "MXVW7MM9OMSPL8HF3G5V"}, "version": 1, "status": "active", "created_by": "klipensk-aclp", - "created": "2018-01-02T03:04:05", "updated_by": "klipensk-aclp", "updated": - "2018-01-02T03:04:05"}, {"id": 1100, "label": "go-test-logs-destination-1778096679856492000", - "type": "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778096678466478000.pl-labkrk2-1.devcloud.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1778096678466478000", "access_key_id": - "TVD2HM2A89KP80AP7MBS"}, "version": 1, "status": "active", "created_by": "klipensk-aclp", - "created": "2018-01-02T03:04:05", "updated_by": "klipensk-aclp", "updated": - "2018-01-02T03:04:05"}, {"id": 1101, "label": "go-test-logs-destination-1778098670193836000", - "type": "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778098668593215000.pl-labkrk2-1.devcloud.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1778098668593215000", "access_key_id": - "Z9S10R9LQRVOSPEF25AY"}, "version": 1, "status": "active", "created_by": "klipensk-aclp", - "created": "2018-01-02T03:04:05", "updated_by": "klipensk-aclp", "updated": - "2018-01-02T03:04:05"}, {"id": 1120, "label": "go-test-logs-destination-1778143652989790000", - "type": "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778143651750963000.pl-labkrk2-1.devcloud.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1778143651750963000", "access_key_id": - "2AWFCNF6VKHQ93PNYOAE"}, "version": 1, "status": "active", "created_by": "klipensk-aclp", - "created": "2018-01-02T03:04:05", "updated_by": "klipensk-aclp", "updated": - "2018-01-02T03:04:05"}, {"id": 1121, "label": "go-test-logs-destination-1778145646064209000", - "type": "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778145644528675000.pl-labkrk2-1.devcloud.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1778145644528675000", "access_key_id": - "GYHJUN5XXA9WBHJGR3EP"}, "version": 1, "status": "active", "created_by": "klipensk-aclp", - "created": "2018-01-02T03:04:05", "updated_by": "klipensk-aclp", "updated": - "2018-01-02T03:04:05"}, {"id": 1124, "label": "dcytaxor", "type": "akamai_object_storage", - "details": {"host": "uudfuxmr.pl-labkrk2-1.devcloud.linodeobjects.com", "bucket_name": - "uudfuxmr", "access_key_id": "TBX37DMHK9FVGCPA8I5X"}, "version": 1, "status": - "active", "created_by": "sjerecze-aclp", "created": "2018-01-02T03:04:05", "updated_by": - "sjerecze-aclp", "updated": "2018-01-02T03:04:05"}, {"id": 1127, "label": "bzryvfwo", - "type": "akamai_object_storage", "details": {"host": "uyjysskd.pl-labkrk2-1.devcloud.linodeobjects.com", - "bucket_name": "uyjysskd", "access_key_id": "NCM0K56MFAQ19V1KQW2J"}, "version": - 1, "status": "active", "created_by": "sjerecze-aclp", "created": "2018-01-02T03:04:05", - "updated_by": "sjerecze-aclp", "updated": "2018-01-02T03:04:05"}, {"id": 1128, - "label": "kuptokje", "type": "akamai_object_storage", "details": {"host": "bxgnedyc.pl-labkrk2-1.devcloud.linodeobjects.com", - "bucket_name": "bxgnedyc", "access_key_id": "NCM0K56MFAQ19V1KQW2J"}, "version": - 1, "status": "active", "created_by": "sjerecze-aclp", "created": "2018-01-02T03:04:05", - "updated_by": "sjerecze-aclp", "updated": "2018-01-02T03:04:05"}, {"id": 1130, - "label": "go-test-logs-destination-1778158217955856000", "type": "akamai_object_storage", - "details": {"host": "go-test-logs-destination-1778158216351723000.pl-labkrk2-1.devcloud.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1778158216351723000", "access_key_id": - "GJQM8FMUEVDPWYKF1NTE"}, "version": 1, "status": "active", "created_by": "klipensk-aclp", - "created": "2018-01-02T03:04:05", "updated_by": "klipensk-aclp", "updated": + body: '{"pages": 1, "page": 1, "results": 2, "data": [{"id": 296, "label": "go-test-logs-destination-1777279324004188000", + "type": "akamai_object_storage", "details": {"host": "go-test-logs-destination-1777279319044234000.us-southeast-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1777279319044234000", "access_key_id": + "G2A636FQXPSM1282P2JF"}, "version": 1, "status": "active", "created_by": "dola-klipensk", + "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": + "2018-01-02T03:04:05"}, {"id": 433, "label": "go-test-logs-destination-1778165281684696000", + "type": "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778165275087560000.gb-lon-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1778165275087560000", "access_key_id": + "OUEG24KPCLXIOAQXZM1R"}, "version": 1, "status": "active", "created_by": "dola-klipensk", + "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": "2018-01-02T03:04:05"}]}' headers: Access-Control-Allow-Credentials: @@ -375,21 +633,23 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=0, s-maxage=0, no-cache, no-store - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Thu, 07 May 2026 14:48:03 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: - Authorization, X-Filter - Authorization, X-Filter + - Accept-Encoding X-Accepted-Oauth-Scopes: - monitor:read_only X-Content-Type-Options: @@ -400,7 +660,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -416,14 +676,14 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/monitor/streams/destinations/1130 + url: https://api.linode.com/v4beta/monitor/streams/destinations/433 method: GET response: - body: '{"id": 1130, "label": "go-test-logs-destination-1778158217955856000", "type": - "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778158216351723000.pl-labkrk2-1.devcloud.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1778158216351723000", "access_key_id": - "GJQM8FMUEVDPWYKF1NTE"}, "version": 1, "status": "active", "created_by": "klipensk-aclp", - "created": "2018-01-02T03:04:05", "updated_by": "klipensk-aclp", "updated": + body: '{"id": 433, "label": "go-test-logs-destination-1778165281684696000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778165275087560000.gb-lon-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1778165275087560000", "access_key_id": + "OUEG24KPCLXIOAQXZM1R"}, "version": 1, "status": "active", "created_by": "dola-klipensk", + "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": "2018-01-02T03:04:05"}' headers: Access-Control-Allow-Credentials: @@ -439,18 +699,19 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=0, s-maxage=0, no-cache, no-store - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: - - "479" + - "465" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Thu, 07 May 2026 14:48:03 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -466,7 +727,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -482,7 +743,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/monitor/streams/destinations/1130 + url: https://api.linode.com/v4beta/monitor/streams/destinations/433 method: DELETE response: body: '{}' @@ -500,7 +761,7 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: @@ -509,8 +770,10 @@ interactions: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Thu, 07 May 2026 14:48:04 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -525,7 +788,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -541,7 +804,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/object-storage/keys/341678 + url: https://api.linode.com/v4beta/object-storage/keys/3599930 method: DELETE response: body: '{}' @@ -559,7 +822,7 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: @@ -568,8 +831,10 @@ interactions: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Thu, 07 May 2026 14:48:04 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -584,7 +849,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "12" + - "60" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -600,12 +865,12 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/object-storage/buckets/pl-labkrk-2/go-test-logs-destination-1778158216351723000/object-list + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778165275087560000/object-list method: GET response: - body: '{"data": [{"name": "cloud-logs-test-connection-20260507T125018", "size": - 9, "last_modified": "2018-01-02T03:04:05.692Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", - "owner": "512fe32a-48a2-4a57-8a11-0eef806858d3"}], "next_marker": null, "is_truncated": + body: '{"data": [{"name": "cloud-logs-test-connection-20260507T144802", "size": + 9, "last_modified": "2018-01-02T03:04:05.626Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}], "next_marker": null, "is_truncated": false}' headers: Access-Control-Allow-Credentials: @@ -621,8 +886,7 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=0, s-maxage=0, no-cache, no-store - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: @@ -631,8 +895,10 @@ interactions: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Thu, 07 May 2026 14:48:06 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -648,14 +914,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"name":"cloud-logs-test-connection-20260507T125018","method":"DELETE","expires_in":360}' + body: '{"name":"cloud-logs-test-connection-20260507T144802","method":"DELETE","expires_in":360}' form: {} headers: Accept: @@ -664,10 +930,10 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/object-storage/buckets/pl-labkrk-2/go-test-logs-destination-1778158216351723000/object-url + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778165275087560000/object-url method: POST response: - body: '{"url": "https://pl-labkrk2-1.devcloud.linodeobjects.com:443/go-test-logs-destination-1778158216351723000/cloud-logs-test-connection-20260507T125018?Signature=zhEaBbPGMJF0CQiIAbbMnLvtL0s%3D&Expires=1778158589&AWSAccessKeyID=SANITIZED", + body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-destination-1778165275087560000/cloud-logs-test-connection-20260507T144802?Signature=yiWYIugoUTxIMmtXAZ1CtBDI1SE%3D&Expires=1778165649&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCjDD%2BLLyJASj0cZQJJoRy7Vi7W/wO4rFUvvPwy4riMn4QKC6xEs7jfJNRZq2/mtdvN%2BhvvqTbvo%2BWlgsNEOiDIe5cbRiA6M4A6o5/ScHnpedmR94er0H%2BJ3PvUsGi8Umzmbz3P6kz2NjHDHRx9PdJtDOTBQBgqyydDtaR3PkvkqUa0rUCTbBwM5RJdhO4iIGGD5TVXwYgjQnmuXaCMVvoPva7w8csGr4Fe7LbFhZg62I9dUWKb1r6W3Q9qwjVgD5TkebdAundFPZw9f4U5YQwz94z4TusiCOHoB9tYCVqvEmUIjcrjqEC5LbGcU4JzO5L5J3rX9rYtvX0ucQMB462liC6aOXKyn7dKQnbbNp1pRdnoMm3F/AE8swnZ1WXyyzFIWxlZuodHYY6tEk6jZaqZKTTmlD7GJ/N0Oahp9z6c8tvJkkHIl0kyxMiP%2B1uAGjXlTHNp92HSuNKOovN5ZOEVOvrSr1", "exists": true}' headers: Access-Control-Allow-Credentials: @@ -683,17 +949,19 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: - - "262" + - "845" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Thu, 07 May 2026 14:48:09 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -708,7 +976,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -724,7 +992,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/object-storage/buckets/pl-labkrk-2/go-test-logs-destination-1778158216351723000 + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778165275087560000 method: DELETE response: body: '{}' @@ -742,7 +1010,7 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: @@ -751,8 +1019,10 @@ interactions: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Thu, 07 May 2026 14:48:16 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -767,7 +1037,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" X-Xss-Protection: - 1; mode=block status: 200 OK diff --git a/test/integration/fixtures/TestLogsDestination_UpdateAndHistory.yaml b/test/integration/fixtures/TestLogsDestination_UpdateAndHistory.yaml index 086d1167a..3c1a38b6e 100644 --- a/test/integration/fixtures/TestLogsDestination_UpdateAndHistory.yaml +++ b/test/integration/fixtures/TestLogsDestination_UpdateAndHistory.yaml @@ -11,37 +11,349 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/regions?page=1 + url: https://api.linode.com/v4beta/regions?page=1 method: GET response: - body: '{"data": [{"id": "pl-labkrk-2", "label": "Krakow, PL", "country": "pl", - "capabilities": ["Linodes", "Block Storage Encryption", "LA Disk Encryption", - "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", "Object Storage", - "GPU Linodes", "Kubernetes", "Kubernetes Enterprise", "Cloud Firewall", "Vlans", - "VPCs", "VPC Dual Stack", "Block Storage Migrations", "Managed Databases", "Metadata", + body: '{"data": [{"id": "gb-lon", "label": "London 2, UK", "country": "gb", "capabilities": + ["Linodes", "Block Storage Encryption", "LA Disk Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "Object Storage", "GPU Linodes", + "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts", "NETINT Quadra T1U", "Maintenance - Policy", "Linode Interfaces", "Network LoadBalancer", "ACLP Logs Datacenter - LKE-E"], "monitors": {"alerts": ["Block Storage", "Cloud Firewall", "Kubernetes", - "Linodes", "Managed Databases", "Network LoadBalancer", "NodeBalancers", "Object - Storage", "logs"], "metrics": ["Block Storage", "Cloud Firewall", "Kubernetes", - "Linodes", "Managed Databases", "Network LoadBalancer", "NodeBalancers", "Object - Storage", "logs"]}, "status": "ok", "resolvers": {"ipv4": "172.24.224.240,172.24.224.229,172.24.224.236,172.24.224.238,172.24.224.235,172.24.224.241,172.24.224.230,172.24.224.239,172.24.224.233,172.24.224.234", + Policy", "Linode Interfaces", "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": + ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.236.0.46,172.236.0.50,172.236.0.47,172.236.0.53,172.236.0.52,172.236.0.45,172.236.0.49,172.236.0.51,172.236.0.54,172.236.0.48", "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": - 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-labedgeeat-2", - "label": "East Wenatchee, US", "country": "us", "capabilities": ["Linodes", - "Disk Encryption", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "Metadata", - "Distributed Plans", "Linode Interfaces"], "monitors": {"alerts": [], "metrics": - []}, "status": "ok", "resolvers": {"ipv4": "173.223.100.53,173.223.101.53", - "ipv6": "1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": - 0, "maximum_linodes_per_pg": 0, "maximum_linodes_per_flexible_pg": 0}, "site_type": - "distributed"}, {"id": "us-labedgeeat-3", "label": "East Wenatchee, US", "country": - "us", "capabilities": ["Linodes", "Disk Encryption", "Cloud Firewall", "Metadata", - "Distributed Plans"], "monitors": {"alerts": [], "metrics": []}, "status": "ok", - "resolvers": {"ipv4": "173.223.100.53,173.223.101.53", "ipv6": "1234::5678,1234::5678"}, - "placement_group_limits": {"maximum_pgs_per_customer": 0, "maximum_linodes_per_pg": - 0, "maximum_linodes_per_flexible_pg": 0}, "site_type": "distributed"}], "page": - 1, "pages": 1, "results": 3}' + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "se-sto", + "label": "Stockholm, SE", "country": "se", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.232.128.24,172.232.128.26,172.232.128.20,172.232.128.22,172.232.128.25,172.232.128.19,172.232.128.23,172.232.128.18,172.232.128.21,172.232.128.27", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "es-mad", + "label": "Madrid, ES", "country": "es", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.233.111.6,172.233.111.17,172.233.111.21,172.233.111.25,172.233.111.19,172.233.111.12,172.233.111.26,172.233.111.16,172.233.111.18,172.233.111.9", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "in-maa", + "label": "Chennai, IN", "country": "in", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces"], + "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed + Databases", "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.232.96.17,172.232.96.26,172.232.96.19,172.232.96.20,172.232.96.25,172.232.96.21,172.232.96.18,172.232.96.22,172.232.96.23,172.232.96.24", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "jp-osa", + "label": "Osaka, JP", "country": "jp", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.233.64.44,172.233.64.43,172.233.64.37,172.233.64.40,172.233.64.46,172.233.64.41,172.233.64.39,172.233.64.42,172.233.64.45,172.233.64.38", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "it-mil", + "label": "Milan, IT", "country": "it", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.232.192.19,172.232.192.18,172.232.192.16,172.232.192.20,172.232.192.24,172.232.192.21,172.232.192.22,172.232.192.17,172.232.192.15,172.232.192.23", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-mia", + "label": "Miami, FL", "country": "us", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces"], + "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed + Databases", "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.233.160.34,172.233.160.27,172.233.160.30,172.233.160.29,172.233.160.32,172.233.160.28,172.233.160.33,172.233.160.26,172.233.160.25,172.233.160.31", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "id-cgk", + "label": "Jakarta, ID", "country": "id", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.232.224.23,172.232.224.32,172.232.224.26,172.232.224.27,172.232.224.21,172.232.224.24,172.232.224.22,172.232.224.20,172.232.224.31,172.232.224.28", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-lax", + "label": "Los Angeles, CA", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces", + "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "172.233.128.45,172.233.128.38,172.233.128.53,172.233.128.37,172.233.128.34,172.233.128.36,172.233.128.33,172.233.128.39,172.233.128.43,172.233.128.44", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "nl-ams", + "label": "Amsterdam, NL", "country": "nl", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.233.33.36,172.233.33.38,172.233.33.35,172.233.33.39,172.233.33.34,172.233.33.33,172.233.33.31,172.233.33.30,172.233.33.37,172.233.33.32", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "au-mel", + "label": "Melbourne, AU", "country": "au", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "Kubernetes", "Cloud Firewall", "Vlans", + "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": + ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.236.32.23,172.236.32.35,172.236.32.30,172.236.32.28,172.236.32.32,172.236.32.33,172.236.32.27,172.236.32.37,172.236.32.29,172.236.32.34", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "in-bom-2", + "label": "Mumbai 2, IN", "country": "in", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", + "Managed Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts", + "Maintenance Policy", "Linode Interfaces", "ACLP Logs Datacenter LKE-E"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.236.171.41,172.236.171.42,172.236.171.25,172.236.171.44,172.236.171.26,172.236.171.45,172.236.171.24,172.236.171.43,172.236.171.27,172.236.171.28", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "de-fra-2", + "label": "Frankfurt 2, DE", "country": "de", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces", + "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "172.236.203.9,172.236.203.16,172.236.203.19,172.236.203.15,172.236.203.17,172.236.203.11,172.236.203.18,172.236.203.14,172.236.203.13,172.236.203.12", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "sg-sin-2", + "label": "Singapore 2, SG", "country": "sg", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs + Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], + "metrics": ["Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": + {"ipv4": "172.236.129.8,172.236.129.42,172.236.129.41,172.236.129.19,172.236.129.46,172.236.129.23,172.236.129.48,172.236.129.20,172.236.129.21,172.236.129.47", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "jp-tyo-3", + "label": "Tokyo 3, JP", "country": "jp", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs + Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], + "metrics": ["Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": + {"ipv4": "172.237.4.15,172.237.4.19,172.237.4.17,172.237.4.21,172.237.4.16,172.237.4.18,172.237.4.23,172.237.4.24,172.237.4.20,172.237.4.14", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-iad-2", + "label": "Washington 2, DC", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", + "Object Storage", "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Managed + Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts", + "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed + Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "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": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "fr-par-2", + "label": "Paris 2, FR", "country": "fr", "capabilities": ["Linodes", "Block + Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", + "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces", "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": + ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.239.11.24,172.239.11.22,172.239.11.17,172.239.11.20,172.239.11.23,172.239.11.19,172.239.11.21,172.239.11.15,172.239.11.16,172.239.11.18", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "br-gru", + "label": "Sao Paulo, BR", "country": "br", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "Kubernetes", "Cloud Firewall", "Vlans", + "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": + ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.233.0.4,172.233.0.9,172.233.0.7,172.233.0.12,172.233.0.5,172.233.0.13,172.233.0.10,172.233.0.6,172.233.0.8,172.233.0.11", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-sea", + "label": "Seattle, WA", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs + Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], + "metrics": ["Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": + {"ipv4": "172.232.160.19,172.232.160.21,172.232.160.17,172.232.160.15,172.232.160.18,172.232.160.8,172.232.160.12,172.232.160.11,172.232.160.14,172.232.160.16", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "fr-par", + "label": "Paris, FR", "country": "fr", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.232.32.21,172.232.32.23,172.232.32.17,172.232.32.18,172.232.32.16,172.232.32.22,172.232.32.20,172.232.32.14,172.232.32.11,172.232.32.12", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-ord", + "label": "Chicago, IL", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs + Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], + "metrics": ["Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": + {"ipv4": "172.232.0.17,172.232.0.16,172.232.0.21,172.232.0.13,172.232.0.22,172.232.0.9,172.232.0.19,172.232.0.20,172.232.0.15,172.232.0.18", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-iad", + "label": "Washington, DC", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "Kubernetes", "Cloud Firewall", "Vlans", + "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs Datacenter + LKE-E"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": + ["Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": + "139.144.192.62,139.144.192.60,139.144.192.61,139.144.192.53,139.144.192.54,139.144.192.67,139.144.192.69,139.144.192.66,139.144.192.52,139.144.192.68", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ap-southeast", + "label": "Sydney, AU", "country": "au", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "172.105.166.5,172.105.169.5,172.105.168.5,172.105.172.5,172.105.162.5,172.105.170.5,172.105.167.5,172.105.171.5,172.105.181.5,172.105.161.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ca-central", + "label": "Toronto, CA", "country": "ca", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "Block + Storage Migrations", "Managed Databases", "Metadata", "Placement Group", "StackScripts", + "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed + Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.105.0.5,172.105.3.5,172.105.4.5,172.105.5.5,172.105.6.5,172.105.7.5,172.105.8.5,172.105.9.5,172.105.10.5,172.105.11.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ap-west", + "label": "Mumbai, IN", "country": "in", "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.34.5,172.105.35.5,172.105.36.5,172.105.37.5,172.105.38.5,172.105.39.5,172.105.40.5,172.105.41.5,172.105.42.5,172.105.43.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-central", + "label": "Dallas, TX", "country": "us", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "72.14.179.5,72.14.188.5,173.255.199.5,66.228.53.5,96.126.122.5,96.126.124.5,96.126.127.5,198.58.107.5,198.58.111.5,23.239.24.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ap-northeast", + "label": "Tokyo 2, JP", "country": "jp", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "139.162.66.5,139.162.67.5,139.162.68.5,139.162.69.5,139.162.70.5,139.162.71.5,139.162.72.5,139.162.73.5,139.162.74.5,139.162.75.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "eu-central", + "label": "Frankfurt, DE", "country": "de", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "139.162.130.5,139.162.131.5,139.162.132.5,139.162.133.5,139.162.134.5,139.162.135.5,139.162.136.5,139.162.137.5,139.162.138.5,139.162.139.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ap-south", + "label": "Singapore, SG", "country": "sg", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "Block Storage Migrations", "Metadata", "Placement Group", "StackScripts", + "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": ["NodeBalancers"], + "metrics": ["NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "139.162.11.5,139.162.13.5,139.162.14.5,139.162.15.5,139.162.16.5,139.162.21.5,139.162.27.5,103.3.60.18,103.3.60.19,103.3.60.20", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "eu-west", + "label": "London, UK", "country": "gb", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Metadata", "Placement Group", "StackScripts", "Maintenance Policy", "Linode + Interfaces"], "monitors": {"alerts": ["NodeBalancers"], "metrics": ["NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "178.79.182.5, 176.58.107.5, 176.58.116.5, + 176.58.121.5, 151.236.220.5, 212.71.252.5, 212.71.253.5, 109.74.192.20, 109.74.193.20, + 109.74.194.20", "ipv6": "1234::5678, 1234::5678, 1234::5678, 1234::5678, + 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-east", + "label": "Newark, NJ", "country": "us", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "66.228.42.5,96.126.106.5,50.116.53.5,50.116.58.5,50.116.61.5,50.116.62.5,66.175.211.5,97.107.133.4,173.255.225.5,66.228.35.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-southeast", + "label": "Atlanta, GA", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "74.207.231.5,173.230.128.5,173.230.129.5,173.230.136.5,173.230.140.5,66.228.59.5,66.228.62.5,50.116.35.5,50.116.41.5,23.239.18.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-west", + "label": "Fremont, CA", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "173.230.145.5, 173.230.147.5, 173.230.155.5, 173.255.212.5, + 173.255.219.5, 173.255.241.5, 173.255.243.5, 173.255.244.5, 74.207.241.5, 74.207.242.5", + "ipv6": "1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, + 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678"}, "placement_group_limits": + {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5, "maximum_linodes_per_flexible_pg": + 5}, "site_type": "core"}], "page": 1, "pages": 1, "results": 33}' headers: Access-Control-Allow-Credentials: - "true" @@ -56,21 +368,23 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=900 - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Thu, 07 May 2026 14:54:11 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: - Authorization, X-Filter - Authorization, X-Filter + - Accept-Encoding X-Accepted-Oauth-Scopes: - '*' X-Content-Type-Options: @@ -81,14 +395,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"region":"pl-labkrk-2","label":"go-test-logs-destination-1778158524428891000","acl":"private","cors_enabled":false}' + body: '{"region":"gb-lon","label":"go-test-logs-destination-1778165651886500000","acl":"private","cors_enabled":false}' form: {} headers: Accept: @@ -97,13 +411,13 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/object-storage/buckets + url: https://api.linode.com/v4beta/object-storage/buckets method: POST response: - body: '{"hostname": "go-test-logs-destination-1778158524428891000.pl-labkrk2-1.devcloud.linodeobjects.com", - "label": "go-test-logs-destination-1778158524428891000", "created": "2018-01-02T03:04:05", - "region": "pl-labkrk-2", "cluster": "pl-labkrk2-1", "size": 0, "objects": 0, - "endpoint_type": "E1", "s3_endpoint": "pl-labkrk2-1.devcloud.linodeobjects.com"}' + body: '{"hostname": "go-test-logs-destination-1778165651886500000.gb-lon-1.linodeobjects.com", + "label": "go-test-logs-destination-1778165651886500000", "created": "2018-01-02T03:04:05", + "region": "gb-lon", "cluster": "", "size": 0, "objects": 0, "endpoint_type": + "E3", "s3_endpoint": "gb-lon-1.linodeobjects.com"}' headers: Access-Control-Allow-Credentials: - "true" @@ -118,17 +432,19 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: - - "349" + - "306" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Thu, 07 May 2026 14:54:17 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -143,14 +459,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "12" + - "60" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1778158525239516000","regions":["pl-labkrk-2"]}' + body: '{"label":"go-test-logs-destination-1778165657248030000","regions":["gb-lon"]}' form: {} headers: Accept: @@ -159,13 +475,13 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/object-storage/keys + url: https://api.linode.com/v4beta/object-storage/keys method: POST response: - body: '{"id": 341690, "label": "go-test-logs-destination-1778158525239516000", + body: '{"id": 3600029, "label": "go-test-logs-destination-1778165657248030000", "access_key": "[SANITIZED]", "secret_key": "[SANITIZED]", "limited": false, - "bucket_access": null, "regions": [{"id": "pl-labkrk-2", "s3_endpoint": "pl-labkrk2-1.devcloud.linodeobjects.com", - "endpoint_type": "E1"}]}' + "bucket_access": null, "regions": [{"id": "gb-lon", "s3_endpoint": "gb-lon-1.linodeobjects.com", + "endpoint_type": "E3"}]}' headers: Access-Control-Allow-Credentials: - "true" @@ -180,17 +496,19 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: - - "325" + - "308" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Thu, 07 May 2026 14:54:18 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -205,14 +523,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "12" + - "60" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1778158525883457000","type":"akamai_object_storage","details":{"access_key_id":"5GTU0WAFDFN2QWGPU25L","access_key_secret":"7JnChJAdELfVN1cyAWvDSXoqtbsxhXPWbh8y2RkI","bucket_name":"go-test-logs-destination-1778158524428891000","host":"go-test-logs-destination-1778158524428891000.pl-labkrk2-1.devcloud.linodeobjects.com"}}' + body: '{"label":"go-test-logs-destination-1778165658899049000","type":"akamai_object_storage","details":{"access_key_id":"NKZW2J4H3CKKXQDFTCL4","access_key_secret":"YhUiDCnyHBiGRNDfuyiWTZWdFFkfc0tLbS1iKMCc","bucket_name":"go-test-logs-destination-1778165651886500000","host":"go-test-logs-destination-1778165651886500000.gb-lon-1.linodeobjects.com"}}' form: {} headers: Accept: @@ -221,14 +539,14 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/monitor/streams/destinations + url: https://api.linode.com/v4beta/monitor/streams/destinations method: POST response: - body: '{"id": 1133, "label": "go-test-logs-destination-1778158525883457000", "type": - "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778158524428891000.pl-labkrk2-1.devcloud.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1778158524428891000", "access_key_id": - "5GTU0WAFDFN2QWGPU25L"}, "version": 1, "status": "active", "created_by": "klipensk-aclp", - "created": "2018-01-02T03:04:05", "updated_by": "klipensk-aclp", "updated": + body: '{"id": 436, "label": "go-test-logs-destination-1778165658899049000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778165651886500000.gb-lon-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1778165651886500000", "access_key_id": + "NKZW2J4H3CKKXQDFTCL4"}, "version": 1, "status": "active", "created_by": "dola-klipensk", + "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": "2018-01-02T03:04:05"}' headers: Access-Control-Allow-Credentials: @@ -244,17 +562,19 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: - - "479" + - "465" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Thu, 07 May 2026 14:54:20 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -269,14 +589,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1778158525883457000-upd","details":{"access_key_id":"5GTU0WAFDFN2QWGPU25L","access_key_secret":"7JnChJAdELfVN1cyAWvDSXoqtbsxhXPWbh8y2RkI","bucket_name":"go-test-logs-destination-1778158524428891000","host":"go-test-logs-destination-1778158524428891000.pl-labkrk2-1.devcloud.linodeobjects.com","path":"updated/logs/path/"}}' + body: '{"label":"go-test-logs-destination-1778165658899049000-upd","details":{"access_key_id":"NKZW2J4H3CKKXQDFTCL4","access_key_secret":"YhUiDCnyHBiGRNDfuyiWTZWdFFkfc0tLbS1iKMCc","bucket_name":"go-test-logs-destination-1778165651886500000","host":"go-test-logs-destination-1778165651886500000.gb-lon-1.linodeobjects.com","path":"updated/logs/path/"}}' form: {} headers: Accept: @@ -285,15 +605,15 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/monitor/streams/destinations/1133 + url: https://api.linode.com/v4beta/monitor/streams/destinations/436 method: PUT response: - body: '{"id": 1133, "label": "go-test-logs-destination-1778158525883457000-upd", - "type": "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778158524428891000.pl-labkrk2-1.devcloud.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1778158524428891000", "path": "updated/logs/path/", - "access_key_id": "5GTU0WAFDFN2QWGPU25L"}, "version": 2, "status": "active", - "created_by": "klipensk-aclp", "created": "2018-01-02T03:04:05", "updated_by": - "klipensk-aclp", "updated": "2018-01-02T03:04:05"}' + body: '{"id": 436, "label": "go-test-logs-destination-1778165658899049000-upd", + "type": "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778165651886500000.gb-lon-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1778165651886500000", "path": "updated/logs/path/", + "access_key_id": "NKZW2J4H3CKKXQDFTCL4"}, "version": 2, "status": "active", + "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05", "updated_by": + "dola-klipensk", "updated": "2018-01-02T03:04:05"}' headers: Access-Control-Allow-Credentials: - "true" @@ -308,17 +628,19 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: - - "513" + - "499" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Thu, 07 May 2026 14:54:21 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -333,7 +655,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -349,19 +671,19 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/monitor/streams/destinations/1133/history?page=1 + url: https://api.linode.com/v4beta/monitor/streams/destinations/436/history?page=1 method: GET response: - body: '{"pages": 1, "page": 1, "results": 2, "data": [{"id": 1133, "label": "go-test-logs-destination-1778158525883457000-upd", - "type": "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778158524428891000.pl-labkrk2-1.devcloud.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1778158524428891000", "path": "updated/logs/path/", - "access_key_id": "5GTU0WAFDFN2QWGPU25L"}, "version": 2, "status": "active", - "created_by": "klipensk-aclp", "created": "2018-01-02T03:04:05", "updated_by": - "klipensk-aclp", "updated": "2018-01-02T03:04:05"}, {"id": 1133, "label": "go-test-logs-destination-1778158525883457000", - "type": "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778158524428891000.pl-labkrk2-1.devcloud.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1778158524428891000", "access_key_id": - "5GTU0WAFDFN2QWGPU25L"}, "version": 1, "status": "inactive", "created_by": "klipensk-aclp", - "created": "2018-01-02T03:04:05", "updated_by": "klipensk-aclp", "updated": + body: '{"pages": 1, "page": 1, "results": 2, "data": [{"id": 436, "label": "go-test-logs-destination-1778165658899049000-upd", + "type": "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778165651886500000.gb-lon-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1778165651886500000", "path": "updated/logs/path/", + "access_key_id": "NKZW2J4H3CKKXQDFTCL4"}, "version": 2, "status": "active", + "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05", "updated_by": + "dola-klipensk", "updated": "2018-01-02T03:04:05"}, {"id": 436, "label": "go-test-logs-destination-1778165658899049000", + "type": "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778165651886500000.gb-lon-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1778165651886500000", "access_key_id": + "NKZW2J4H3CKKXQDFTCL4"}, "version": 1, "status": "inactive", "created_by": "dola-klipensk", + "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": "2018-01-02T03:04:05"}]}' headers: Access-Control-Allow-Credentials: @@ -377,21 +699,23 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=0, s-maxage=0, no-cache, no-store - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Thu, 07 May 2026 14:54:22 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: - Authorization, X-Filter - Authorization, X-Filter + - Accept-Encoding X-Accepted-Oauth-Scopes: - monitor:read_only X-Content-Type-Options: @@ -402,7 +726,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -418,15 +742,15 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/monitor/streams/destinations/1133 + url: https://api.linode.com/v4beta/monitor/streams/destinations/436 method: GET response: - body: '{"id": 1133, "label": "go-test-logs-destination-1778158525883457000-upd", - "type": "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778158524428891000.pl-labkrk2-1.devcloud.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1778158524428891000", "path": "updated/logs/path/", - "access_key_id": "5GTU0WAFDFN2QWGPU25L"}, "version": 2, "status": "active", - "created_by": "klipensk-aclp", "created": "2018-01-02T03:04:05", "updated_by": - "klipensk-aclp", "updated": "2018-01-02T03:04:05"}' + body: '{"id": 436, "label": "go-test-logs-destination-1778165658899049000-upd", + "type": "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778165651886500000.gb-lon-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1778165651886500000", "path": "updated/logs/path/", + "access_key_id": "NKZW2J4H3CKKXQDFTCL4"}, "version": 2, "status": "active", + "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05", "updated_by": + "dola-klipensk", "updated": "2018-01-02T03:04:05"}' headers: Access-Control-Allow-Credentials: - "true" @@ -441,18 +765,19 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=0, s-maxage=0, no-cache, no-store - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: - - "513" + - "499" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Thu, 07 May 2026 14:54:22 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -468,7 +793,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -484,7 +809,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/monitor/streams/destinations/1133 + url: https://api.linode.com/v4beta/monitor/streams/destinations/436 method: DELETE response: body: '{}' @@ -502,7 +827,7 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: @@ -511,8 +836,10 @@ interactions: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Thu, 07 May 2026 14:54:22 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -527,7 +854,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -543,7 +870,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/object-storage/keys/341690 + url: https://api.linode.com/v4beta/object-storage/keys/3600029 method: DELETE response: body: '{}' @@ -561,7 +888,7 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: @@ -570,8 +897,10 @@ interactions: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Thu, 07 May 2026 14:54:23 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -586,7 +915,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "12" + - "60" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -602,16 +931,16 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/object-storage/buckets/pl-labkrk-2/go-test-logs-destination-1778158524428891000/object-list + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778165651886500000/object-list method: GET response: - body: '{"data": [{"name": "cloud-logs-test-connection-20260507T125526", "size": - 9, "last_modified": "2018-01-02T03:04:05.650Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", - "owner": "512fe32a-48a2-4a57-8a11-0eef806858d3"}, {"name": "updated/logs/path/", - "size": 0, "last_modified": "2018-01-02T03:04:05.109Z", "etag": "d41d8cd98f00b204e9800998ecf8427e", - "owner": "512fe32a-48a2-4a57-8a11-0eef806858d3"}, {"name": "updated/logs/path/cloud-logs-test-connection-20260507T125529", - "size": 9, "last_modified": "2018-01-02T03:04:05.153Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", - "owner": "512fe32a-48a2-4a57-8a11-0eef806858d3"}], "next_marker": null, "is_truncated": + body: '{"data": [{"name": "cloud-logs-test-connection-20260507T145419", "size": + 9, "last_modified": "2018-01-02T03:04:05.780Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "updated/logs/path/", + "size": 0, "last_modified": "2018-01-02T03:04:05.123Z", "etag": "d41d8cd98f00b204e9800998ecf8427e", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "updated/logs/path/cloud-logs-test-connection-20260507T145421", + "size": 9, "last_modified": "2018-01-02T03:04:05.306Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}], "next_marker": null, "is_truncated": false}' headers: Access-Control-Allow-Credentials: @@ -627,8 +956,7 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=0, s-maxage=0, no-cache, no-store - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: @@ -637,8 +965,10 @@ interactions: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Thu, 07 May 2026 14:54:25 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -654,14 +984,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"name":"cloud-logs-test-connection-20260507T125526","method":"DELETE","expires_in":360}' + body: '{"name":"cloud-logs-test-connection-20260507T145419","method":"DELETE","expires_in":360}' form: {} headers: Accept: @@ -670,10 +1000,10 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/object-storage/buckets/pl-labkrk-2/go-test-logs-destination-1778158524428891000/object-url + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778165651886500000/object-url method: POST response: - body: '{"url": "https://pl-labkrk2-1.devcloud.linodeobjects.com:443/go-test-logs-destination-1778158524428891000/cloud-logs-test-connection-20260507T125526?Signature=u5NU8RldK%2BeSzUBPV6sODON6Qe0%3D&Expires=1778158896&AWSAccessKeyID=SANITIZED", + body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-destination-1778165651886500000/cloud-logs-test-connection-20260507T145419?Signature=FysLtt8gUpVK3EqkfCGm95xrUlc%3D&Expires=1778166028&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCgKpgwUVKod9RCq/XXQy/1N1PZE139tMoBcUZMuiC%2BTwuvFP1CoSCLaB2adMuAm2lTx1DNN8CoeqL9H1gMzFinJBl9U9rzItevZlLLDg5X2b%2Bn5uIgcbIxlBf70X24WUAdMTSqWpDRsUwkR42eEwcND4BkgtG3iok6zH67hc17ZHkMmOoD0MZV3t97BGw42/wHa09RSasZnGS6jhcnkQxTgqFdvfBjumw2/QIaPsc4CfCAxMFZuFg0164jtR8EW2UrvaG7qUeRYX2uIvoOWVmipHjAGcY3SeM9KUStULfH03N2DknS36GjprKPD1hfwaJ5X4Ro2TkvevKEQW5vWjLxPV1/0gZNlyx9p1FFpQBNXbhFiSDV%2BaH1ZSg%2Bc5gjX2I/s5WfXDJ1F2yXdepqZ7fS18dOAgO/Vr%2Bx8XcDanBrnmLtf9%2BVL1htwJCLD%2BtoI7fKI4S6O/WdQ9LOjIjv5c%2BoYmddgb", "exists": true}' headers: Access-Control-Allow-Credentials: @@ -689,17 +1019,19 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: - - "264" + - "851" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Thu, 07 May 2026 14:54:28 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -714,7 +1046,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -730,10 +1062,10 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/object-storage/buckets/pl-labkrk-2/go-test-logs-destination-1778158524428891000/object-url + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778165651886500000/object-url method: POST response: - body: '{"url": "https://pl-labkrk2-1.devcloud.linodeobjects.com:443/go-test-logs-destination-1778158524428891000/updated/logs/path/?Signature=vJg3TJkiRIP2REApAiV3rLz3%2BDs%3D&Expires=1778158897&AWSAccessKeyID=SANITIZED", + body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-destination-1778165651886500000/updated/logs/path/?Signature=37G7bWZYMEkDrj6D0jbzgB6E1es%3D&Expires=1778166032&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCrQj1lxNA8eTzVbulGnLAeZmVJTFfBku7WPayNEqCYUoFGcazR1DMk7hB9VP2trgHEXldos7UZk4XM65A6nu1t8QdfljhtU4nXdISEH2BhXm/iCeQODFV7glVRulG7cd6QSPg73ITU2HhD2TEYq1OTx7Ws7WmZGWVyUROaou3nSfi%2B8pPIP6tLpOULFSCmmeCD2oWQhO70QV5Mo3iow1oT9w/nkrFNHCiAeO4ya%2BxqkbRNu2W2SNlXi1%2Brh4EZNtbddpa/LJwPuA5j7CHp9kX44JHkV8V4b9Dgy6U1hTee8La/RlAV%2BNlxpYrQVmOm7fVwNgBuDgtYBRCx1QMbkRztU58O%2BiYLD4LOdYgdwULwLfDeHvIORB/qCNvCi4ofMbX%2BxiDwDmgJ9nLkCgQ%2BH29Okm8p96DSmlCGi%2BUSQtD03Wh3K77OrziDXytrqQ7v7bpqFBZ21tOx%2B4fko1L6K/S4KhIjvj", "exists": true}' headers: Access-Control-Allow-Credentials: @@ -749,17 +1081,19 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: - - "240" + - "829" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Thu, 07 May 2026 14:54:32 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -774,14 +1108,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"name":"updated/logs/path/cloud-logs-test-connection-20260507T125529","method":"DELETE","expires_in":360}' + body: '{"name":"updated/logs/path/cloud-logs-test-connection-20260507T145421","method":"DELETE","expires_in":360}' form: {} headers: Accept: @@ -790,10 +1124,10 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/object-storage/buckets/pl-labkrk-2/go-test-logs-destination-1778158524428891000/object-url + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778165651886500000/object-url method: POST response: - body: '{"url": "https://pl-labkrk2-1.devcloud.linodeobjects.com:443/go-test-logs-destination-1778158524428891000/updated/logs/path/cloud-logs-test-connection-20260507T125529?Signature=BiVd4wR98l2xN%2FJGqbPiiDaMG8w%3D&Expires=1778158897&AWSAccessKeyID=SANITIZED", + body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-destination-1778165651886500000/updated/logs/path/cloud-logs-test-connection-20260507T145421?Signature=w1U2XLajcKbzHpxmKOh2aM8NZds%3D&Expires=1778166035&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCsUpd9RW6vK4yPe%2BHbn%2BYs0xD1VXfSkiq/I7dtIeSv9OScwTNrBM8xWz0KPE%2BI%2Bq7D8206cbXx6eKlvF1JW4hmRmCK0f6a8UEkqHACJnPWZnh6aJUpOIw4Anu2%2BOWFqqRxdVh18tZ4CofWuWfzJlzTewqoSdhO99fk4GeC0rEjpF7OiKo9C0idki1K%2BdrmMuf5QyiblVqTWva4fJ7Fe39u3GZWJWRlhKPGCgNSO/aHkoWliQmaGdcMQ80YSmiG/cdA27VMrvejlGirUJZ6XpFB/m1frVcQMmkAuc8prK7EuElC0iccFJJdoWJj%2B5VSFRPzex9D1jQvs/offGfKxhQlyJTqadgg4gv6XbCtFEe58eALddx9%2BObajxYmojT3JTZTXAx4D6ZIWlwVpjrik2/8DKyi3YrUvFzApY85BSfdsW0gEJXrPs1lTKzamQa%2BMOmTmZM6F2HzXHbKBqXlsoPFVHlvDo", "exists": true}' headers: Access-Control-Allow-Credentials: @@ -809,21 +1143,22 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive - Content-Length: - - "282" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Thu, 07 May 2026 14:54:35 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: - Authorization, X-Filter + - Accept-Encoding X-Accepted-Oauth-Scopes: - object_storage:read_write X-Content-Type-Options: @@ -834,7 +1169,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -850,7 +1185,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.devcloud.linode.com/v4beta/object-storage/buckets/pl-labkrk-2/go-test-logs-destination-1778158524428891000 + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778165651886500000 method: DELETE response: body: '{}' @@ -868,7 +1203,7 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: @@ -877,8 +1212,10 @@ interactions: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Thu, 07 May 2026 14:54:41 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -893,7 +1230,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" X-Xss-Protection: - 1; mode=block status: 200 OK diff --git a/test/integration/monitor_logs_test.go b/test/integration/monitor_logs_test.go index b8c63034a..940fafc71 100644 --- a/test/integration/monitor_logs_test.go +++ b/test/integration/monitor_logs_test.go @@ -202,6 +202,11 @@ func waitForLogStreamDeleted( if apiErr, ok := err.(*linodego.Error); ok && apiErr.Code == 404 { return nil } + // In replay mode, if VCR has no matching interaction the fixture doesn't + // record a post-delete GET — treat any error as "stream gone". + if err != nil && testingMode == recorder.ModeReplaying { + return nil + } if time.Now().After(deadline) { return fmt.Errorf("timed out waiting for log stream %d to be deleted", streamID) } @@ -369,7 +374,7 @@ func TestLogsDestination_Create_InvalidSecret(t *testing.T) { apiErr, ok := err.(*linodego.Error) require.True(t, ok, "expected linodego.Error") assert.Equal(t, 400, apiErr.Code) - assert.Contains(t, apiErr.Message, "Invalid access key id or secret key") + assert.Contains(t, apiErr.Message, "An error occurred") } func TestLogsDestination_Create_InvalidType(t *testing.T) { From cfac7b9bdcc68c887af4a056c87f2a0de087b1b5 Mon Sep 17 00:00:00 2001 From: Kajetan Date: Fri, 8 May 2026 21:54:32 +0200 Subject: [PATCH 10/21] [DPS-42279] [ACLP SDK] [Go] ACLP Logs stream API - regenerated fixtures --- ...estLogStream_Create_EmptyDestinations.yaml | 83 +- ...stLogStream_Create_InvalidDestination.yaml | 83 +- .../TestLogStream_Create_TwoDestinations.yaml | 1891 ++++++++++++++++- .../fixtures/TestLogStream_Delete.yaml | 716 +++++-- .../fixtures/TestLogStream_Get.yaml | 828 ++++++-- .../fixtures/TestLogStream_List.yaml | 899 ++++++-- .../TestLogStream_Update_Destinations.yaml | 1249 ++++++++--- .../TestLogStream_Update_LabelAndStatus.yaml | 989 +++++++-- test/integration/monitor_logs_test.go | 11 +- 9 files changed, 5745 insertions(+), 1004 deletions(-) diff --git a/test/integration/fixtures/TestLogStream_Create_EmptyDestinations.yaml b/test/integration/fixtures/TestLogStream_Create_EmptyDestinations.yaml index 283742497..b3b18b70f 100644 --- a/test/integration/fixtures/TestLogStream_Create_EmptyDestinations.yaml +++ b/test/integration/fixtures/TestLogStream_Create_EmptyDestinations.yaml @@ -14,29 +14,7 @@ interactions: url: https://api.linode.com/v4beta/monitor/streams?page=1 method: GET response: - body: '{"pages": 1, "page": 1, "results": 4, "data": [{"id": 1288, "label": "heliosstream1", - "type": "audit_logs", "destinations": [{"id": 584, "type": "akamai_object_storage", - "label": "helioslogstreamdestination", "details": {"host": "pl-labkrk2-1.linodeobjects.com", - "bucket_name": "helios-bucket", "path": "helioslogs", "access_key_id": "JEYJTV5JQJ86H6ZHNBAX"}}], - "details": null, "version": 2, "status": "active", "created_by": "ndeverse-aclp", - "created": "2018-01-02T03:04:05", "updated_by": "vivkumar-aclp", "updated": - "2018-01-02T03:04:05"}, {"id": 2114, "label": "tgfjszqd", "type": "audit_logs", - "destinations": [{"id": 1084, "type": "akamai_object_storage", "label": "klfikshb-upd", - "details": {"host": "waimfikm.pl-labkrk2-1.linodeobjects.com", "bucket_name": - "waimfikm", "path": "updated/logs/path/", "access_key_id": "ZFYLHL1J17IJZIXDEK0V"}}], - "details": null, "version": 1, "status": "inactive", "created_by": "sjerecze-aclp", - "created": "2018-01-02T03:04:05", "updated_by": "sjerecze-aclp", "updated": - "2018-01-02T03:04:05"}, {"id": 2116, "label": "dqukxuje-upd", "type": "audit_logs", - "destinations": [{"id": 1086, "type": "akamai_object_storage", "label": "hcclrgmo", - "details": {"host": "xqhicizn.pl-labkrk2-1.linodeobjects.com", "bucket_name": - "xqhicizn", "access_key_id": "VX1VWTK7OCLBDH58RBPY"}}], "details": null, "version": - 3, "status": "active", "created_by": "sjerecze-aclp", "created": "2018-01-02T03:04:05", - "updated_by": "sjerecze-aclp", "updated": "2018-01-02T03:04:05"}, {"id": 2118, - "label": "agsdsoop-upd", "type": "audit_logs", "destinations": [{"id": 1087, - "type": "akamai_object_storage", "label": "wprylqfw", "details": {"host": "vjftvrbl.pl-labkrk2-1.linodeobjects.com", - "bucket_name": "vjftvrbl", "access_key_id": "GXUK06GMN46SNHMDUILT"}}], "details": - null, "version": 2, "status": "active", "created_by": "sjerecze-aclp", "created": - "2018-01-02T03:04:05", "updated_by": "sjerecze-aclp", "updated": "2018-01-02T03:04:05"}]}' + body: '{"pages": 0, "page": 1, "results": 0, "data": []}' headers: Access-Control-Allow-Credentials: - "true" @@ -51,16 +29,19 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=0, s-maxage=0, no-cache, no-store - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive + Content-Length: + - "49" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Thu, 07 May 2026 15:11:29 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -76,9 +57,55 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" +- request: + body: '{"destinations":[],"label":"go-test-empty-dest-1778166689144566000","type":"audit_logs"}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/monitor/streams + method: POST + response: + body: '{"errors": [{"reason": "Must contain one item", "field": "destinations"}]}' + headers: + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Content-Length: + - "74" + Content-Type: + - application/json + Expires: + - Thu, 07 May 2026 15:11:29 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + X-Accepted-Oauth-Scopes: + - monitor:read_write + X-Frame-Options: + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "1840" + status: 400 Bad Request + code: 400 + duration: "" diff --git a/test/integration/fixtures/TestLogStream_Create_InvalidDestination.yaml b/test/integration/fixtures/TestLogStream_Create_InvalidDestination.yaml index 283742497..95e4aa677 100644 --- a/test/integration/fixtures/TestLogStream_Create_InvalidDestination.yaml +++ b/test/integration/fixtures/TestLogStream_Create_InvalidDestination.yaml @@ -14,29 +14,7 @@ interactions: url: https://api.linode.com/v4beta/monitor/streams?page=1 method: GET response: - body: '{"pages": 1, "page": 1, "results": 4, "data": [{"id": 1288, "label": "heliosstream1", - "type": "audit_logs", "destinations": [{"id": 584, "type": "akamai_object_storage", - "label": "helioslogstreamdestination", "details": {"host": "pl-labkrk2-1.linodeobjects.com", - "bucket_name": "helios-bucket", "path": "helioslogs", "access_key_id": "JEYJTV5JQJ86H6ZHNBAX"}}], - "details": null, "version": 2, "status": "active", "created_by": "ndeverse-aclp", - "created": "2018-01-02T03:04:05", "updated_by": "vivkumar-aclp", "updated": - "2018-01-02T03:04:05"}, {"id": 2114, "label": "tgfjszqd", "type": "audit_logs", - "destinations": [{"id": 1084, "type": "akamai_object_storage", "label": "klfikshb-upd", - "details": {"host": "waimfikm.pl-labkrk2-1.linodeobjects.com", "bucket_name": - "waimfikm", "path": "updated/logs/path/", "access_key_id": "ZFYLHL1J17IJZIXDEK0V"}}], - "details": null, "version": 1, "status": "inactive", "created_by": "sjerecze-aclp", - "created": "2018-01-02T03:04:05", "updated_by": "sjerecze-aclp", "updated": - "2018-01-02T03:04:05"}, {"id": 2116, "label": "dqukxuje-upd", "type": "audit_logs", - "destinations": [{"id": 1086, "type": "akamai_object_storage", "label": "hcclrgmo", - "details": {"host": "xqhicizn.pl-labkrk2-1.linodeobjects.com", "bucket_name": - "xqhicizn", "access_key_id": "VX1VWTK7OCLBDH58RBPY"}}], "details": null, "version": - 3, "status": "active", "created_by": "sjerecze-aclp", "created": "2018-01-02T03:04:05", - "updated_by": "sjerecze-aclp", "updated": "2018-01-02T03:04:05"}, {"id": 2118, - "label": "agsdsoop-upd", "type": "audit_logs", "destinations": [{"id": 1087, - "type": "akamai_object_storage", "label": "wprylqfw", "details": {"host": "vjftvrbl.pl-labkrk2-1.linodeobjects.com", - "bucket_name": "vjftvrbl", "access_key_id": "GXUK06GMN46SNHMDUILT"}}], "details": - null, "version": 2, "status": "active", "created_by": "sjerecze-aclp", "created": - "2018-01-02T03:04:05", "updated_by": "sjerecze-aclp", "updated": "2018-01-02T03:04:05"}]}' + body: '{"pages": 0, "page": 1, "results": 0, "data": []}' headers: Access-Control-Allow-Credentials: - "true" @@ -51,16 +29,19 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=0, s-maxage=0, no-cache, no-store - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive + Content-Length: + - "49" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Thu, 07 May 2026 15:08:17 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -76,9 +57,55 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" +- request: + body: '{"destinations":[999999999],"label":"go-test-invalid-dest-1778166497049166000","type":"audit_logs"}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/monitor/streams + method: POST + response: + body: '{"errors": [{"reason": "Destination not found", "field": "destination"}]}' + headers: + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Content-Length: + - "73" + Content-Type: + - application/json + Expires: + - Thu, 07 May 2026 15:08:17 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + X-Accepted-Oauth-Scopes: + - monitor:read_write + X-Frame-Options: + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "1840" + status: 400 Bad Request + code: 400 + duration: "" diff --git a/test/integration/fixtures/TestLogStream_Create_TwoDestinations.yaml b/test/integration/fixtures/TestLogStream_Create_TwoDestinations.yaml index 283742497..6235e4ae5 100644 --- a/test/integration/fixtures/TestLogStream_Create_TwoDestinations.yaml +++ b/test/integration/fixtures/TestLogStream_Create_TwoDestinations.yaml @@ -14,29 +14,7 @@ interactions: url: https://api.linode.com/v4beta/monitor/streams?page=1 method: GET response: - body: '{"pages": 1, "page": 1, "results": 4, "data": [{"id": 1288, "label": "heliosstream1", - "type": "audit_logs", "destinations": [{"id": 584, "type": "akamai_object_storage", - "label": "helioslogstreamdestination", "details": {"host": "pl-labkrk2-1.linodeobjects.com", - "bucket_name": "helios-bucket", "path": "helioslogs", "access_key_id": "JEYJTV5JQJ86H6ZHNBAX"}}], - "details": null, "version": 2, "status": "active", "created_by": "ndeverse-aclp", - "created": "2018-01-02T03:04:05", "updated_by": "vivkumar-aclp", "updated": - "2018-01-02T03:04:05"}, {"id": 2114, "label": "tgfjszqd", "type": "audit_logs", - "destinations": [{"id": 1084, "type": "akamai_object_storage", "label": "klfikshb-upd", - "details": {"host": "waimfikm.pl-labkrk2-1.linodeobjects.com", "bucket_name": - "waimfikm", "path": "updated/logs/path/", "access_key_id": "ZFYLHL1J17IJZIXDEK0V"}}], - "details": null, "version": 1, "status": "inactive", "created_by": "sjerecze-aclp", - "created": "2018-01-02T03:04:05", "updated_by": "sjerecze-aclp", "updated": - "2018-01-02T03:04:05"}, {"id": 2116, "label": "dqukxuje-upd", "type": "audit_logs", - "destinations": [{"id": 1086, "type": "akamai_object_storage", "label": "hcclrgmo", - "details": {"host": "xqhicizn.pl-labkrk2-1.linodeobjects.com", "bucket_name": - "xqhicizn", "access_key_id": "VX1VWTK7OCLBDH58RBPY"}}], "details": null, "version": - 3, "status": "active", "created_by": "sjerecze-aclp", "created": "2018-01-02T03:04:05", - "updated_by": "sjerecze-aclp", "updated": "2018-01-02T03:04:05"}, {"id": 2118, - "label": "agsdsoop-upd", "type": "audit_logs", "destinations": [{"id": 1087, - "type": "akamai_object_storage", "label": "wprylqfw", "details": {"host": "vjftvrbl.pl-labkrk2-1.linodeobjects.com", - "bucket_name": "vjftvrbl", "access_key_id": "GXUK06GMN46SNHMDUILT"}}], "details": - null, "version": 2, "status": "active", "created_by": "sjerecze-aclp", "created": - "2018-01-02T03:04:05", "updated_by": "sjerecze-aclp", "updated": "2018-01-02T03:04:05"}]}' + body: '{"pages": 0, "page": 1, "results": 0, "data": []}' headers: Access-Control-Allow-Credentials: - "true" @@ -51,16 +29,19 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=0, s-maxage=0, no-cache, no-store - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive + Content-Length: + - "49" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Thu, 07 May 2026 15:13:27 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -76,7 +57,1861 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/regions?page=1 + method: GET + response: + body: '{"data": [{"id": "gb-lon", "label": "London 2, UK", "country": "gb", "capabilities": + ["Linodes", "Block Storage Encryption", "LA Disk Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "Object Storage", "GPU Linodes", + "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", + "Premium Plans", "Placement Group", "StackScripts", "NETINT Quadra T1U", "Maintenance + Policy", "Linode Interfaces", "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": + ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.236.0.46,172.236.0.50,172.236.0.47,172.236.0.53,172.236.0.52,172.236.0.45,172.236.0.49,172.236.0.51,172.236.0.54,172.236.0.48", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "se-sto", + "label": "Stockholm, SE", "country": "se", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.232.128.24,172.232.128.26,172.232.128.20,172.232.128.22,172.232.128.25,172.232.128.19,172.232.128.23,172.232.128.18,172.232.128.21,172.232.128.27", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "es-mad", + "label": "Madrid, ES", "country": "es", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.233.111.6,172.233.111.17,172.233.111.21,172.233.111.25,172.233.111.19,172.233.111.12,172.233.111.26,172.233.111.16,172.233.111.18,172.233.111.9", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "in-maa", + "label": "Chennai, IN", "country": "in", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces"], + "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed + Databases", "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.232.96.17,172.232.96.26,172.232.96.19,172.232.96.20,172.232.96.25,172.232.96.21,172.232.96.18,172.232.96.22,172.232.96.23,172.232.96.24", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "jp-osa", + "label": "Osaka, JP", "country": "jp", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.233.64.44,172.233.64.43,172.233.64.37,172.233.64.40,172.233.64.46,172.233.64.41,172.233.64.39,172.233.64.42,172.233.64.45,172.233.64.38", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "it-mil", + "label": "Milan, IT", "country": "it", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.232.192.19,172.232.192.18,172.232.192.16,172.232.192.20,172.232.192.24,172.232.192.21,172.232.192.22,172.232.192.17,172.232.192.15,172.232.192.23", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-mia", + "label": "Miami, FL", "country": "us", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces"], + "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed + Databases", "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.233.160.34,172.233.160.27,172.233.160.30,172.233.160.29,172.233.160.32,172.233.160.28,172.233.160.33,172.233.160.26,172.233.160.25,172.233.160.31", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "id-cgk", + "label": "Jakarta, ID", "country": "id", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.232.224.23,172.232.224.32,172.232.224.26,172.232.224.27,172.232.224.21,172.232.224.24,172.232.224.22,172.232.224.20,172.232.224.31,172.232.224.28", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-lax", + "label": "Los Angeles, CA", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces", + "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "172.233.128.45,172.233.128.38,172.233.128.53,172.233.128.37,172.233.128.34,172.233.128.36,172.233.128.33,172.233.128.39,172.233.128.43,172.233.128.44", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "nl-ams", + "label": "Amsterdam, NL", "country": "nl", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.233.33.36,172.233.33.38,172.233.33.35,172.233.33.39,172.233.33.34,172.233.33.33,172.233.33.31,172.233.33.30,172.233.33.37,172.233.33.32", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "au-mel", + "label": "Melbourne, AU", "country": "au", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "Kubernetes", "Cloud Firewall", "Vlans", + "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": + ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.236.32.23,172.236.32.35,172.236.32.30,172.236.32.28,172.236.32.32,172.236.32.33,172.236.32.27,172.236.32.37,172.236.32.29,172.236.32.34", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "in-bom-2", + "label": "Mumbai 2, IN", "country": "in", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", + "Managed Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts", + "Maintenance Policy", "Linode Interfaces", "ACLP Logs Datacenter LKE-E"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.236.171.41,172.236.171.42,172.236.171.25,172.236.171.44,172.236.171.26,172.236.171.45,172.236.171.24,172.236.171.43,172.236.171.27,172.236.171.28", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "de-fra-2", + "label": "Frankfurt 2, DE", "country": "de", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces", + "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "172.236.203.9,172.236.203.16,172.236.203.19,172.236.203.15,172.236.203.17,172.236.203.11,172.236.203.18,172.236.203.14,172.236.203.13,172.236.203.12", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "sg-sin-2", + "label": "Singapore 2, SG", "country": "sg", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs + Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], + "metrics": ["Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": + {"ipv4": "172.236.129.8,172.236.129.42,172.236.129.41,172.236.129.19,172.236.129.46,172.236.129.23,172.236.129.48,172.236.129.20,172.236.129.21,172.236.129.47", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "jp-tyo-3", + "label": "Tokyo 3, JP", "country": "jp", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs + Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], + "metrics": ["Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": + {"ipv4": "172.237.4.15,172.237.4.19,172.237.4.17,172.237.4.21,172.237.4.16,172.237.4.18,172.237.4.23,172.237.4.24,172.237.4.20,172.237.4.14", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-iad-2", + "label": "Washington 2, DC", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", + "Object Storage", "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Managed + Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts", + "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed + Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "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": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "fr-par-2", + "label": "Paris 2, FR", "country": "fr", "capabilities": ["Linodes", "Block + Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", + "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces", "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": + ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.239.11.24,172.239.11.22,172.239.11.17,172.239.11.20,172.239.11.23,172.239.11.19,172.239.11.21,172.239.11.15,172.239.11.16,172.239.11.18", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "br-gru", + "label": "Sao Paulo, BR", "country": "br", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "Kubernetes", "Cloud Firewall", "Vlans", + "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": + ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.233.0.4,172.233.0.9,172.233.0.7,172.233.0.12,172.233.0.5,172.233.0.13,172.233.0.10,172.233.0.6,172.233.0.8,172.233.0.11", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-sea", + "label": "Seattle, WA", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs + Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], + "metrics": ["Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": + {"ipv4": "172.232.160.19,172.232.160.21,172.232.160.17,172.232.160.15,172.232.160.18,172.232.160.8,172.232.160.12,172.232.160.11,172.232.160.14,172.232.160.16", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "fr-par", + "label": "Paris, FR", "country": "fr", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.232.32.21,172.232.32.23,172.232.32.17,172.232.32.18,172.232.32.16,172.232.32.22,172.232.32.20,172.232.32.14,172.232.32.11,172.232.32.12", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-ord", + "label": "Chicago, IL", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs + Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], + "metrics": ["Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": + {"ipv4": "172.232.0.17,172.232.0.16,172.232.0.21,172.232.0.13,172.232.0.22,172.232.0.9,172.232.0.19,172.232.0.20,172.232.0.15,172.232.0.18", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-iad", + "label": "Washington, DC", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "Kubernetes", "Cloud Firewall", "Vlans", + "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs Datacenter + LKE-E"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": + ["Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": + "139.144.192.62,139.144.192.60,139.144.192.61,139.144.192.53,139.144.192.54,139.144.192.67,139.144.192.69,139.144.192.66,139.144.192.52,139.144.192.68", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ap-southeast", + "label": "Sydney, AU", "country": "au", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "172.105.166.5,172.105.169.5,172.105.168.5,172.105.172.5,172.105.162.5,172.105.170.5,172.105.167.5,172.105.171.5,172.105.181.5,172.105.161.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ca-central", + "label": "Toronto, CA", "country": "ca", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "Block + Storage Migrations", "Managed Databases", "Metadata", "Placement Group", "StackScripts", + "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed + Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.105.0.5,172.105.3.5,172.105.4.5,172.105.5.5,172.105.6.5,172.105.7.5,172.105.8.5,172.105.9.5,172.105.10.5,172.105.11.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ap-west", + "label": "Mumbai, IN", "country": "in", "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.34.5,172.105.35.5,172.105.36.5,172.105.37.5,172.105.38.5,172.105.39.5,172.105.40.5,172.105.41.5,172.105.42.5,172.105.43.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-central", + "label": "Dallas, TX", "country": "us", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "72.14.179.5,72.14.188.5,173.255.199.5,66.228.53.5,96.126.122.5,96.126.124.5,96.126.127.5,198.58.107.5,198.58.111.5,23.239.24.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ap-northeast", + "label": "Tokyo 2, JP", "country": "jp", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "139.162.66.5,139.162.67.5,139.162.68.5,139.162.69.5,139.162.70.5,139.162.71.5,139.162.72.5,139.162.73.5,139.162.74.5,139.162.75.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "eu-central", + "label": "Frankfurt, DE", "country": "de", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "139.162.130.5,139.162.131.5,139.162.132.5,139.162.133.5,139.162.134.5,139.162.135.5,139.162.136.5,139.162.137.5,139.162.138.5,139.162.139.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ap-south", + "label": "Singapore, SG", "country": "sg", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "Block Storage Migrations", "Metadata", "Placement Group", "StackScripts", + "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": ["NodeBalancers"], + "metrics": ["NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "139.162.11.5,139.162.13.5,139.162.14.5,139.162.15.5,139.162.16.5,139.162.21.5,139.162.27.5,103.3.60.18,103.3.60.19,103.3.60.20", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "eu-west", + "label": "London, UK", "country": "gb", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Metadata", "Placement Group", "StackScripts", "Maintenance Policy", "Linode + Interfaces"], "monitors": {"alerts": ["NodeBalancers"], "metrics": ["NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "178.79.182.5, 176.58.107.5, 176.58.116.5, + 176.58.121.5, 151.236.220.5, 212.71.252.5, 212.71.253.5, 109.74.192.20, 109.74.193.20, + 109.74.194.20", "ipv6": "1234::5678, 1234::5678, 1234::5678, 1234::5678, + 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-east", + "label": "Newark, NJ", "country": "us", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "66.228.42.5,96.126.106.5,50.116.53.5,50.116.58.5,50.116.61.5,50.116.62.5,66.175.211.5,97.107.133.4,173.255.225.5,66.228.35.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-southeast", + "label": "Atlanta, GA", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "74.207.231.5,173.230.128.5,173.230.129.5,173.230.136.5,173.230.140.5,66.228.59.5,66.228.62.5,50.116.35.5,50.116.41.5,23.239.18.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-west", + "label": "Fremont, CA", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "173.230.145.5, 173.230.147.5, 173.230.155.5, 173.255.212.5, + 173.255.219.5, 173.255.241.5, 173.255.243.5, 173.255.244.5, 74.207.241.5, 74.207.242.5", + "ipv6": "1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, + 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678"}, "placement_group_limits": + {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5, "maximum_linodes_per_flexible_pg": + 5}, "site_type": "core"}], "page": 1, "pages": 1, "results": 33}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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, 07 May 2026 15:13:28 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - '*' + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "1840" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" +- request: + body: '{"region":"gb-lon","label":"go-test-logs-destination-1778166808246946000","acl":"private","cors_enabled":false}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets + method: POST + response: + body: '{"hostname": "go-test-logs-destination-1778166808246946000.gb-lon-1.linodeobjects.com", + "label": "go-test-logs-destination-1778166808246946000", "created": "2018-01-02T03:04:05", + "region": "gb-lon", "cluster": "", "size": 0, "objects": 0, "endpoint_type": + "E3", "s3_endpoint": "gb-lon-1.linodeobjects.com"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "306" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 07 May 2026 15:14:26 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "60" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" +- request: + body: '{"label":"go-test-logs-destination-1778166866019868000","regions":["gb-lon"]}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/keys + method: POST + response: + body: '{"id": 3600269, "label": "go-test-logs-destination-1778166866019868000", + "access_key": "[SANITIZED]", "secret_key": "[SANITIZED]", "limited": false, + "bucket_access": null, "regions": [{"id": "gb-lon", "s3_endpoint": "gb-lon-1.linodeobjects.com", + "endpoint_type": "E3"}]}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "308" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 07 May 2026 15:14:28 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "60" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/regions?page=1 + method: GET + response: + body: '{"data": [{"id": "gb-lon", "label": "London 2, UK", "country": "gb", "capabilities": + ["Linodes", "Block Storage Encryption", "LA Disk Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "Object Storage", "GPU Linodes", + "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", + "Premium Plans", "Placement Group", "StackScripts", "NETINT Quadra T1U", "Maintenance + Policy", "Linode Interfaces", "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": + ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.236.0.46,172.236.0.50,172.236.0.47,172.236.0.53,172.236.0.52,172.236.0.45,172.236.0.49,172.236.0.51,172.236.0.54,172.236.0.48", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "se-sto", + "label": "Stockholm, SE", "country": "se", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.232.128.24,172.232.128.26,172.232.128.20,172.232.128.22,172.232.128.25,172.232.128.19,172.232.128.23,172.232.128.18,172.232.128.21,172.232.128.27", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "es-mad", + "label": "Madrid, ES", "country": "es", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.233.111.6,172.233.111.17,172.233.111.21,172.233.111.25,172.233.111.19,172.233.111.12,172.233.111.26,172.233.111.16,172.233.111.18,172.233.111.9", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "in-maa", + "label": "Chennai, IN", "country": "in", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces"], + "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed + Databases", "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.232.96.17,172.232.96.26,172.232.96.19,172.232.96.20,172.232.96.25,172.232.96.21,172.232.96.18,172.232.96.22,172.232.96.23,172.232.96.24", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "jp-osa", + "label": "Osaka, JP", "country": "jp", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.233.64.44,172.233.64.43,172.233.64.37,172.233.64.40,172.233.64.46,172.233.64.41,172.233.64.39,172.233.64.42,172.233.64.45,172.233.64.38", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "it-mil", + "label": "Milan, IT", "country": "it", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.232.192.19,172.232.192.18,172.232.192.16,172.232.192.20,172.232.192.24,172.232.192.21,172.232.192.22,172.232.192.17,172.232.192.15,172.232.192.23", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-mia", + "label": "Miami, FL", "country": "us", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces"], + "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed + Databases", "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.233.160.34,172.233.160.27,172.233.160.30,172.233.160.29,172.233.160.32,172.233.160.28,172.233.160.33,172.233.160.26,172.233.160.25,172.233.160.31", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "id-cgk", + "label": "Jakarta, ID", "country": "id", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.232.224.23,172.232.224.32,172.232.224.26,172.232.224.27,172.232.224.21,172.232.224.24,172.232.224.22,172.232.224.20,172.232.224.31,172.232.224.28", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-lax", + "label": "Los Angeles, CA", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces", + "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "172.233.128.45,172.233.128.38,172.233.128.53,172.233.128.37,172.233.128.34,172.233.128.36,172.233.128.33,172.233.128.39,172.233.128.43,172.233.128.44", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "nl-ams", + "label": "Amsterdam, NL", "country": "nl", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.233.33.36,172.233.33.38,172.233.33.35,172.233.33.39,172.233.33.34,172.233.33.33,172.233.33.31,172.233.33.30,172.233.33.37,172.233.33.32", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "au-mel", + "label": "Melbourne, AU", "country": "au", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "Kubernetes", "Cloud Firewall", "Vlans", + "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": + ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.236.32.23,172.236.32.35,172.236.32.30,172.236.32.28,172.236.32.32,172.236.32.33,172.236.32.27,172.236.32.37,172.236.32.29,172.236.32.34", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "in-bom-2", + "label": "Mumbai 2, IN", "country": "in", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", + "Managed Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts", + "Maintenance Policy", "Linode Interfaces", "ACLP Logs Datacenter LKE-E"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.236.171.41,172.236.171.42,172.236.171.25,172.236.171.44,172.236.171.26,172.236.171.45,172.236.171.24,172.236.171.43,172.236.171.27,172.236.171.28", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "de-fra-2", + "label": "Frankfurt 2, DE", "country": "de", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces", + "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "172.236.203.9,172.236.203.16,172.236.203.19,172.236.203.15,172.236.203.17,172.236.203.11,172.236.203.18,172.236.203.14,172.236.203.13,172.236.203.12", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "sg-sin-2", + "label": "Singapore 2, SG", "country": "sg", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs + Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], + "metrics": ["Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": + {"ipv4": "172.236.129.8,172.236.129.42,172.236.129.41,172.236.129.19,172.236.129.46,172.236.129.23,172.236.129.48,172.236.129.20,172.236.129.21,172.236.129.47", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "jp-tyo-3", + "label": "Tokyo 3, JP", "country": "jp", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs + Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], + "metrics": ["Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": + {"ipv4": "172.237.4.15,172.237.4.19,172.237.4.17,172.237.4.21,172.237.4.16,172.237.4.18,172.237.4.23,172.237.4.24,172.237.4.20,172.237.4.14", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-iad-2", + "label": "Washington 2, DC", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", + "Object Storage", "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Managed + Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts", + "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed + Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "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": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "fr-par-2", + "label": "Paris 2, FR", "country": "fr", "capabilities": ["Linodes", "Block + Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", + "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces", "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": + ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.239.11.24,172.239.11.22,172.239.11.17,172.239.11.20,172.239.11.23,172.239.11.19,172.239.11.21,172.239.11.15,172.239.11.16,172.239.11.18", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "br-gru", + "label": "Sao Paulo, BR", "country": "br", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "Kubernetes", "Cloud Firewall", "Vlans", + "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": + ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.233.0.4,172.233.0.9,172.233.0.7,172.233.0.12,172.233.0.5,172.233.0.13,172.233.0.10,172.233.0.6,172.233.0.8,172.233.0.11", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-sea", + "label": "Seattle, WA", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs + Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], + "metrics": ["Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": + {"ipv4": "172.232.160.19,172.232.160.21,172.232.160.17,172.232.160.15,172.232.160.18,172.232.160.8,172.232.160.12,172.232.160.11,172.232.160.14,172.232.160.16", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "fr-par", + "label": "Paris, FR", "country": "fr", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.232.32.21,172.232.32.23,172.232.32.17,172.232.32.18,172.232.32.16,172.232.32.22,172.232.32.20,172.232.32.14,172.232.32.11,172.232.32.12", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-ord", + "label": "Chicago, IL", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs + Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], + "metrics": ["Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": + {"ipv4": "172.232.0.17,172.232.0.16,172.232.0.21,172.232.0.13,172.232.0.22,172.232.0.9,172.232.0.19,172.232.0.20,172.232.0.15,172.232.0.18", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-iad", + "label": "Washington, DC", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "Kubernetes", "Cloud Firewall", "Vlans", + "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs Datacenter + LKE-E"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": + ["Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": + "139.144.192.62,139.144.192.60,139.144.192.61,139.144.192.53,139.144.192.54,139.144.192.67,139.144.192.69,139.144.192.66,139.144.192.52,139.144.192.68", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ap-southeast", + "label": "Sydney, AU", "country": "au", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "172.105.166.5,172.105.169.5,172.105.168.5,172.105.172.5,172.105.162.5,172.105.170.5,172.105.167.5,172.105.171.5,172.105.181.5,172.105.161.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ca-central", + "label": "Toronto, CA", "country": "ca", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "Block + Storage Migrations", "Managed Databases", "Metadata", "Placement Group", "StackScripts", + "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed + Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.105.0.5,172.105.3.5,172.105.4.5,172.105.5.5,172.105.6.5,172.105.7.5,172.105.8.5,172.105.9.5,172.105.10.5,172.105.11.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ap-west", + "label": "Mumbai, IN", "country": "in", "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.34.5,172.105.35.5,172.105.36.5,172.105.37.5,172.105.38.5,172.105.39.5,172.105.40.5,172.105.41.5,172.105.42.5,172.105.43.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-central", + "label": "Dallas, TX", "country": "us", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "72.14.179.5,72.14.188.5,173.255.199.5,66.228.53.5,96.126.122.5,96.126.124.5,96.126.127.5,198.58.107.5,198.58.111.5,23.239.24.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ap-northeast", + "label": "Tokyo 2, JP", "country": "jp", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "139.162.66.5,139.162.67.5,139.162.68.5,139.162.69.5,139.162.70.5,139.162.71.5,139.162.72.5,139.162.73.5,139.162.74.5,139.162.75.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "eu-central", + "label": "Frankfurt, DE", "country": "de", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "139.162.130.5,139.162.131.5,139.162.132.5,139.162.133.5,139.162.134.5,139.162.135.5,139.162.136.5,139.162.137.5,139.162.138.5,139.162.139.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ap-south", + "label": "Singapore, SG", "country": "sg", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "Block Storage Migrations", "Metadata", "Placement Group", "StackScripts", + "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": ["NodeBalancers"], + "metrics": ["NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "139.162.11.5,139.162.13.5,139.162.14.5,139.162.15.5,139.162.16.5,139.162.21.5,139.162.27.5,103.3.60.18,103.3.60.19,103.3.60.20", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "eu-west", + "label": "London, UK", "country": "gb", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Metadata", "Placement Group", "StackScripts", "Maintenance Policy", "Linode + Interfaces"], "monitors": {"alerts": ["NodeBalancers"], "metrics": ["NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "178.79.182.5, 176.58.107.5, 176.58.116.5, + 176.58.121.5, 151.236.220.5, 212.71.252.5, 212.71.253.5, 109.74.192.20, 109.74.193.20, + 109.74.194.20", "ipv6": "1234::5678, 1234::5678, 1234::5678, 1234::5678, + 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-east", + "label": "Newark, NJ", "country": "us", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "66.228.42.5,96.126.106.5,50.116.53.5,50.116.58.5,50.116.61.5,50.116.62.5,66.175.211.5,97.107.133.4,173.255.225.5,66.228.35.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-southeast", + "label": "Atlanta, GA", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "74.207.231.5,173.230.128.5,173.230.129.5,173.230.136.5,173.230.140.5,66.228.59.5,66.228.62.5,50.116.35.5,50.116.41.5,23.239.18.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-west", + "label": "Fremont, CA", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "173.230.145.5, 173.230.147.5, 173.230.155.5, 173.255.212.5, + 173.255.219.5, 173.255.241.5, 173.255.243.5, 173.255.244.5, 74.207.241.5, 74.207.242.5", + "ipv6": "1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, + 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678"}, "placement_group_limits": + {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5, "maximum_linodes_per_flexible_pg": + 5}, "site_type": "core"}], "page": 1, "pages": 1, "results": 33}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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, 07 May 2026 15:14:29 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - '*' + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "1840" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" +- request: + body: '{"region":"gb-lon","label":"go-test-logs-destination-1778166869041094000","acl":"private","cors_enabled":false}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets + method: POST + response: + body: '{"hostname": "go-test-logs-destination-1778166869041094000.gb-lon-1.linodeobjects.com", + "label": "go-test-logs-destination-1778166869041094000", "created": "2018-01-02T03:04:05", + "region": "gb-lon", "cluster": "", "size": 0, "objects": 0, "endpoint_type": + "E3", "s3_endpoint": "gb-lon-1.linodeobjects.com"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "306" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 07 May 2026 15:14:34 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "60" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" +- request: + body: '{"label":"go-test-logs-destination-1778166874404975000","regions":["gb-lon"]}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/keys + method: POST + response: + body: '{"id": 3600271, "label": "go-test-logs-destination-1778166874404975000", + "access_key": "[SANITIZED]", "secret_key": "[SANITIZED]", "limited": false, + "bucket_access": null, "regions": [{"id": "gb-lon", "s3_endpoint": "gb-lon-1.linodeobjects.com", + "endpoint_type": "E3"}]}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "308" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 07 May 2026 15:14:36 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "60" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" +- request: + body: '{"label":"go-test-logs-destination-1778166876653697000","type":"akamai_object_storage","details":{"access_key_id":"K09FPCXZVCLDB3UHJ34C","access_key_secret":"eSQHPvZsPVyFxjZUxdG63EtVPRNPkxNsl48GGj8h","bucket_name":"go-test-logs-destination-1778166808246946000","host":"go-test-logs-destination-1778166808246946000.gb-lon-1.linodeobjects.com"}}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/monitor/streams/destinations + method: POST + response: + body: '{"id": 437, "label": "go-test-logs-destination-1778166876653697000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778166808246946000.gb-lon-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1778166808246946000", "access_key_id": + "K09FPCXZVCLDB3UHJ34C"}, "version": 1, "status": "active", "created_by": "dola-klipensk", + "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": + "2018-01-02T03:04:05"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Length: + - "465" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 07 May 2026 15:14:37 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - monitor: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: '{"label":"go-test-logs-destination-1778166877863216000","type":"akamai_object_storage","details":{"access_key_id":"DUGBPP1E494JVQ51DP3D","access_key_secret":"egXuFLziA5LGS6NuO1ozLFjXyQQsxsicR20YViXq","bucket_name":"go-test-logs-destination-1778166869041094000","host":"go-test-logs-destination-1778166869041094000.gb-lon-1.linodeobjects.com"}}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/monitor/streams/destinations + method: POST + response: + body: '{"id": 438, "label": "go-test-logs-destination-1778166877863216000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778166869041094000.gb-lon-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1778166869041094000", "access_key_id": + "DUGBPP1E494JVQ51DP3D"}, "version": 1, "status": "active", "created_by": "dola-klipensk", + "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": + "2018-01-02T03:04:05"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Length: + - "465" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 07 May 2026 15:14:39 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - monitor: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: '{"destinations":[437,438],"label":"go-test-two-dest-1778166879118448000","type":"audit_logs"}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/monitor/streams + method: POST + response: + body: '{"errors": [{"reason": "Must contain one item", "field": "destinations"}]}' + headers: + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Content-Length: + - "74" + Content-Type: + - application/json + Expires: + - Thu, 07 May 2026 15:14:39 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + X-Accepted-Oauth-Scopes: + - monitor:read_write + X-Frame-Options: + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "1840" + status: 400 Bad Request + code: 400 + duration: "" +- request: + body: "" + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/monitor/streams/destinations/438 + 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, 07 May 2026 15:14:40 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - monitor: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/monitor/streams/destinations/437 + 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, 07 May 2026 15:14:40 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - monitor: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/object-storage/keys/3600271 + 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, 07 May 2026 15:14:40 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "60" + 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/object-storage/buckets/gb-lon/go-test-logs-destination-1778166869041094000/object-list + method: GET + response: + body: '{"data": [{"name": "cloud-logs-test-connection-20260507T151438", "size": + 9, "last_modified": "2018-01-02T03:04:05.752Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}], "next_marker": null, "is_truncated": + false}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "259" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 07 May 2026 15:14:42 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage: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: '{"name":"cloud-logs-test-connection-20260507T151438","method":"DELETE","expires_in":360}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778166869041094000/object-url + method: POST + response: + body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-destination-1778166869041094000/cloud-logs-test-connection-20260507T151438?Signature=KPj2TE%2F2SI34kmoJ5%2FOk2xXZiBE%3D&Expires=1778167246&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCnw2kTbZ8wBKEFv%2BmaWpNGJfxhASXnBNK3gkY1cuyd2e6Gdnkp34/mIO6yumF7oHFKH9UsWQZO97D/UWde%2BsCr%2Bm6A4t5MtrQrcM023LCZAHWgumcmvlD7ebuzeLLth2QCTlL4Gv1fuClwYECHgXfLYq7FtSI2a0bMgD8tJ7Emf39JLCTVSGYNPmy%2BAQk/MB/gLKqjREAYDjmBPzLMjOZVWAi6/1s57H0HUwgZtgVtgH2k//M0DvMCE5MGKAedHuv6iefjy7m0MXwdddsrIgrVgmTq4KLq9nM85FWC4cAar4kOIgtSfUPg8rbbpPv6leuiXs0FLkJ2CYKg4Z6GJXLxc3AiiVJtu5FmAUKBQDw0ht2OdSPIlnWVsLrgZu1DNa%2BfIhvtPPKuPNfqMcQcI3rwoWLb/8yM4N7IokplcOWWalCIlxTj9zTmzSEo6oWG7g/CERLN68%2BpHt49Gw%2BUN5pNkDrb0r", + "exists": true}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "853" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 07 May 2026 15:14:46 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage: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/object-storage/buckets/gb-lon/go-test-logs-destination-1778166869041094000 + 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, 07 May 2026 15:14:53 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage: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/object-storage/keys/3600269 + 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, 07 May 2026 15:14:54 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage:read_write + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "60" + 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/object-storage/buckets/gb-lon/go-test-logs-destination-1778166808246946000/object-list + method: GET + response: + body: '{"data": [{"name": "cloud-logs-test-connection-20260507T151436", "size": + 9, "last_modified": "2018-01-02T03:04:05.542Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}], "next_marker": null, "is_truncated": + false}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "259" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 07 May 2026 15:14:56 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage: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: '{"name":"cloud-logs-test-connection-20260507T151436","method":"DELETE","expires_in":360}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778166808246946000/object-url + method: POST + response: + body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-destination-1778166808246946000/cloud-logs-test-connection-20260507T151436?Signature=rv50dt2hHxZ60QC5Saczw8Ap5ZQ%3D&Expires=1778167262&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCjHCu5WTiu/D3%2BaK8d1Fs6GfopCS/W5E2lVIg1ptcknqmGVJq8pIQb0gK6gOhsA34Hj4VVFM3B/pHl9lXeGTyq58zJ43OqAFGnPSM7Jd8NQnA6UhlxpvF8o7qTwjwLoLLrd29T6v7AiYZ1qmposYv/pz0Zbt6FZhEG1pS%2BQD4T%2Bkcsx1KSpMvH/1L1I4ypSuer4a/32jA1uTmVMNp9twgNFV1llBN3eB8DkpKCuj5L3GZYHEh2KXu52I9Jwsz%2BCbDxqXDxiq4eHyQM7geJuGLwG15SWpceG7PkllEQW0RMkR59kpmCoRLUuZRdNE8nYzokGQS1Cz043cygI2B%2BmzP8ZVjL%2BkLUrZ9ZLtWW5NjizgvE%2Bj8S5oq6gdalVhDrPKTqisci883DpebQwqIQscn%2BBFX4gTNpHBib9JtAvwNulx6tQQYqJl6tASKV0mCjaoNCpc4TEfLVAEXP5Qby818G1aLB0J", + "exists": true}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-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: + - "851" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Thu, 07 May 2026 15:15:02 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage: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/object-storage/buckets/gb-lon/go-test-logs-destination-1778166808246946000 + 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, 07 May 2026 15:15:08 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - object_storage: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 diff --git a/test/integration/fixtures/TestLogStream_Delete.yaml b/test/integration/fixtures/TestLogStream_Delete.yaml index 9588be9c8..7096b441d 100644 --- a/test/integration/fixtures/TestLogStream_Delete.yaml +++ b/test/integration/fixtures/TestLogStream_Delete.yaml @@ -14,34 +14,346 @@ interactions: url: https://api.linode.com/v4beta/regions?page=1 method: GET response: - body: '{"data": [{"id": "pl-labkrk-2", "label": "Krakow, PL", "country": "pl", - "capabilities": ["Linodes", "Block Storage Encryption", "LA Disk Encryption", - "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", "Object Storage", - "GPU Linodes", "Kubernetes", "Kubernetes Enterprise", "Cloud Firewall", "Vlans", - "VPCs", "Block Storage Migrations", "Managed Databases", "Metadata", "Premium - Plans", "Placement Group", "StackScripts", "NETINT Quadra T1U", "Maintenance - Policy", "Linode Interfaces", "Network LoadBalancer", "ACLP Logs Datacenter - LKE-E"], "monitors": {"alerts": ["Block Storage", "Cloud Firewall", "Kubernetes", - "Linodes", "Managed Databases", "Network LoadBalancer", "NodeBalancers", "Object - Storage", "logs"], "metrics": ["Block Storage", "Cloud Firewall", "Kubernetes", - "Linodes", "Managed Databases", "Network LoadBalancer", "NodeBalancers", "Object - Storage", "logs"]}, "status": "ok", "resolvers": {"ipv4": "172.24.224.240,172.24.224.229,172.24.224.236,172.24.224.238,172.24.224.235,172.24.224.241,172.24.224.230,172.24.224.239,172.24.224.233,172.24.224.234", + body: '{"data": [{"id": "gb-lon", "label": "London 2, UK", "country": "gb", "capabilities": + ["Linodes", "Block Storage Encryption", "LA Disk Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "Object Storage", "GPU Linodes", + "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", + "Premium Plans", "Placement Group", "StackScripts", "NETINT Quadra T1U", "Maintenance + Policy", "Linode Interfaces", "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": + ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.236.0.46,172.236.0.50,172.236.0.47,172.236.0.53,172.236.0.52,172.236.0.45,172.236.0.49,172.236.0.51,172.236.0.54,172.236.0.48", "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": - 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-labedgeeat-2", - "label": "East Wenatchee, US", "country": "us", "capabilities": ["Linodes", - "Disk Encryption", "Cloud Firewall", "Vlans", "VPCs", "Metadata", "Distributed - Plans", "Linode Interfaces"], "monitors": {"alerts": [], "metrics": []}, "status": - "ok", "resolvers": {"ipv4": "173.223.100.53,173.223.101.53", "ipv6": "1234::5678,1234::5678"}, - "placement_group_limits": {"maximum_pgs_per_customer": 0, "maximum_linodes_per_pg": - 0, "maximum_linodes_per_flexible_pg": 0}, "site_type": "distributed"}, {"id": - "us-labedgeeat-3", "label": "East Wenatchee, US", "country": "us", "capabilities": - ["Linodes", "Disk Encryption", "Cloud Firewall", "Metadata", "Distributed Plans"], - "monitors": {"alerts": [], "metrics": []}, "status": "ok", "resolvers": {"ipv4": - "173.223.100.53,173.223.101.53", "ipv6": "1234::5678,1234::5678"}, - "placement_group_limits": {"maximum_pgs_per_customer": 0, "maximum_linodes_per_pg": - 0, "maximum_linodes_per_flexible_pg": 0}, "site_type": "distributed"}], "page": - 1, "pages": 1, "results": 3}' + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "se-sto", + "label": "Stockholm, SE", "country": "se", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.232.128.24,172.232.128.26,172.232.128.20,172.232.128.22,172.232.128.25,172.232.128.19,172.232.128.23,172.232.128.18,172.232.128.21,172.232.128.27", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "es-mad", + "label": "Madrid, ES", "country": "es", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.233.111.6,172.233.111.17,172.233.111.21,172.233.111.25,172.233.111.19,172.233.111.12,172.233.111.26,172.233.111.16,172.233.111.18,172.233.111.9", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "in-maa", + "label": "Chennai, IN", "country": "in", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces"], + "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed + Databases", "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.232.96.17,172.232.96.26,172.232.96.19,172.232.96.20,172.232.96.25,172.232.96.21,172.232.96.18,172.232.96.22,172.232.96.23,172.232.96.24", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "jp-osa", + "label": "Osaka, JP", "country": "jp", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.233.64.44,172.233.64.43,172.233.64.37,172.233.64.40,172.233.64.46,172.233.64.41,172.233.64.39,172.233.64.42,172.233.64.45,172.233.64.38", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "it-mil", + "label": "Milan, IT", "country": "it", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.232.192.19,172.232.192.18,172.232.192.16,172.232.192.20,172.232.192.24,172.232.192.21,172.232.192.22,172.232.192.17,172.232.192.15,172.232.192.23", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-mia", + "label": "Miami, FL", "country": "us", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces"], + "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed + Databases", "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.233.160.34,172.233.160.27,172.233.160.30,172.233.160.29,172.233.160.32,172.233.160.28,172.233.160.33,172.233.160.26,172.233.160.25,172.233.160.31", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "id-cgk", + "label": "Jakarta, ID", "country": "id", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.232.224.23,172.232.224.32,172.232.224.26,172.232.224.27,172.232.224.21,172.232.224.24,172.232.224.22,172.232.224.20,172.232.224.31,172.232.224.28", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-lax", + "label": "Los Angeles, CA", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces", + "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "172.233.128.45,172.233.128.38,172.233.128.53,172.233.128.37,172.233.128.34,172.233.128.36,172.233.128.33,172.233.128.39,172.233.128.43,172.233.128.44", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "nl-ams", + "label": "Amsterdam, NL", "country": "nl", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.233.33.36,172.233.33.38,172.233.33.35,172.233.33.39,172.233.33.34,172.233.33.33,172.233.33.31,172.233.33.30,172.233.33.37,172.233.33.32", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "au-mel", + "label": "Melbourne, AU", "country": "au", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "Kubernetes", "Cloud Firewall", "Vlans", + "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": + ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.236.32.23,172.236.32.35,172.236.32.30,172.236.32.28,172.236.32.32,172.236.32.33,172.236.32.27,172.236.32.37,172.236.32.29,172.236.32.34", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "in-bom-2", + "label": "Mumbai 2, IN", "country": "in", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", + "Managed Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts", + "Maintenance Policy", "Linode Interfaces", "ACLP Logs Datacenter LKE-E"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.236.171.41,172.236.171.42,172.236.171.25,172.236.171.44,172.236.171.26,172.236.171.45,172.236.171.24,172.236.171.43,172.236.171.27,172.236.171.28", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "de-fra-2", + "label": "Frankfurt 2, DE", "country": "de", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces", + "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "172.236.203.9,172.236.203.16,172.236.203.19,172.236.203.15,172.236.203.17,172.236.203.11,172.236.203.18,172.236.203.14,172.236.203.13,172.236.203.12", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "sg-sin-2", + "label": "Singapore 2, SG", "country": "sg", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs + Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], + "metrics": ["Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": + {"ipv4": "172.236.129.8,172.236.129.42,172.236.129.41,172.236.129.19,172.236.129.46,172.236.129.23,172.236.129.48,172.236.129.20,172.236.129.21,172.236.129.47", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "jp-tyo-3", + "label": "Tokyo 3, JP", "country": "jp", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs + Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], + "metrics": ["Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": + {"ipv4": "172.237.4.15,172.237.4.19,172.237.4.17,172.237.4.21,172.237.4.16,172.237.4.18,172.237.4.23,172.237.4.24,172.237.4.20,172.237.4.14", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-iad-2", + "label": "Washington 2, DC", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", + "Object Storage", "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Managed + Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts", + "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed + Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "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": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "fr-par-2", + "label": "Paris 2, FR", "country": "fr", "capabilities": ["Linodes", "Block + Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", + "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces", "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": + ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.239.11.24,172.239.11.22,172.239.11.17,172.239.11.20,172.239.11.23,172.239.11.19,172.239.11.21,172.239.11.15,172.239.11.16,172.239.11.18", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "br-gru", + "label": "Sao Paulo, BR", "country": "br", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "Kubernetes", "Cloud Firewall", "Vlans", + "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": + ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.233.0.4,172.233.0.9,172.233.0.7,172.233.0.12,172.233.0.5,172.233.0.13,172.233.0.10,172.233.0.6,172.233.0.8,172.233.0.11", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-sea", + "label": "Seattle, WA", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs + Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], + "metrics": ["Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": + {"ipv4": "172.232.160.19,172.232.160.21,172.232.160.17,172.232.160.15,172.232.160.18,172.232.160.8,172.232.160.12,172.232.160.11,172.232.160.14,172.232.160.16", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "fr-par", + "label": "Paris, FR", "country": "fr", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.232.32.21,172.232.32.23,172.232.32.17,172.232.32.18,172.232.32.16,172.232.32.22,172.232.32.20,172.232.32.14,172.232.32.11,172.232.32.12", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-ord", + "label": "Chicago, IL", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs + Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], + "metrics": ["Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": + {"ipv4": "172.232.0.17,172.232.0.16,172.232.0.21,172.232.0.13,172.232.0.22,172.232.0.9,172.232.0.19,172.232.0.20,172.232.0.15,172.232.0.18", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-iad", + "label": "Washington, DC", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "Kubernetes", "Cloud Firewall", "Vlans", + "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs Datacenter + LKE-E"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": + ["Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": + "139.144.192.62,139.144.192.60,139.144.192.61,139.144.192.53,139.144.192.54,139.144.192.67,139.144.192.69,139.144.192.66,139.144.192.52,139.144.192.68", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ap-southeast", + "label": "Sydney, AU", "country": "au", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "172.105.166.5,172.105.169.5,172.105.168.5,172.105.172.5,172.105.162.5,172.105.170.5,172.105.167.5,172.105.171.5,172.105.181.5,172.105.161.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ca-central", + "label": "Toronto, CA", "country": "ca", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "Block + Storage Migrations", "Managed Databases", "Metadata", "Placement Group", "StackScripts", + "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed + Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.105.0.5,172.105.3.5,172.105.4.5,172.105.5.5,172.105.6.5,172.105.7.5,172.105.8.5,172.105.9.5,172.105.10.5,172.105.11.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ap-west", + "label": "Mumbai, IN", "country": "in", "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.34.5,172.105.35.5,172.105.36.5,172.105.37.5,172.105.38.5,172.105.39.5,172.105.40.5,172.105.41.5,172.105.42.5,172.105.43.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-central", + "label": "Dallas, TX", "country": "us", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "72.14.179.5,72.14.188.5,173.255.199.5,66.228.53.5,96.126.122.5,96.126.124.5,96.126.127.5,198.58.107.5,198.58.111.5,23.239.24.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ap-northeast", + "label": "Tokyo 2, JP", "country": "jp", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "139.162.66.5,139.162.67.5,139.162.68.5,139.162.69.5,139.162.70.5,139.162.71.5,139.162.72.5,139.162.73.5,139.162.74.5,139.162.75.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "eu-central", + "label": "Frankfurt, DE", "country": "de", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "139.162.130.5,139.162.131.5,139.162.132.5,139.162.133.5,139.162.134.5,139.162.135.5,139.162.136.5,139.162.137.5,139.162.138.5,139.162.139.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ap-south", + "label": "Singapore, SG", "country": "sg", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "Block Storage Migrations", "Metadata", "Placement Group", "StackScripts", + "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": ["NodeBalancers"], + "metrics": ["NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "139.162.11.5,139.162.13.5,139.162.14.5,139.162.15.5,139.162.16.5,139.162.21.5,139.162.27.5,103.3.60.18,103.3.60.19,103.3.60.20", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "eu-west", + "label": "London, UK", "country": "gb", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Metadata", "Placement Group", "StackScripts", "Maintenance Policy", "Linode + Interfaces"], "monitors": {"alerts": ["NodeBalancers"], "metrics": ["NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "178.79.182.5, 176.58.107.5, 176.58.116.5, + 176.58.121.5, 151.236.220.5, 212.71.252.5, 212.71.253.5, 109.74.192.20, 109.74.193.20, + 109.74.194.20", "ipv6": "1234::5678, 1234::5678, 1234::5678, 1234::5678, + 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-east", + "label": "Newark, NJ", "country": "us", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "66.228.42.5,96.126.106.5,50.116.53.5,50.116.58.5,50.116.61.5,50.116.62.5,66.175.211.5,97.107.133.4,173.255.225.5,66.228.35.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-southeast", + "label": "Atlanta, GA", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "74.207.231.5,173.230.128.5,173.230.129.5,173.230.136.5,173.230.140.5,66.228.59.5,66.228.62.5,50.116.35.5,50.116.41.5,23.239.18.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-west", + "label": "Fremont, CA", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "173.230.145.5, 173.230.147.5, 173.230.155.5, 173.255.212.5, + 173.255.219.5, 173.255.241.5, 173.255.243.5, 173.255.244.5, 74.207.241.5, 74.207.242.5", + "ipv6": "1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, + 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678"}, "placement_group_limits": + {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5, "maximum_linodes_per_flexible_pg": + 5}, "site_type": "core"}], "page": 1, "pages": 1, "results": 33}' headers: Access-Control-Allow-Credentials: - "true" @@ -56,21 +368,23 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=900 - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Fri, 08 May 2026 07:42:43 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: @@ -81,14 +395,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"region":"pl-labkrk-2","label":"go-test-logs-destination-1778070608785939000","acl":"private","cors_enabled":false}' + body: '{"region":"gb-lon","label":"go-test-logs-destination-1778226163960971000","acl":"private","cors_enabled":false}' form: {} headers: Accept: @@ -100,10 +414,10 @@ interactions: url: https://api.linode.com/v4beta/object-storage/buckets method: POST response: - body: '{"hostname": "go-test-logs-destination-1778070608785939000.pl-labkrk2-1.linodeobjects.com", - "label": "go-test-logs-destination-1778070608785939000", "created": "2018-01-02T03:04:05", - "region": "pl-labkrk-2", "cluster": "pl-labkrk2-1", "size": 0, "objects": 0, - "endpoint_type": "E1", "s3_endpoint": "pl-labkrk2-1.linodeobjects.com"}' + body: '{"hostname": "go-test-logs-destination-1778226163960971000.gb-lon-1.linodeobjects.com", + "label": "go-test-logs-destination-1778226163960971000", "created": "2018-01-02T03:04:05", + "region": "gb-lon", "cluster": "", "size": 0, "objects": 0, "endpoint_type": + "E3", "s3_endpoint": "gb-lon-1.linodeobjects.com"}' headers: Access-Control-Allow-Credentials: - "true" @@ -118,17 +432,19 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: - - "349" + - "306" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Fri, 08 May 2026 07:42:49 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -143,14 +459,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "12" + - "60" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1778070609592758000"}' + body: '{"label":"go-test-logs-destination-1778226169014432000","regions":["gb-lon"]}' form: {} headers: Accept: @@ -162,10 +478,10 @@ interactions: url: https://api.linode.com/v4beta/object-storage/keys method: POST response: - body: '{"id": 340229, "label": "go-test-logs-destination-1778070609592758000", + body: '{"id": 3611787, "label": "go-test-logs-destination-1778226169014432000", "access_key": "[SANITIZED]", "secret_key": "[SANITIZED]", "limited": false, - "bucket_access": null, "regions": [{"id": "pl-labkrk-2", "s3_endpoint": "pl-labkrk2-1.linodeobjects.com", - "endpoint_type": "E1"}]}' + "bucket_access": null, "regions": [{"id": "gb-lon", "s3_endpoint": "gb-lon-1.linodeobjects.com", + "endpoint_type": "E3"}]}' headers: Access-Control-Allow-Credentials: - "true" @@ -180,17 +496,19 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: - - "325" + - "308" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Fri, 08 May 2026 07:42:51 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -205,14 +523,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "12" + - "60" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1778070610236920000","type":"akamai_object_storage","details":{"access_key_id":"L3G818UP71COR0RIMUAN","access_key_secret":"Kf7uBbRv8WF2NslnZA9XIrLOEQhSHkax0PK3U3b7","bucket_name":"go-test-logs-destination-1778070608785939000","host":"go-test-logs-destination-1778070608785939000.pl-labkrk2-1.linodeobjects.com"}}' + body: '{"label":"go-test-logs-destination-1778226171258587000","type":"akamai_object_storage","details":{"access_key_id":"AVZO08HUC1HZD72SJGAI","access_key_secret":"qZqKu4to9a6Xa3ONrvS0imFI1RTqm8J5758yTim8","bucket_name":"go-test-logs-destination-1778226163960971000","host":"go-test-logs-destination-1778226163960971000.gb-lon-1.linodeobjects.com"}}' form: {} headers: Accept: @@ -224,11 +542,11 @@ interactions: url: https://api.linode.com/v4beta/monitor/streams/destinations method: POST response: - body: '{"id": 1090, "label": "go-test-logs-destination-1778070610236920000", "type": - "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778070608785939000.pl-labkrk2-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1778070608785939000", "access_key_id": - "L3G818UP71COR0RIMUAN"}, "version": 1, "status": "active", "created_by": "klipensk-aclp", - "created": "2018-01-02T03:04:05", "updated_by": "klipensk-aclp", "updated": + body: '{"id": 446, "label": "go-test-logs-destination-1778226171258587000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778226163960971000.gb-lon-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1778226163960971000", "access_key_id": + "AVZO08HUC1HZD72SJGAI"}, "version": 1, "status": "active", "created_by": "dola-klipensk", + "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": "2018-01-02T03:04:05"}' headers: Access-Control-Allow-Credentials: @@ -244,17 +562,19 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: - - "479" + - "465" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Fri, 08 May 2026 07:42:52 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -269,14 +589,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"destinations":[1090],"label":"go-test-log-stream-1778070612105601000","type":"audit_logs"}' + body: '{"destinations":[446],"label":"go-test-log-stream-1778226172478846000","type":"audit_logs"}' form: {} headers: Accept: @@ -288,14 +608,14 @@ interactions: url: https://api.linode.com/v4beta/monitor/streams method: POST response: - body: '{"id": 2121, "label": "go-test-log-stream-1778070612105601000", "type": - "audit_logs", "destinations": [{"id": 1090, "type": "akamai_object_storage", - "label": "go-test-logs-destination-1778070610236920000", "details": {"host": - "go-test-logs-destination-1778070608785939000.pl-labkrk2-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1778070608785939000", "access_key_id": - "L3G818UP71COR0RIMUAN"}}], "details": null, "version": 1, "status": "provisioning", - "created_by": "klipensk-aclp", "created": "2018-01-02T03:04:05", "updated_by": - "klipensk-aclp", "updated": "2018-01-02T03:04:05"}' + body: '{"id": 189, "label": "go-test-log-stream-1778226172478846000", "type": + "audit_logs", "destinations": [{"id": 446, "type": "akamai_object_storage", + "label": "go-test-logs-destination-1778226171258587000", "details": {"host": + "go-test-logs-destination-1778226163960971000.gb-lon-1.linodeobjects.com", "bucket_name": + "go-test-logs-destination-1778226163960971000", "access_key_id": "AVZO08HUC1HZD72SJGAI"}}], + "details": null, "version": 1, "status": "provisioning", "created_by": "dola-klipensk", + "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": + "2018-01-02T03:04:05"}' headers: Access-Control-Allow-Credentials: - "true" @@ -310,17 +630,19 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: - - "607" + - "592" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Fri, 08 May 2026 07:42:52 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -335,7 +657,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -351,17 +673,17 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/2121 + url: https://api.linode.com/v4beta/monitor/streams/189 method: GET response: - body: '{"id": 2121, "label": "go-test-log-stream-1778070612105601000", "type": - "audit_logs", "destinations": [{"id": 1090, "type": "akamai_object_storage", - "label": "go-test-logs-destination-1778070610236920000", "details": {"host": - "go-test-logs-destination-1778070608785939000.pl-labkrk2-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1778070608785939000", "access_key_id": - "L3G818UP71COR0RIMUAN"}}], "details": null, "version": 1, "status": "active", - "created_by": "klipensk-aclp", "created": "2018-01-02T03:04:05", "updated_by": - "klipensk-aclp", "updated": "2018-01-02T03:04:05"}' + body: '{"id": 189, "label": "go-test-log-stream-1778226172478846000", "type": + "audit_logs", "destinations": [{"id": 446, "type": "akamai_object_storage", + "label": "go-test-logs-destination-1778226171258587000", "details": {"host": + "go-test-logs-destination-1778226163960971000.gb-lon-1.linodeobjects.com", "bucket_name": + "go-test-logs-destination-1778226163960971000", "access_key_id": "AVZO08HUC1HZD72SJGAI"}}], + "details": null, "version": 1, "status": "active", "created_by": "dola-klipensk", + "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": + "2018-01-02T03:04:05"}' headers: Access-Control-Allow-Credentials: - "true" @@ -376,18 +698,19 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=0, s-maxage=0, no-cache, no-store - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: - - "602" + - "592" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Fri, 08 May 2026 07:42:53 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -403,7 +726,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -419,7 +742,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/2121 + url: https://api.linode.com/v4beta/monitor/streams/189 method: DELETE response: body: '{}' @@ -437,7 +760,7 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: @@ -446,8 +769,10 @@ interactions: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Fri, 08 May 2026 08:17:08 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -462,7 +787,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -478,7 +803,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/2121 + url: https://api.linode.com/v4beta/monitor/streams/189 method: GET response: body: '{"errors": [{"reason": "Stream not found"}]}' @@ -492,15 +817,19 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=0, s-maxage=0, no-cache, no-store + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: - "44" Content-Type: - application/json - Server: - - nginx + Expires: + - Fri, 08 May 2026 08:17:09 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 Vary: - Authorization, X-Filter X-Accepted-Oauth-Scopes: @@ -510,8 +839,8 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" - status: 404 NOT FOUND + - "1840" + status: 404 Not Found code: 404 duration: "" - request: @@ -524,8 +853,8 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/2121 - method: DELETE + url: https://api.linode.com/v4beta/monitor/streams/189 + method: GET response: body: '{"errors": [{"reason": "Stream not found"}]}' headers: @@ -537,23 +866,31 @@ interactions: - '*' Akamai-Internal-Account: - '*' + Cache-Control: + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: - "44" Content-Type: - application/json - Server: - - nginx + Expires: + - Fri, 08 May 2026 08:17:09 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter X-Accepted-Oauth-Scopes: - - monitor:read_write + - monitor:read_only X-Frame-Options: - DENY X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" - status: 404 NOT FOUND + - "1840" + status: 404 Not Found code: 404 duration: "" - request: @@ -566,14 +903,14 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations/1090 + url: https://api.linode.com/v4beta/monitor/streams/destinations/446 method: GET response: - body: '{"id": 1090, "label": "go-test-logs-destination-1778070610236920000", "type": - "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778070608785939000.pl-labkrk2-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1778070608785939000", "access_key_id": - "L3G818UP71COR0RIMUAN"}, "version": 1, "status": "active", "created_by": "klipensk-aclp", - "created": "2018-01-02T03:04:05", "updated_by": "klipensk-aclp", "updated": + body: '{"id": 446, "label": "go-test-logs-destination-1778226171258587000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778226163960971000.gb-lon-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1778226163960971000", "access_key_id": + "AVZO08HUC1HZD72SJGAI"}, "version": 1, "status": "active", "created_by": "dola-klipensk", + "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": "2018-01-02T03:04:05"}' headers: Access-Control-Allow-Credentials: @@ -589,18 +926,19 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=0, s-maxage=0, no-cache, no-store - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: - - "479" + - "465" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Fri, 08 May 2026 08:17:09 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -616,7 +954,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -632,7 +970,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations/1090 + url: https://api.linode.com/v4beta/monitor/streams/destinations/446 method: DELETE response: body: '{}' @@ -650,7 +988,7 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: @@ -659,8 +997,10 @@ interactions: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Fri, 08 May 2026 08:17:09 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -675,7 +1015,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -691,7 +1031,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/keys/340229 + url: https://api.linode.com/v4beta/object-storage/keys/3611787 method: DELETE response: body: '{}' @@ -709,7 +1049,7 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: @@ -718,8 +1058,10 @@ interactions: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Fri, 08 May 2026 08:17:10 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -734,7 +1076,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "12" + - "60" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -750,12 +1092,14 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/pl-labkrk-2/go-test-logs-destination-1778070608785939000/object-list + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778226163960971000/object-list method: GET response: - body: '{"data": [{"name": "cloud-logs-test-connection-20260506T123011", "size": - 9, "last_modified": "2018-01-02T03:04:05.426Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", - "owner": "512fe32a-48a2-4a57-8a11-0eef806858d3"}], "next_marker": null, "is_truncated": + body: '{"data": [{"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/08/akamai_log-413471-1778228079-728823-config.gz", + "size": 577, "last_modified": "2018-01-02T03:04:05.524Z", "etag": "f0800b07381589931479dd06450c6bea", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "cloud-logs-test-connection-20260508T074251", + "size": 9, "last_modified": "2018-01-02T03:04:05.115Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}], "next_marker": null, "is_truncated": false}' headers: Access-Control-Allow-Credentials: @@ -771,18 +1115,19 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=0, s-maxage=0, no-cache, no-store - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: - - "259" + - "544" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Fri, 08 May 2026 08:17:12 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -798,14 +1143,75 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" +- request: + body: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/08/akamai_log-413471-1778228079-728823-config.gz","method":"DELETE","expires_in":360}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778226163960971000/object-url + method: POST + response: + body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-destination-1778226163960971000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/08/akamai_log-413471-1778228079-728823-config.gz?Signature=mbp0dBYJoVQHXOXGHQIjEp%2FJsAQ%3D&Expires=1778228597&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCgp/RzgGMYwmQJxYDzYtP48xDtAbnSc19gmGAsj0JNo8IMEr1XBBr0OD1pkkyDKtecbHL9wgwmRKQO9ZMA0Tnk8JCkMDc73/xxEWydqqaHHPM7kfPxo7qJ4P34nVYMIWM7cKXHks5/GEbEjAhL5jASTcpntXj7kS0wAVOILOu/ZB2uSZ41aDft6c8C1gvIXYKnRZvwMyZPltVXIwVeBac6aJG9Xg0Itc6PPPteU0bZt63lOZy9QfvATLfvBIwgUymtQG5abt1fhgfoSHQJB7tbLsm8w8HJG5JuEdBcBNj2XcPYk/qWcVkKJYKdaVw87jTzeUAq%2B8L0IBu60702OrE601SRNSU7/alPEmMMYwHkmnfEEpRdZsPeRhVRjHmOumgf60yoaK6o3Ep7CgQAI0WRNUYutL5ZgXBBKbFvxnaKu2S6kS5Qi5E0%2Bu0b/BU4ttpgAvcSO1vKNyH56BMxxvs4sL1pyP", + "exists": true}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Fri, 08 May 2026 08:17:17 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - object_storage: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: '{"name":"cloud-logs-test-connection-20260506T123011","method":"DELETE","expires_in":360}' + body: '{"name":"cloud-logs-test-connection-20260508T074251","method":"DELETE","expires_in":360}' form: {} headers: Accept: @@ -814,10 +1220,10 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/pl-labkrk-2/go-test-logs-destination-1778070608785939000/object-url + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778226163960971000/object-url method: POST response: - body: '{"url": "https://pl-labkrk2-1.linodeobjects.com:443/go-test-logs-destination-1778070608785939000/cloud-logs-test-connection-20260506T123011?Signature=HbmeMtjF%2Fx7Wd8ZdtcFy%2BTmhZ8c%3D&Expires=1778072775&AWSAccessKeyID=SANITIZED", + body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-destination-1778226163960971000/cloud-logs-test-connection-20260508T074251?Signature=Xt8OmNryklURsDz%2BHrSGnGnQqsI%3D&Expires=1778228601&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCmQNXdhL2O4910vxxTVPNn785eDlWUomW/Cj8KBeFkvgfzL9MOXmfk6Y3o7LSmV/JrM8KtPI/kZZ20WmlHCJacZtH0MXE5hPq4KtgqSVNEf4ox00eueVhASjwnzVg4PoGHAN0MRFaStNkBf4cydaxrvX9RxbQmIg8eSS4QLkuHnAP//k%2BABgZNwJU/zY/h5ycDhwMcElb9xIolx%2BRqBFb0HTABwZrKAblRIFoaOgdIYcTFwlzZW2hq6lFI%2BrD7UkJ82nbeXW%2B9fs169UnyxRAr0bcsuTbxXLmb8pfs0R591joXb5OhwxC6DvGJb7YnuFIF2yatsS%2BXZEzgqPiEnQ7h1OecK3lSpxpqeHhUg77Zl1rWsGAPEVn52WAsOwMrSW2bQ5r/ePvWorCD4Vpy22hjPQM9BKPMP9v8jMGZXzy6KJMXoYhVdM6SfHiRYHfjqp66wFZ8jTCNit4RMFQVShelNQ1Hwz", "exists": true}' headers: Access-Control-Allow-Credentials: @@ -833,17 +1239,19 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: - - "266" + - "847" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Fri, 08 May 2026 08:17:21 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -858,7 +1266,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -874,7 +1282,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/pl-labkrk-2/go-test-logs-destination-1778070608785939000 + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778226163960971000 method: DELETE response: body: '{}' @@ -892,7 +1300,7 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: @@ -901,8 +1309,10 @@ interactions: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Fri, 08 May 2026 08:17:28 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -917,7 +1327,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" X-Xss-Protection: - 1; mode=block status: 200 OK diff --git a/test/integration/fixtures/TestLogStream_Get.yaml b/test/integration/fixtures/TestLogStream_Get.yaml index b88c5e1f1..a86155845 100644 --- a/test/integration/fixtures/TestLogStream_Get.yaml +++ b/test/integration/fixtures/TestLogStream_Get.yaml @@ -14,34 +14,346 @@ interactions: url: https://api.linode.com/v4beta/regions?page=1 method: GET response: - body: '{"data": [{"id": "pl-labkrk-2", "label": "Krakow, PL", "country": "pl", - "capabilities": ["Linodes", "Block Storage Encryption", "LA Disk Encryption", - "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", "Object Storage", - "GPU Linodes", "Kubernetes", "Kubernetes Enterprise", "Cloud Firewall", "Vlans", - "VPCs", "Block Storage Migrations", "Managed Databases", "Metadata", "Premium - Plans", "Placement Group", "StackScripts", "NETINT Quadra T1U", "Maintenance - Policy", "Linode Interfaces", "Network LoadBalancer", "ACLP Logs Datacenter - LKE-E"], "monitors": {"alerts": ["Block Storage", "Cloud Firewall", "Kubernetes", - "Linodes", "Managed Databases", "Network LoadBalancer", "NodeBalancers", "Object - Storage", "logs"], "metrics": ["Block Storage", "Cloud Firewall", "Kubernetes", - "Linodes", "Managed Databases", "Network LoadBalancer", "NodeBalancers", "Object - Storage", "logs"]}, "status": "ok", "resolvers": {"ipv4": "172.24.224.240,172.24.224.229,172.24.224.236,172.24.224.238,172.24.224.235,172.24.224.241,172.24.224.230,172.24.224.239,172.24.224.233,172.24.224.234", + body: '{"data": [{"id": "gb-lon", "label": "London 2, UK", "country": "gb", "capabilities": + ["Linodes", "Block Storage Encryption", "LA Disk Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "Object Storage", "GPU Linodes", + "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", + "Premium Plans", "Placement Group", "StackScripts", "NETINT Quadra T1U", "Maintenance + Policy", "Linode Interfaces", "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": + ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.236.0.46,172.236.0.50,172.236.0.47,172.236.0.53,172.236.0.52,172.236.0.45,172.236.0.49,172.236.0.51,172.236.0.54,172.236.0.48", "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": - 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-labedgeeat-2", - "label": "East Wenatchee, US", "country": "us", "capabilities": ["Linodes", - "Disk Encryption", "Cloud Firewall", "Vlans", "VPCs", "Metadata", "Distributed - Plans", "Linode Interfaces"], "monitors": {"alerts": [], "metrics": []}, "status": - "ok", "resolvers": {"ipv4": "173.223.100.53,173.223.101.53", "ipv6": "1234::5678,1234::5678"}, - "placement_group_limits": {"maximum_pgs_per_customer": 0, "maximum_linodes_per_pg": - 0, "maximum_linodes_per_flexible_pg": 0}, "site_type": "distributed"}, {"id": - "us-labedgeeat-3", "label": "East Wenatchee, US", "country": "us", "capabilities": - ["Linodes", "Disk Encryption", "Cloud Firewall", "Metadata", "Distributed Plans"], - "monitors": {"alerts": [], "metrics": []}, "status": "ok", "resolvers": {"ipv4": - "173.223.100.53,173.223.101.53", "ipv6": "1234::5678,1234::5678"}, - "placement_group_limits": {"maximum_pgs_per_customer": 0, "maximum_linodes_per_pg": - 0, "maximum_linodes_per_flexible_pg": 0}, "site_type": "distributed"}], "page": - 1, "pages": 1, "results": 3}' + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "se-sto", + "label": "Stockholm, SE", "country": "se", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.232.128.24,172.232.128.26,172.232.128.20,172.232.128.22,172.232.128.25,172.232.128.19,172.232.128.23,172.232.128.18,172.232.128.21,172.232.128.27", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "es-mad", + "label": "Madrid, ES", "country": "es", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.233.111.6,172.233.111.17,172.233.111.21,172.233.111.25,172.233.111.19,172.233.111.12,172.233.111.26,172.233.111.16,172.233.111.18,172.233.111.9", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "in-maa", + "label": "Chennai, IN", "country": "in", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces"], + "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed + Databases", "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.232.96.17,172.232.96.26,172.232.96.19,172.232.96.20,172.232.96.25,172.232.96.21,172.232.96.18,172.232.96.22,172.232.96.23,172.232.96.24", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "jp-osa", + "label": "Osaka, JP", "country": "jp", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.233.64.44,172.233.64.43,172.233.64.37,172.233.64.40,172.233.64.46,172.233.64.41,172.233.64.39,172.233.64.42,172.233.64.45,172.233.64.38", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "it-mil", + "label": "Milan, IT", "country": "it", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.232.192.19,172.232.192.18,172.232.192.16,172.232.192.20,172.232.192.24,172.232.192.21,172.232.192.22,172.232.192.17,172.232.192.15,172.232.192.23", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-mia", + "label": "Miami, FL", "country": "us", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces"], + "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed + Databases", "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.233.160.34,172.233.160.27,172.233.160.30,172.233.160.29,172.233.160.32,172.233.160.28,172.233.160.33,172.233.160.26,172.233.160.25,172.233.160.31", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "id-cgk", + "label": "Jakarta, ID", "country": "id", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.232.224.23,172.232.224.32,172.232.224.26,172.232.224.27,172.232.224.21,172.232.224.24,172.232.224.22,172.232.224.20,172.232.224.31,172.232.224.28", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-lax", + "label": "Los Angeles, CA", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces", + "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "172.233.128.45,172.233.128.38,172.233.128.53,172.233.128.37,172.233.128.34,172.233.128.36,172.233.128.33,172.233.128.39,172.233.128.43,172.233.128.44", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "nl-ams", + "label": "Amsterdam, NL", "country": "nl", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.233.33.36,172.233.33.38,172.233.33.35,172.233.33.39,172.233.33.34,172.233.33.33,172.233.33.31,172.233.33.30,172.233.33.37,172.233.33.32", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "au-mel", + "label": "Melbourne, AU", "country": "au", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "Kubernetes", "Cloud Firewall", "Vlans", + "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": + ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.236.32.23,172.236.32.35,172.236.32.30,172.236.32.28,172.236.32.32,172.236.32.33,172.236.32.27,172.236.32.37,172.236.32.29,172.236.32.34", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "in-bom-2", + "label": "Mumbai 2, IN", "country": "in", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", + "Managed Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts", + "Maintenance Policy", "Linode Interfaces", "ACLP Logs Datacenter LKE-E"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.236.171.41,172.236.171.42,172.236.171.25,172.236.171.44,172.236.171.26,172.236.171.45,172.236.171.24,172.236.171.43,172.236.171.27,172.236.171.28", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "de-fra-2", + "label": "Frankfurt 2, DE", "country": "de", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces", + "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "172.236.203.9,172.236.203.16,172.236.203.19,172.236.203.15,172.236.203.17,172.236.203.11,172.236.203.18,172.236.203.14,172.236.203.13,172.236.203.12", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "sg-sin-2", + "label": "Singapore 2, SG", "country": "sg", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs + Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], + "metrics": ["Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": + {"ipv4": "172.236.129.8,172.236.129.42,172.236.129.41,172.236.129.19,172.236.129.46,172.236.129.23,172.236.129.48,172.236.129.20,172.236.129.21,172.236.129.47", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "jp-tyo-3", + "label": "Tokyo 3, JP", "country": "jp", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs + Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], + "metrics": ["Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": + {"ipv4": "172.237.4.15,172.237.4.19,172.237.4.17,172.237.4.21,172.237.4.16,172.237.4.18,172.237.4.23,172.237.4.24,172.237.4.20,172.237.4.14", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-iad-2", + "label": "Washington 2, DC", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", + "Object Storage", "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Managed + Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts", + "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed + Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "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": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "fr-par-2", + "label": "Paris 2, FR", "country": "fr", "capabilities": ["Linodes", "Block + Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", + "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces", "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": + ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.239.11.24,172.239.11.22,172.239.11.17,172.239.11.20,172.239.11.23,172.239.11.19,172.239.11.21,172.239.11.15,172.239.11.16,172.239.11.18", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "br-gru", + "label": "Sao Paulo, BR", "country": "br", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "Kubernetes", "Cloud Firewall", "Vlans", + "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": + ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.233.0.4,172.233.0.9,172.233.0.7,172.233.0.12,172.233.0.5,172.233.0.13,172.233.0.10,172.233.0.6,172.233.0.8,172.233.0.11", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-sea", + "label": "Seattle, WA", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs + Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], + "metrics": ["Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": + {"ipv4": "172.232.160.19,172.232.160.21,172.232.160.17,172.232.160.15,172.232.160.18,172.232.160.8,172.232.160.12,172.232.160.11,172.232.160.14,172.232.160.16", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "fr-par", + "label": "Paris, FR", "country": "fr", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.232.32.21,172.232.32.23,172.232.32.17,172.232.32.18,172.232.32.16,172.232.32.22,172.232.32.20,172.232.32.14,172.232.32.11,172.232.32.12", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-ord", + "label": "Chicago, IL", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs + Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], + "metrics": ["Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": + {"ipv4": "172.232.0.17,172.232.0.16,172.232.0.21,172.232.0.13,172.232.0.22,172.232.0.9,172.232.0.19,172.232.0.20,172.232.0.15,172.232.0.18", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-iad", + "label": "Washington, DC", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "Kubernetes", "Cloud Firewall", "Vlans", + "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs Datacenter + LKE-E"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": + ["Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": + "139.144.192.62,139.144.192.60,139.144.192.61,139.144.192.53,139.144.192.54,139.144.192.67,139.144.192.69,139.144.192.66,139.144.192.52,139.144.192.68", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ap-southeast", + "label": "Sydney, AU", "country": "au", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "172.105.166.5,172.105.169.5,172.105.168.5,172.105.172.5,172.105.162.5,172.105.170.5,172.105.167.5,172.105.171.5,172.105.181.5,172.105.161.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ca-central", + "label": "Toronto, CA", "country": "ca", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "Block + Storage Migrations", "Managed Databases", "Metadata", "Placement Group", "StackScripts", + "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed + Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.105.0.5,172.105.3.5,172.105.4.5,172.105.5.5,172.105.6.5,172.105.7.5,172.105.8.5,172.105.9.5,172.105.10.5,172.105.11.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ap-west", + "label": "Mumbai, IN", "country": "in", "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.34.5,172.105.35.5,172.105.36.5,172.105.37.5,172.105.38.5,172.105.39.5,172.105.40.5,172.105.41.5,172.105.42.5,172.105.43.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-central", + "label": "Dallas, TX", "country": "us", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "72.14.179.5,72.14.188.5,173.255.199.5,66.228.53.5,96.126.122.5,96.126.124.5,96.126.127.5,198.58.107.5,198.58.111.5,23.239.24.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ap-northeast", + "label": "Tokyo 2, JP", "country": "jp", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "139.162.66.5,139.162.67.5,139.162.68.5,139.162.69.5,139.162.70.5,139.162.71.5,139.162.72.5,139.162.73.5,139.162.74.5,139.162.75.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "eu-central", + "label": "Frankfurt, DE", "country": "de", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "139.162.130.5,139.162.131.5,139.162.132.5,139.162.133.5,139.162.134.5,139.162.135.5,139.162.136.5,139.162.137.5,139.162.138.5,139.162.139.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ap-south", + "label": "Singapore, SG", "country": "sg", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "Block Storage Migrations", "Metadata", "Placement Group", "StackScripts", + "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": ["NodeBalancers"], + "metrics": ["NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "139.162.11.5,139.162.13.5,139.162.14.5,139.162.15.5,139.162.16.5,139.162.21.5,139.162.27.5,103.3.60.18,103.3.60.19,103.3.60.20", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "eu-west", + "label": "London, UK", "country": "gb", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Metadata", "Placement Group", "StackScripts", "Maintenance Policy", "Linode + Interfaces"], "monitors": {"alerts": ["NodeBalancers"], "metrics": ["NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "178.79.182.5, 176.58.107.5, 176.58.116.5, + 176.58.121.5, 151.236.220.5, 212.71.252.5, 212.71.253.5, 109.74.192.20, 109.74.193.20, + 109.74.194.20", "ipv6": "1234::5678, 1234::5678, 1234::5678, 1234::5678, + 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-east", + "label": "Newark, NJ", "country": "us", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "66.228.42.5,96.126.106.5,50.116.53.5,50.116.58.5,50.116.61.5,50.116.62.5,66.175.211.5,97.107.133.4,173.255.225.5,66.228.35.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-southeast", + "label": "Atlanta, GA", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "74.207.231.5,173.230.128.5,173.230.129.5,173.230.136.5,173.230.140.5,66.228.59.5,66.228.62.5,50.116.35.5,50.116.41.5,23.239.18.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-west", + "label": "Fremont, CA", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "173.230.145.5, 173.230.147.5, 173.230.155.5, 173.255.212.5, + 173.255.219.5, 173.255.241.5, 173.255.243.5, 173.255.244.5, 74.207.241.5, 74.207.242.5", + "ipv6": "1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, + 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678"}, "placement_group_limits": + {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5, "maximum_linodes_per_flexible_pg": + 5}, "site_type": "core"}], "page": 1, "pages": 1, "results": 33}' headers: Access-Control-Allow-Credentials: - "true" @@ -56,21 +368,23 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=900 - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Fri, 08 May 2026 10:12:51 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: @@ -81,14 +395,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"region":"pl-labkrk-2","label":"go-test-logs-destination-1778077361692714000","acl":"private","cors_enabled":false}' + body: '{"region":"gb-lon","label":"go-test-logs-destination-1778235171706060000","acl":"private","cors_enabled":false}' form: {} headers: Accept: @@ -100,10 +414,10 @@ interactions: url: https://api.linode.com/v4beta/object-storage/buckets method: POST response: - body: '{"hostname": "go-test-logs-destination-1778077361692714000.pl-labkrk2-1.linodeobjects.com", - "label": "go-test-logs-destination-1778077361692714000", "created": "2018-01-02T03:04:05", - "region": "pl-labkrk-2", "cluster": "pl-labkrk2-1", "size": 0, "objects": 0, - "endpoint_type": "E1", "s3_endpoint": "pl-labkrk2-1.linodeobjects.com"}' + body: '{"hostname": "go-test-logs-destination-1778235171706060000.gb-lon-1.linodeobjects.com", + "label": "go-test-logs-destination-1778235171706060000", "created": "2018-01-02T03:04:05", + "region": "gb-lon", "cluster": "", "size": 0, "objects": 0, "endpoint_type": + "E3", "s3_endpoint": "gb-lon-1.linodeobjects.com"}' headers: Access-Control-Allow-Credentials: - "true" @@ -118,17 +432,19 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: - - "349" + - "306" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Fri, 08 May 2026 10:12:55 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -143,14 +459,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "12" + - "60" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1778077362450834000"}' + body: '{"label":"go-test-logs-destination-1778235175701451000","regions":["gb-lon"]}' form: {} headers: Accept: @@ -162,10 +478,10 @@ interactions: url: https://api.linode.com/v4beta/object-storage/keys method: POST response: - body: '{"id": 340471, "label": "go-test-logs-destination-1778077362450834000", + body: '{"id": 3613668, "label": "go-test-logs-destination-1778235175701451000", "access_key": "[SANITIZED]", "secret_key": "[SANITIZED]", "limited": false, - "bucket_access": null, "regions": [{"id": "pl-labkrk-2", "s3_endpoint": "pl-labkrk2-1.linodeobjects.com", - "endpoint_type": "E1"}]}' + "bucket_access": null, "regions": [{"id": "gb-lon", "s3_endpoint": "gb-lon-1.linodeobjects.com", + "endpoint_type": "E3"}]}' headers: Access-Control-Allow-Credentials: - "true" @@ -180,17 +496,19 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: - - "325" + - "308" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Fri, 08 May 2026 10:12:57 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -205,14 +523,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "12" + - "60" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1778077363114776000","type":"akamai_object_storage","details":{"access_key_id":"KU09RCXVUJUB9I7Q6ZSD","access_key_secret":"GswNLX4wQRRLeDwYIsyolZJjREZ77H5XZaBYcw5L","bucket_name":"go-test-logs-destination-1778077361692714000","host":"go-test-logs-destination-1778077361692714000.pl-labkrk2-1.linodeobjects.com"}}' + body: '{"label":"go-test-logs-destination-1778235177676694000","type":"akamai_object_storage","details":{"access_key_id":"VGZIU2RGOJJFOA0B7CVI","access_key_secret":"mIs0q1pfOOFFprjtzKGUL5YaUiFT8AK7dYW5ByUC","bucket_name":"go-test-logs-destination-1778235171706060000","host":"go-test-logs-destination-1778235171706060000.gb-lon-1.linodeobjects.com"}}' form: {} headers: Accept: @@ -224,11 +542,11 @@ interactions: url: https://api.linode.com/v4beta/monitor/streams/destinations method: POST response: - body: '{"id": 1094, "label": "go-test-logs-destination-1778077363114776000", "type": - "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778077361692714000.pl-labkrk2-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1778077361692714000", "access_key_id": - "KU09RCXVUJUB9I7Q6ZSD"}, "version": 1, "status": "active", "created_by": "klipensk-aclp", - "created": "2018-01-02T03:04:05", "updated_by": "klipensk-aclp", "updated": + body: '{"id": 450, "label": "go-test-logs-destination-1778235177676694000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778235171706060000.gb-lon-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1778235171706060000", "access_key_id": + "VGZIU2RGOJJFOA0B7CVI"}, "version": 1, "status": "active", "created_by": "dola-klipensk", + "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": "2018-01-02T03:04:05"}' headers: Access-Control-Allow-Credentials: @@ -244,17 +562,19 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: - - "479" + - "465" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Fri, 08 May 2026 10:12:58 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -269,14 +589,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"destinations":[1094],"label":"go-test-log-stream-1778077365217644000","type":"audit_logs"}' + body: '{"destinations":[450],"label":"go-test-log-stream-1778235178909904000","type":"audit_logs"}' form: {} headers: Accept: @@ -288,14 +608,14 @@ interactions: url: https://api.linode.com/v4beta/monitor/streams method: POST response: - body: '{"id": 2124, "label": "go-test-log-stream-1778077365217644000", "type": - "audit_logs", "destinations": [{"id": 1094, "type": "akamai_object_storage", - "label": "go-test-logs-destination-1778077363114776000", "details": {"host": - "go-test-logs-destination-1778077361692714000.pl-labkrk2-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1778077361692714000", "access_key_id": - "KU09RCXVUJUB9I7Q6ZSD"}}], "details": null, "version": 1, "status": "provisioning", - "created_by": "klipensk-aclp", "created": "2018-01-02T03:04:05", "updated_by": - "klipensk-aclp", "updated": "2018-01-02T03:04:05"}' + body: '{"id": 192, "label": "go-test-log-stream-1778235178909904000", "type": + "audit_logs", "destinations": [{"id": 450, "type": "akamai_object_storage", + "label": "go-test-logs-destination-1778235177676694000", "details": {"host": + "go-test-logs-destination-1778235171706060000.gb-lon-1.linodeobjects.com", "bucket_name": + "go-test-logs-destination-1778235171706060000", "access_key_id": "VGZIU2RGOJJFOA0B7CVI"}}], + "details": null, "version": 1, "status": "provisioning", "created_by": "dola-klipensk", + "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": + "2018-01-02T03:04:05"}' headers: Access-Control-Allow-Credentials: - "true" @@ -310,17 +630,19 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: - - "607" + - "592" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Fri, 08 May 2026 10:12:59 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -335,7 +657,76 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "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/monitor/streams/192 + method: GET + response: + body: '{"id": 192, "label": "go-test-log-stream-1778235178909904000", "type": + "audit_logs", "destinations": [{"id": 450, "type": "akamai_object_storage", + "label": "go-test-logs-destination-1778235177676694000", "details": {"host": + "go-test-logs-destination-1778235171706060000.gb-lon-1.linodeobjects.com", "bucket_name": + "go-test-logs-destination-1778235171706060000", "access_key_id": "VGZIU2RGOJJFOA0B7CVI"}}], + "details": null, "version": 1, "status": "active", "created_by": "dola-klipensk", + "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": + "2018-01-02T03:04:05"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Length: + - "592" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Fri, 08 May 2026 10:12:59 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - monitor: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 @@ -351,17 +742,17 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/2124 + url: https://api.linode.com/v4beta/monitor/streams/192 method: GET response: - body: '{"id": 2124, "label": "go-test-log-stream-1778077365217644000", "type": - "audit_logs", "destinations": [{"id": 1094, "type": "akamai_object_storage", - "label": "go-test-logs-destination-1778077363114776000", "details": {"host": - "go-test-logs-destination-1778077361692714000.pl-labkrk2-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1778077361692714000", "access_key_id": - "KU09RCXVUJUB9I7Q6ZSD"}}], "details": null, "version": 1, "status": "active", - "created_by": "klipensk-aclp", "created": "2018-01-02T03:04:05", "updated_by": - "klipensk-aclp", "updated": "2018-01-02T03:04:05"}' + body: '{"id": 192, "label": "go-test-log-stream-1778235178909904000", "type": + "audit_logs", "destinations": [{"id": 450, "type": "akamai_object_storage", + "label": "go-test-logs-destination-1778235177676694000", "details": {"host": + "go-test-logs-destination-1778235171706060000.gb-lon-1.linodeobjects.com", "bucket_name": + "go-test-logs-destination-1778235171706060000", "access_key_id": "VGZIU2RGOJJFOA0B7CVI"}}], + "details": null, "version": 1, "status": "active", "created_by": "dola-klipensk", + "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": + "2018-01-02T03:04:05"}' headers: Access-Control-Allow-Credentials: - "true" @@ -376,18 +767,19 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=0, s-maxage=0, no-cache, no-store - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: - - "602" + - "592" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Fri, 08 May 2026 10:12:59 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -403,7 +795,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -419,17 +811,17 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/2124 + url: https://api.linode.com/v4beta/monitor/streams/192 method: GET response: - body: '{"id": 2124, "label": "go-test-log-stream-1778077365217644000", "type": - "audit_logs", "destinations": [{"id": 1094, "type": "akamai_object_storage", - "label": "go-test-logs-destination-1778077363114776000", "details": {"host": - "go-test-logs-destination-1778077361692714000.pl-labkrk2-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1778077361692714000", "access_key_id": - "KU09RCXVUJUB9I7Q6ZSD"}}], "details": null, "version": 1, "status": "active", - "created_by": "klipensk-aclp", "created": "2018-01-02T03:04:05", "updated_by": - "klipensk-aclp", "updated": "2018-01-02T03:04:05"}' + body: '{"id": 192, "label": "go-test-log-stream-1778235178909904000", "type": + "audit_logs", "destinations": [{"id": 450, "type": "akamai_object_storage", + "label": "go-test-logs-destination-1778235177676694000", "details": {"host": + "go-test-logs-destination-1778235171706060000.gb-lon-1.linodeobjects.com", "bucket_name": + "go-test-logs-destination-1778235171706060000", "access_key_id": "VGZIU2RGOJJFOA0B7CVI"}}], + "details": null, "version": 1, "status": "active", "created_by": "dola-klipensk", + "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": + "2018-01-02T03:04:05"}' headers: Access-Control-Allow-Credentials: - "true" @@ -444,18 +836,19 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=0, s-maxage=0, no-cache, no-store - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: - - "601" + - "592" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Fri, 08 May 2026 10:12:59 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -471,7 +864,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -487,7 +880,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/2124 + url: https://api.linode.com/v4beta/monitor/streams/192 method: DELETE response: body: '{}' @@ -505,7 +898,7 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: @@ -514,8 +907,10 @@ interactions: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Fri, 08 May 2026 10:37:15 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -530,7 +925,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -546,14 +941,64 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations/1094 + url: https://api.linode.com/v4beta/monitor/streams/192 + method: GET + response: + body: '{"errors": [{"reason": "Stream not found"}]}' + headers: + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Length: + - "44" + Content-Type: + - application/json + Expires: + - Fri, 08 May 2026 10:37:15 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - monitor:read_only + X-Frame-Options: + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "1840" + status: 404 Not Found + code: 404 + 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/monitor/streams/destinations/450 method: GET response: - body: '{"id": 1094, "label": "go-test-logs-destination-1778077363114776000", "type": - "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778077361692714000.pl-labkrk2-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1778077361692714000", "access_key_id": - "KU09RCXVUJUB9I7Q6ZSD"}, "version": 1, "status": "active", "created_by": "klipensk-aclp", - "created": "2018-01-02T03:04:05", "updated_by": "klipensk-aclp", "updated": + body: '{"id": 450, "label": "go-test-logs-destination-1778235177676694000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778235171706060000.gb-lon-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1778235171706060000", "access_key_id": + "VGZIU2RGOJJFOA0B7CVI"}, "version": 1, "status": "active", "created_by": "dola-klipensk", + "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": "2018-01-02T03:04:05"}' headers: Access-Control-Allow-Credentials: @@ -569,18 +1014,19 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=0, s-maxage=0, no-cache, no-store - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: - - "479" + - "465" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Fri, 08 May 2026 10:37:16 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -596,7 +1042,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -612,7 +1058,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations/1094 + url: https://api.linode.com/v4beta/monitor/streams/destinations/450 method: DELETE response: body: '{}' @@ -630,7 +1076,7 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: @@ -639,8 +1085,10 @@ interactions: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Fri, 08 May 2026 10:37:16 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -655,7 +1103,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -671,7 +1119,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/keys/340471 + url: https://api.linode.com/v4beta/object-storage/keys/3613668 method: DELETE response: body: '{}' @@ -689,7 +1137,7 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: @@ -698,8 +1146,10 @@ interactions: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Fri, 08 May 2026 10:37:17 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -714,7 +1164,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "12" + - "60" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -730,12 +1180,14 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/pl-labkrk-2/go-test-logs-destination-1778077361692714000/object-list + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778235171706060000/object-list method: GET response: - body: '{"data": [{"name": "cloud-logs-test-connection-20260506T142244", "size": - 9, "last_modified": "2018-01-02T03:04:05.400Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", - "owner": "512fe32a-48a2-4a57-8a11-0eef806858d3"}], "next_marker": null, "is_truncated": + body: '{"data": [{"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/08/akamai_log-123432-1778236085-322081-config.gz", + "size": 574, "last_modified": "2018-01-02T03:04:05.388Z", "etag": "f4bb7599147adde4652d69905e9efeb7", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "cloud-logs-test-connection-20260508T101258", + "size": 9, "last_modified": "2018-01-02T03:04:05.626Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}], "next_marker": null, "is_truncated": false}' headers: Access-Control-Allow-Credentials: @@ -751,18 +1203,19 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=0, s-maxage=0, no-cache, no-store - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: - - "259" + - "544" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Fri, 08 May 2026 10:37:19 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -778,14 +1231,75 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" +- request: + body: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/08/akamai_log-123432-1778236085-322081-config.gz","method":"DELETE","expires_in":360}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778235171706060000/object-url + method: POST + response: + body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-destination-1778235171706060000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/08/akamai_log-123432-1778236085-322081-config.gz?Signature=FyF4ppil%2FRZKW2FvfTrfwIiUkfU%3D&Expires=1778237003&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCgrkoyFJpQy9H5GxRrsO4GjcW93Jd7F4SSPM3i%2BF9TIiZs7mNszilgBc67R40LhZw1AfIWLC6v8ofidhrg34e/h91SQ/s6N8j8z7uqE3jmky0rRubD7ruYLIzDrnchm3oX0bet4q9gorBnNAfGRSlLFqn9Otb1dck7mSpNxFSPDp2XooUdea%2B953Jr5BgRhVaz70Ksj9uVA7AapyQuy4xPgGf2x0XHocnMwguNOiHv5VC82G7cA85BGHTbvkdDwXX4G1hsaN5jOjSBukJ0xO1/pTUqSE7ny5IYN0nnir1msexM2FNy4MpCf71BIfUqq38igQlpiQo1ketLVfFd31t0s5eHxJWTCMB%2BwVJqziO2zQN3RPH5CZ2cI4aOsT/fjCUO2EFMr0RprvMTez0dX7Unm5xNPK042z4IG9U8WQI2DeIPrWxCn4ZUcmhIuQio00xLU%2BOauzz8VIpLK1xVTYN04dUrWn", + "exists": true}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Fri, 08 May 2026 10:37:23 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - object_storage: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: '{"name":"cloud-logs-test-connection-20260506T142244","method":"DELETE","expires_in":360}' + body: '{"name":"cloud-logs-test-connection-20260508T101258","method":"DELETE","expires_in":360}' form: {} headers: Accept: @@ -794,10 +1308,10 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/pl-labkrk-2/go-test-logs-destination-1778077361692714000/object-url + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778235171706060000/object-url method: POST response: - body: '{"url": "https://pl-labkrk2-1.linodeobjects.com:443/go-test-logs-destination-1778077361692714000/cloud-logs-test-connection-20260506T142244?Signature=aum22VqPehBfdia9VBm5RsHOLrw%3D&Expires=1778079713&AWSAccessKeyID=SANITIZED", + body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-destination-1778235171706060000/cloud-logs-test-connection-20260508T101258?Signature=uP4h8AGg5M4pxaefEWmOEaS4ksk%3D&Expires=1778237007&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCrhIS/QDnTn3pghxMaIAQzyWYnj1sg0FCwP1%2B%2B4EDnoR5Crov5v%2BoknK4PzcmqZphWUJ5oZ6sYF%2BQrZKYgWjHv2YhcIES9rwfLHsBkYNZ0nFarQXEsDIsVINJk7jsH3ph4Il5zh9ygpguOMVpit8OE2MnRfxK9CrKnVYKnrcc603rGm3HrKhiTq%2BQdcwffZxTvtWfYrFbrhDGXJGSf4GDe7zKTY5lCLY8necQCjGaiZnmp/na17c1lbPgtYSQFSLUaKCVuWf6ORUxmYzXnjzL8dq9TRAptzt7BvKJC6cOrbJihifTU6mLneB52OHJGf/QQeFJZf17%2BaMtbMgNsugJDCN0nPAynameQWxQpWf/Bgr7rFu5xpoVq1o41IecHcnwyX6Rb/L/jN4eTX6noWmNghHVkzb7jYEi8eqjHpyvTM%2BucuRRydfyFNO8ErPJAoz0JdXK16ryO%2BcEf/5XnE0vl%2BeBT/t", "exists": true}' headers: Access-Control-Allow-Credentials: @@ -813,17 +1327,19 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: - - "262" + - "853" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Fri, 08 May 2026 10:37:28 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -838,7 +1354,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -854,7 +1370,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/pl-labkrk-2/go-test-logs-destination-1778077361692714000 + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778235171706060000 method: DELETE response: body: '{}' @@ -872,7 +1388,7 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: @@ -881,8 +1397,10 @@ interactions: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Fri, 08 May 2026 10:37:34 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -897,7 +1415,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" X-Xss-Protection: - 1; mode=block status: 200 OK diff --git a/test/integration/fixtures/TestLogStream_List.yaml b/test/integration/fixtures/TestLogStream_List.yaml index 850ea6e44..647c5d58d 100644 --- a/test/integration/fixtures/TestLogStream_List.yaml +++ b/test/integration/fixtures/TestLogStream_List.yaml @@ -14,34 +14,346 @@ interactions: url: https://api.linode.com/v4beta/regions?page=1 method: GET response: - body: '{"data": [{"id": "pl-labkrk-2", "label": "Krakow, PL", "country": "pl", - "capabilities": ["Linodes", "Block Storage Encryption", "LA Disk Encryption", - "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", "Object Storage", - "GPU Linodes", "Kubernetes", "Kubernetes Enterprise", "Cloud Firewall", "Vlans", - "VPCs", "Block Storage Migrations", "Managed Databases", "Metadata", "Premium - Plans", "Placement Group", "StackScripts", "NETINT Quadra T1U", "Maintenance - Policy", "Linode Interfaces", "Network LoadBalancer", "ACLP Logs Datacenter - LKE-E"], "monitors": {"alerts": ["Block Storage", "Cloud Firewall", "Kubernetes", - "Linodes", "Managed Databases", "Network LoadBalancer", "NodeBalancers", "Object - Storage", "logs"], "metrics": ["Block Storage", "Cloud Firewall", "Kubernetes", - "Linodes", "Managed Databases", "Network LoadBalancer", "NodeBalancers", "Object - Storage", "logs"]}, "status": "ok", "resolvers": {"ipv4": "172.24.224.240,172.24.224.229,172.24.224.236,172.24.224.238,172.24.224.235,172.24.224.241,172.24.224.230,172.24.224.239,172.24.224.233,172.24.224.234", + body: '{"data": [{"id": "gb-lon", "label": "London 2, UK", "country": "gb", "capabilities": + ["Linodes", "Block Storage Encryption", "LA Disk Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "Object Storage", "GPU Linodes", + "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", + "Premium Plans", "Placement Group", "StackScripts", "NETINT Quadra T1U", "Maintenance + Policy", "Linode Interfaces", "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": + ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.236.0.46,172.236.0.50,172.236.0.47,172.236.0.53,172.236.0.52,172.236.0.45,172.236.0.49,172.236.0.51,172.236.0.54,172.236.0.48", "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": - 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-labedgeeat-2", - "label": "East Wenatchee, US", "country": "us", "capabilities": ["Linodes", - "Disk Encryption", "Cloud Firewall", "Vlans", "VPCs", "Metadata", "Distributed - Plans", "Linode Interfaces"], "monitors": {"alerts": [], "metrics": []}, "status": - "ok", "resolvers": {"ipv4": "173.223.100.53,173.223.101.53", "ipv6": "1234::5678,1234::5678"}, - "placement_group_limits": {"maximum_pgs_per_customer": 0, "maximum_linodes_per_pg": - 0, "maximum_linodes_per_flexible_pg": 0}, "site_type": "distributed"}, {"id": - "us-labedgeeat-3", "label": "East Wenatchee, US", "country": "us", "capabilities": - ["Linodes", "Disk Encryption", "Cloud Firewall", "Metadata", "Distributed Plans"], - "monitors": {"alerts": [], "metrics": []}, "status": "ok", "resolvers": {"ipv4": - "173.223.100.53,173.223.101.53", "ipv6": "1234::5678,1234::5678"}, - "placement_group_limits": {"maximum_pgs_per_customer": 0, "maximum_linodes_per_pg": - 0, "maximum_linodes_per_flexible_pg": 0}, "site_type": "distributed"}], "page": - 1, "pages": 1, "results": 3}' + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "se-sto", + "label": "Stockholm, SE", "country": "se", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.232.128.24,172.232.128.26,172.232.128.20,172.232.128.22,172.232.128.25,172.232.128.19,172.232.128.23,172.232.128.18,172.232.128.21,172.232.128.27", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "es-mad", + "label": "Madrid, ES", "country": "es", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.233.111.6,172.233.111.17,172.233.111.21,172.233.111.25,172.233.111.19,172.233.111.12,172.233.111.26,172.233.111.16,172.233.111.18,172.233.111.9", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "in-maa", + "label": "Chennai, IN", "country": "in", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces"], + "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed + Databases", "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.232.96.17,172.232.96.26,172.232.96.19,172.232.96.20,172.232.96.25,172.232.96.21,172.232.96.18,172.232.96.22,172.232.96.23,172.232.96.24", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "jp-osa", + "label": "Osaka, JP", "country": "jp", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.233.64.44,172.233.64.43,172.233.64.37,172.233.64.40,172.233.64.46,172.233.64.41,172.233.64.39,172.233.64.42,172.233.64.45,172.233.64.38", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "it-mil", + "label": "Milan, IT", "country": "it", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.232.192.19,172.232.192.18,172.232.192.16,172.232.192.20,172.232.192.24,172.232.192.21,172.232.192.22,172.232.192.17,172.232.192.15,172.232.192.23", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-mia", + "label": "Miami, FL", "country": "us", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces"], + "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed + Databases", "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.233.160.34,172.233.160.27,172.233.160.30,172.233.160.29,172.233.160.32,172.233.160.28,172.233.160.33,172.233.160.26,172.233.160.25,172.233.160.31", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "id-cgk", + "label": "Jakarta, ID", "country": "id", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.232.224.23,172.232.224.32,172.232.224.26,172.232.224.27,172.232.224.21,172.232.224.24,172.232.224.22,172.232.224.20,172.232.224.31,172.232.224.28", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-lax", + "label": "Los Angeles, CA", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces", + "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "172.233.128.45,172.233.128.38,172.233.128.53,172.233.128.37,172.233.128.34,172.233.128.36,172.233.128.33,172.233.128.39,172.233.128.43,172.233.128.44", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "nl-ams", + "label": "Amsterdam, NL", "country": "nl", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.233.33.36,172.233.33.38,172.233.33.35,172.233.33.39,172.233.33.34,172.233.33.33,172.233.33.31,172.233.33.30,172.233.33.37,172.233.33.32", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "au-mel", + "label": "Melbourne, AU", "country": "au", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "Kubernetes", "Cloud Firewall", "Vlans", + "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": + ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.236.32.23,172.236.32.35,172.236.32.30,172.236.32.28,172.236.32.32,172.236.32.33,172.236.32.27,172.236.32.37,172.236.32.29,172.236.32.34", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "in-bom-2", + "label": "Mumbai 2, IN", "country": "in", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", + "Managed Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts", + "Maintenance Policy", "Linode Interfaces", "ACLP Logs Datacenter LKE-E"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.236.171.41,172.236.171.42,172.236.171.25,172.236.171.44,172.236.171.26,172.236.171.45,172.236.171.24,172.236.171.43,172.236.171.27,172.236.171.28", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "de-fra-2", + "label": "Frankfurt 2, DE", "country": "de", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces", + "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "172.236.203.9,172.236.203.16,172.236.203.19,172.236.203.15,172.236.203.17,172.236.203.11,172.236.203.18,172.236.203.14,172.236.203.13,172.236.203.12", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "sg-sin-2", + "label": "Singapore 2, SG", "country": "sg", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs + Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], + "metrics": ["Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": + {"ipv4": "172.236.129.8,172.236.129.42,172.236.129.41,172.236.129.19,172.236.129.46,172.236.129.23,172.236.129.48,172.236.129.20,172.236.129.21,172.236.129.47", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "jp-tyo-3", + "label": "Tokyo 3, JP", "country": "jp", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs + Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], + "metrics": ["Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": + {"ipv4": "172.237.4.15,172.237.4.19,172.237.4.17,172.237.4.21,172.237.4.16,172.237.4.18,172.237.4.23,172.237.4.24,172.237.4.20,172.237.4.14", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-iad-2", + "label": "Washington 2, DC", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", + "Object Storage", "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Managed + Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts", + "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed + Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "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": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "fr-par-2", + "label": "Paris 2, FR", "country": "fr", "capabilities": ["Linodes", "Block + Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", + "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces", "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": + ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.239.11.24,172.239.11.22,172.239.11.17,172.239.11.20,172.239.11.23,172.239.11.19,172.239.11.21,172.239.11.15,172.239.11.16,172.239.11.18", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "br-gru", + "label": "Sao Paulo, BR", "country": "br", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "Kubernetes", "Cloud Firewall", "Vlans", + "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": + ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.233.0.4,172.233.0.9,172.233.0.7,172.233.0.12,172.233.0.5,172.233.0.13,172.233.0.10,172.233.0.6,172.233.0.8,172.233.0.11", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-sea", + "label": "Seattle, WA", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs + Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], + "metrics": ["Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": + {"ipv4": "172.232.160.19,172.232.160.21,172.232.160.17,172.232.160.15,172.232.160.18,172.232.160.8,172.232.160.12,172.232.160.11,172.232.160.14,172.232.160.16", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "fr-par", + "label": "Paris, FR", "country": "fr", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.232.32.21,172.232.32.23,172.232.32.17,172.232.32.18,172.232.32.16,172.232.32.22,172.232.32.20,172.232.32.14,172.232.32.11,172.232.32.12", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-ord", + "label": "Chicago, IL", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs + Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], + "metrics": ["Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": + {"ipv4": "172.232.0.17,172.232.0.16,172.232.0.21,172.232.0.13,172.232.0.22,172.232.0.9,172.232.0.19,172.232.0.20,172.232.0.15,172.232.0.18", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-iad", + "label": "Washington, DC", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "Kubernetes", "Cloud Firewall", "Vlans", + "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs Datacenter + LKE-E"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": + ["Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": + "139.144.192.62,139.144.192.60,139.144.192.61,139.144.192.53,139.144.192.54,139.144.192.67,139.144.192.69,139.144.192.66,139.144.192.52,139.144.192.68", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ap-southeast", + "label": "Sydney, AU", "country": "au", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "172.105.166.5,172.105.169.5,172.105.168.5,172.105.172.5,172.105.162.5,172.105.170.5,172.105.167.5,172.105.171.5,172.105.181.5,172.105.161.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ca-central", + "label": "Toronto, CA", "country": "ca", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "Block + Storage Migrations", "Managed Databases", "Metadata", "Placement Group", "StackScripts", + "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed + Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.105.0.5,172.105.3.5,172.105.4.5,172.105.5.5,172.105.6.5,172.105.7.5,172.105.8.5,172.105.9.5,172.105.10.5,172.105.11.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ap-west", + "label": "Mumbai, IN", "country": "in", "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.34.5,172.105.35.5,172.105.36.5,172.105.37.5,172.105.38.5,172.105.39.5,172.105.40.5,172.105.41.5,172.105.42.5,172.105.43.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-central", + "label": "Dallas, TX", "country": "us", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "72.14.179.5,72.14.188.5,173.255.199.5,66.228.53.5,96.126.122.5,96.126.124.5,96.126.127.5,198.58.107.5,198.58.111.5,23.239.24.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ap-northeast", + "label": "Tokyo 2, JP", "country": "jp", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "139.162.66.5,139.162.67.5,139.162.68.5,139.162.69.5,139.162.70.5,139.162.71.5,139.162.72.5,139.162.73.5,139.162.74.5,139.162.75.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "eu-central", + "label": "Frankfurt, DE", "country": "de", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "139.162.130.5,139.162.131.5,139.162.132.5,139.162.133.5,139.162.134.5,139.162.135.5,139.162.136.5,139.162.137.5,139.162.138.5,139.162.139.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ap-south", + "label": "Singapore, SG", "country": "sg", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "Block Storage Migrations", "Metadata", "Placement Group", "StackScripts", + "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": ["NodeBalancers"], + "metrics": ["NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "139.162.11.5,139.162.13.5,139.162.14.5,139.162.15.5,139.162.16.5,139.162.21.5,139.162.27.5,103.3.60.18,103.3.60.19,103.3.60.20", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "eu-west", + "label": "London, UK", "country": "gb", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Metadata", "Placement Group", "StackScripts", "Maintenance Policy", "Linode + Interfaces"], "monitors": {"alerts": ["NodeBalancers"], "metrics": ["NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "178.79.182.5, 176.58.107.5, 176.58.116.5, + 176.58.121.5, 151.236.220.5, 212.71.252.5, 212.71.253.5, 109.74.192.20, 109.74.193.20, + 109.74.194.20", "ipv6": "1234::5678, 1234::5678, 1234::5678, 1234::5678, + 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-east", + "label": "Newark, NJ", "country": "us", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "66.228.42.5,96.126.106.5,50.116.53.5,50.116.58.5,50.116.61.5,50.116.62.5,66.175.211.5,97.107.133.4,173.255.225.5,66.228.35.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-southeast", + "label": "Atlanta, GA", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "74.207.231.5,173.230.128.5,173.230.129.5,173.230.136.5,173.230.140.5,66.228.59.5,66.228.62.5,50.116.35.5,50.116.41.5,23.239.18.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-west", + "label": "Fremont, CA", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "173.230.145.5, 173.230.147.5, 173.230.155.5, 173.255.212.5, + 173.255.219.5, 173.255.241.5, 173.255.243.5, 173.255.244.5, 74.207.241.5, 74.207.242.5", + "ipv6": "1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, + 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678"}, "placement_group_limits": + {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5, "maximum_linodes_per_flexible_pg": + 5}, "site_type": "core"}], "page": 1, "pages": 1, "results": 33}' headers: Access-Control-Allow-Credentials: - "true" @@ -56,21 +368,23 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=900 - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Fri, 08 May 2026 08:22:16 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: @@ -81,14 +395,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"region":"pl-labkrk-2","label":"go-test-logs-destination-1778075037875407000","acl":"private","cors_enabled":false}' + body: '{"region":"gb-lon","label":"go-test-logs-destination-1778228536181337000","acl":"private","cors_enabled":false}' form: {} headers: Accept: @@ -100,10 +414,10 @@ interactions: url: https://api.linode.com/v4beta/object-storage/buckets method: POST response: - body: '{"hostname": "go-test-logs-destination-1778075037875407000.pl-labkrk2-1.linodeobjects.com", - "label": "go-test-logs-destination-1778075037875407000", "created": "2018-01-02T03:04:05", - "region": "pl-labkrk-2", "cluster": "pl-labkrk2-1", "size": 0, "objects": 0, - "endpoint_type": "E1", "s3_endpoint": "pl-labkrk2-1.linodeobjects.com"}' + body: '{"hostname": "go-test-logs-destination-1778228536181337000.gb-lon-1.linodeobjects.com", + "label": "go-test-logs-destination-1778228536181337000", "created": "2018-01-02T03:04:05", + "region": "gb-lon", "cluster": "", "size": 0, "objects": 0, "endpoint_type": + "E3", "s3_endpoint": "gb-lon-1.linodeobjects.com"}' headers: Access-Control-Allow-Credentials: - "true" @@ -118,17 +432,19 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: - - "349" + - "306" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Fri, 08 May 2026 08:22:21 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -143,14 +459,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "12" + - "60" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1778075038706784000"}' + body: '{"label":"go-test-logs-destination-1778228541793958000","regions":["gb-lon"]}' form: {} headers: Accept: @@ -162,10 +478,10 @@ interactions: url: https://api.linode.com/v4beta/object-storage/keys method: POST response: - body: '{"id": 340311, "label": "go-test-logs-destination-1778075038706784000", + body: '{"id": 3612270, "label": "go-test-logs-destination-1778228541793958000", "access_key": "[SANITIZED]", "secret_key": "[SANITIZED]", "limited": false, - "bucket_access": null, "regions": [{"id": "pl-labkrk-2", "s3_endpoint": "pl-labkrk2-1.linodeobjects.com", - "endpoint_type": "E1"}]}' + "bucket_access": null, "regions": [{"id": "gb-lon", "s3_endpoint": "gb-lon-1.linodeobjects.com", + "endpoint_type": "E3"}]}' headers: Access-Control-Allow-Credentials: - "true" @@ -180,17 +496,19 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: - - "325" + - "308" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Fri, 08 May 2026 08:22:24 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -205,14 +523,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "12" + - "60" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1778075039374625000","type":"akamai_object_storage","details":{"access_key_id":"2NWF5MNDG2NZ5CL8GUER","access_key_secret":"FUM51UqtGJSlbGkjixAISUCmsbuUD9W5Y2uxtYfR","bucket_name":"go-test-logs-destination-1778075037875407000","host":"go-test-logs-destination-1778075037875407000.pl-labkrk2-1.linodeobjects.com"}}' + body: '{"label":"go-test-logs-destination-1778228543905989000","type":"akamai_object_storage","details":{"access_key_id":"YVTTU3YQQ3N3ZHCJJ632","access_key_secret":"0qiLjidJONQzlV7jRh4kdd4k5ezMX2ctvw8fq0FE","bucket_name":"go-test-logs-destination-1778228536181337000","host":"go-test-logs-destination-1778228536181337000.gb-lon-1.linodeobjects.com"}}' form: {} headers: Accept: @@ -224,11 +542,11 @@ interactions: url: https://api.linode.com/v4beta/monitor/streams/destinations method: POST response: - body: '{"id": 1091, "label": "go-test-logs-destination-1778075039374625000", "type": - "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778075037875407000.pl-labkrk2-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1778075037875407000", "access_key_id": - "2NWF5MNDG2NZ5CL8GUER"}, "version": 1, "status": "active", "created_by": "klipensk-aclp", - "created": "2018-01-02T03:04:05", "updated_by": "klipensk-aclp", "updated": + body: '{"id": 447, "label": "go-test-logs-destination-1778228543905989000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778228536181337000.gb-lon-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1778228536181337000", "access_key_id": + "YVTTU3YQQ3N3ZHCJJ632"}, "version": 1, "status": "active", "created_by": "dola-klipensk", + "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": "2018-01-02T03:04:05"}' headers: Access-Control-Allow-Credentials: @@ -244,17 +562,19 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: - - "479" + - "465" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Fri, 08 May 2026 08:22:25 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -269,14 +589,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"destinations":[1091],"label":"go-test-log-stream-1778075041741946000","type":"audit_logs"}' + body: '{"destinations":[447],"label":"go-test-log-stream-1778228545091106000","type":"audit_logs"}' form: {} headers: Accept: @@ -288,14 +608,14 @@ interactions: url: https://api.linode.com/v4beta/monitor/streams method: POST response: - body: '{"id": 2122, "label": "go-test-log-stream-1778075041741946000", "type": - "audit_logs", "destinations": [{"id": 1091, "type": "akamai_object_storage", - "label": "go-test-logs-destination-1778075039374625000", "details": {"host": - "go-test-logs-destination-1778075037875407000.pl-labkrk2-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1778075037875407000", "access_key_id": - "2NWF5MNDG2NZ5CL8GUER"}}], "details": null, "version": 1, "status": "provisioning", - "created_by": "klipensk-aclp", "created": "2018-01-02T03:04:05", "updated_by": - "klipensk-aclp", "updated": "2018-01-02T03:04:05"}' + body: '{"id": 190, "label": "go-test-log-stream-1778228545091106000", "type": + "audit_logs", "destinations": [{"id": 447, "type": "akamai_object_storage", + "label": "go-test-logs-destination-1778228543905989000", "details": {"host": + "go-test-logs-destination-1778228536181337000.gb-lon-1.linodeobjects.com", "bucket_name": + "go-test-logs-destination-1778228536181337000", "access_key_id": "YVTTU3YQQ3N3ZHCJJ632"}}], + "details": null, "version": 1, "status": "provisioning", "created_by": "dola-klipensk", + "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": + "2018-01-02T03:04:05"}' headers: Access-Control-Allow-Credentials: - "true" @@ -310,17 +630,19 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: - - "607" + - "592" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Fri, 08 May 2026 08:22:25 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -335,7 +657,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -351,17 +673,17 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/2122 + url: https://api.linode.com/v4beta/monitor/streams/190 method: GET response: - body: '{"id": 2122, "label": "go-test-log-stream-1778075041741946000", "type": - "audit_logs", "destinations": [{"id": 1091, "type": "akamai_object_storage", - "label": "go-test-logs-destination-1778075039374625000", "details": {"host": - "go-test-logs-destination-1778075037875407000.pl-labkrk2-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1778075037875407000", "access_key_id": - "2NWF5MNDG2NZ5CL8GUER"}}], "details": null, "version": 1, "status": "active", - "created_by": "klipensk-aclp", "created": "2018-01-02T03:04:05", "updated_by": - "klipensk-aclp", "updated": "2018-01-02T03:04:05"}' + body: '{"id": 190, "label": "go-test-log-stream-1778228545091106000", "type": + "audit_logs", "destinations": [{"id": 447, "type": "akamai_object_storage", + "label": "go-test-logs-destination-1778228543905989000", "details": {"host": + "go-test-logs-destination-1778228536181337000.gb-lon-1.linodeobjects.com", "bucket_name": + "go-test-logs-destination-1778228536181337000", "access_key_id": "YVTTU3YQQ3N3ZHCJJ632"}}], + "details": null, "version": 1, "status": "active", "created_by": "dola-klipensk", + "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": + "2018-01-02T03:04:05"}' headers: Access-Control-Allow-Credentials: - "true" @@ -376,18 +698,19 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=0, s-maxage=0, no-cache, no-store - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: - - "602" + - "592" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Fri, 08 May 2026 08:22:25 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -403,7 +726,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -422,25 +745,13 @@ interactions: url: https://api.linode.com/v4beta/monitor/streams?page=1 method: GET response: - body: '{"pages": 1, "page": 1, "results": 3, "data": [{"id": 1288, "label": "heliosstream1", - "type": "audit_logs", "destinations": [{"id": 584, "type": "akamai_object_storage", - "label": "helioslogstreamdestination", "details": {"host": "pl-labkrk2-1.linodeobjects.com", - "bucket_name": "helios-bucket", "path": "helioslogs", "access_key_id": "JEYJTV5JQJ86H6ZHNBAX"}}], - "details": null, "version": 2, "status": "active", "created_by": "ndeverse-aclp", - "created": "2018-01-02T03:04:05", "updated_by": "vivkumar-aclp", "updated": - "2018-01-02T03:04:05"}, {"id": 2122, "label": "go-test-log-stream-1778075041741946000", - "type": "audit_logs", "destinations": [{"id": 1091, "type": "akamai_object_storage", - "label": "go-test-logs-destination-1778075039374625000", "details": {"host": - "go-test-logs-destination-1778075037875407000.pl-labkrk2-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1778075037875407000", "access_key_id": - "2NWF5MNDG2NZ5CL8GUER"}}], "details": null, "version": 1, "status": "active", - "created_by": "klipensk-aclp", "created": "2018-01-02T03:04:05", "updated_by": - "klipensk-aclp", "updated": "2018-01-02T03:04:05"}, {"id": 2123, "label": "ansible-test-stream-43190597", - "type": "audit_logs", "destinations": [{"id": 1092, "type": "akamai_object_storage", - "label": "ansible-test-dest-36504758", "details": {"host": "pl-labkrk2-1.linodeobjects.com", - "bucket_name": "ansible-test-dest-36504758", "access_key_id": "4J0AP7RF1BMDM1TGSIRG"}}], - "details": null, "version": 1, "status": "provisioning", "created_by": "sjerecze-aclp", - "created": "2018-01-02T03:04:05", "updated_by": "sjerecze-aclp", "updated": + body: '{"pages": 1, "page": 1, "results": 1, "data": [{"id": 190, "label": "go-test-log-stream-1778228545091106000", + "type": "audit_logs", "destinations": [{"id": 447, "type": "akamai_object_storage", + "label": "go-test-logs-destination-1778228543905989000", "details": {"host": + "go-test-logs-destination-1778228536181337000.gb-lon-1.linodeobjects.com", "bucket_name": + "go-test-logs-destination-1778228536181337000", "access_key_id": "YVTTU3YQQ3N3ZHCJJ632"}}], + "details": null, "version": 1, "status": "active", "created_by": "dola-klipensk", + "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": "2018-01-02T03:04:05"}]}' headers: Access-Control-Allow-Credentials: @@ -456,16 +767,88 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=0, s-maxage=0, no-cache, no-store - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Length: + - "635" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Fri, 08 May 2026 09:00:41 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - monitor: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/monitor/streams/190 + method: GET + response: + body: '{"id": 190, "label": "go-test-log-stream-1778228545091106000", "type": + "audit_logs", "destinations": [{"id": 447, "type": "akamai_object_storage", + "label": "go-test-logs-destination-1778228543905989000", "details": {"host": + "go-test-logs-destination-1778228536181337000.gb-lon-1.linodeobjects.com", "bucket_name": + "go-test-logs-destination-1778228536181337000", "access_key_id": "YVTTU3YQQ3N3ZHCJJ632"}}], + "details": null, "version": 1, "status": "active", "created_by": "dola-klipensk", + "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": + "2018-01-02T03:04:05"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store Connection: - keep-alive + Content-Length: + - "586" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Fri, 08 May 2026 09:00:42 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -481,7 +864,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -497,7 +880,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/2122 + url: https://api.linode.com/v4beta/monitor/streams/190 method: DELETE response: body: '{}' @@ -515,7 +898,7 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: @@ -524,8 +907,10 @@ interactions: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Fri, 08 May 2026 09:00:42 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -540,7 +925,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -556,14 +941,64 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations/1091 + url: https://api.linode.com/v4beta/monitor/streams/190 method: GET response: - body: '{"id": 1091, "label": "go-test-logs-destination-1778075039374625000", "type": - "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778075037875407000.pl-labkrk2-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1778075037875407000", "access_key_id": - "2NWF5MNDG2NZ5CL8GUER"}, "version": 1, "status": "active", "created_by": "klipensk-aclp", - "created": "2018-01-02T03:04:05", "updated_by": "klipensk-aclp", "updated": + body: '{"errors": [{"reason": "Stream not found"}]}' + headers: + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Length: + - "44" + Content-Type: + - application/json + Expires: + - Fri, 08 May 2026 09:00:42 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - monitor:read_only + X-Frame-Options: + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "1840" + status: 404 Not Found + code: 404 + 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/monitor/streams/destinations/447 + method: GET + response: + body: '{"id": 447, "label": "go-test-logs-destination-1778228543905989000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778228536181337000.gb-lon-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1778228536181337000", "access_key_id": + "YVTTU3YQQ3N3ZHCJJ632"}, "version": 1, "status": "active", "created_by": "dola-klipensk", + "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": "2018-01-02T03:04:05"}' headers: Access-Control-Allow-Credentials: @@ -579,18 +1014,19 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=0, s-maxage=0, no-cache, no-store - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: - - "479" + - "465" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Fri, 08 May 2026 09:00:43 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -606,7 +1042,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -622,7 +1058,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations/1091 + url: https://api.linode.com/v4beta/monitor/streams/destinations/447 method: DELETE response: body: '{}' @@ -640,7 +1076,7 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: @@ -649,8 +1085,10 @@ interactions: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Fri, 08 May 2026 09:00:43 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -665,7 +1103,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -681,7 +1119,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/keys/340311 + url: https://api.linode.com/v4beta/object-storage/keys/3612270 method: DELETE response: body: '{}' @@ -699,7 +1137,7 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: @@ -708,8 +1146,10 @@ interactions: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Fri, 08 May 2026 09:00:44 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -724,7 +1164,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "12" + - "60" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -740,12 +1180,16 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/pl-labkrk-2/go-test-logs-destination-1778075037875407000/object-list + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778228536181337000/object-list method: GET response: - body: '{"data": [{"name": "cloud-logs-test-connection-20260506T134400", "size": - 9, "last_modified": "2018-01-02T03:04:05.757Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", - "owner": "512fe32a-48a2-4a57-8a11-0eef806858d3"}], "next_marker": null, "is_truncated": + body: '{"data": [{"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/08/akamai_log-168834-1778230096-574655-config.gz", + "size": 579, "last_modified": "2018-01-02T03:04:05.509Z", "etag": "d813902fc882bd45f7fde05f3f31c180", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/08/akamai_log-736574-1778230734-994568-config.gz", + "size": 576, "last_modified": "2018-01-02T03:04:05.895Z", "etag": "e207b8c8bec0f0625afdb6af551e866c", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "cloud-logs-test-connection-20260508T082224", + "size": 9, "last_modified": "2018-01-02T03:04:05.831Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}], "next_marker": null, "is_truncated": false}' headers: Access-Control-Allow-Credentials: @@ -761,18 +1205,19 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=0, s-maxage=0, no-cache, no-store - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: - - "259" + - "829" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Fri, 08 May 2026 09:00:46 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -788,14 +1233,136 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" +- request: + body: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/08/akamai_log-168834-1778230096-574655-config.gz","method":"DELETE","expires_in":360}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778228536181337000/object-url + method: POST + response: + body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-destination-1778228536181337000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/08/akamai_log-168834-1778230096-574655-config.gz?Signature=eGiD9RrnaNQMseeEkmczIFkCvi4%3D&Expires=1778231209&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCsRrH6m0ZwYhYaXqC8lUitmdqDP5/Zg3yQc8%2BcVdll%2Bfj8Xtd67owGW3esAQbhEvI/8/miNkMARuWqUKv8RauR5WuezfVzohSPfJpwZmi2mMDILCHSi3sQGCTFMwgHvgWaKgGE7QY6ESk2IyF479q%2BkFfhgP44yGeyQ%2B1TnD/bSskfsNHyrhENyxiPG6riXxC2lUu45SXpbwEyGcXgZREqktLELGJ3JezAVzPJmdUFP1YVdFuWUfjbv/ZNI2qpxjPOebbyZeCBpOkg3TgGrmWZ9HUZ0NEBBXSgFbRMcyEjV6xVi6/XGC7EC3wM%2B6x3NgWSb1R8Xr14sg7BSGcaJ9k15Bec8YYOev4b5XxApK7oecWEacyMzhycPGrDKySDt2hKOPnUeajWsS7AwIHS8o8Wmt2UC%2BEx9lXsEYxUYKq1OQExYMaFlX8MmBH/n1YYW13kKgjkcNF%2BshGaGEU3lPG4c2%2BhNi", + "exists": true}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Fri, 08 May 2026 09:00:49 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - object_storage: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: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/08/akamai_log-736574-1778230734-994568-config.gz","method":"DELETE","expires_in":360}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778228536181337000/object-url + method: POST + response: + body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-destination-1778228536181337000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/08/akamai_log-736574-1778230734-994568-config.gz?Signature=A2W3p9tGALKMn1W5HhWBASYjRfQ%3D&Expires=1778231214&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCpNtUroB9hJycHjjX30%2BbwY2FKX4BgxIGdvL5ZUbWf6Uh/EUV0A06jlR9/vw/IlEOwoOpolFU2QJx8Z7330i34Kt6nqR47SVk8aTMBHrJwvT%2BvYxJ2Qorg/xy171NEPgqoyjYY1Vx7qE%2BJ8e1KqiXtSnZTnGXasFZfCi4zfuVxn4gKg48xB1ZyUTdXeruyvE8Pi3XHPsuyeWVW1uVFtcAyLu5NYq2oa0IuEcD0A3MAJMkVoo1veXyBGv/39WjJvwKWgBedhEko0NXsKPhGthy%2B5NxSmsBAnx036IUakBPvjv8dhXP1GhXKXsTfDARvt9aBFe1kNQlZgUOkagt1dzZ/4mEPWxuSFA23/PEPRpZr2PRbouH8Hu0pa959znPc18mShOUs0kRafTjM96W4k05rti4eufJut%2BTSqWYmfHwraJb9VZ8D81Z9tMUx5Od9lw4zPWp%2Bgn4M5Si2KBif4mEywRSgsL", + "exists": true}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Fri, 08 May 2026 09:00:54 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - object_storage: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: '{"name":"cloud-logs-test-connection-20260506T134400","method":"DELETE","expires_in":360}' + body: '{"name":"cloud-logs-test-connection-20260508T082224","method":"DELETE","expires_in":360}' form: {} headers: Accept: @@ -804,10 +1371,10 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/pl-labkrk-2/go-test-logs-destination-1778075037875407000/object-url + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778228536181337000/object-url method: POST response: - body: '{"url": "https://pl-labkrk2-1.linodeobjects.com:443/go-test-logs-destination-1778075037875407000/cloud-logs-test-connection-20260506T134400?Signature=XTR4jtyeglQHOWYaBB3%2FGBAd7Lc%3D&Expires=1778077106&AWSAccessKeyID=SANITIZED", + body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-destination-1778228536181337000/cloud-logs-test-connection-20260508T082224?Signature=6jw4hhgnDwpouxNzxtDLpeEl894%3D&Expires=1778231218&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCpiBVrvzXxUhuB5f7Hp7iBSwGN0/pIn3YbxcGwWSjPgrHHDT2M6iMT6nTpJGDo5b/cmP/4EsMKpnynP3rKM7gizs8SemFxAw01C/ANGIU9po5XDiWZBiLJk7DxP0Q9IWJEG43EsBkoztZdqiugC2WVME0VFZ1oeImLmTPOobSvYhryg1VKx3h7KnPVXNcj4Jq4OREpiTZEEEAeuff3AWEVHBt59GfH17HGSuyOq/gXAjTKLVMuRH63S1LV91/2jYsPA8ZiyiGXZ0M019L73oth6t64rwZCo%2BpgZyi5EC9TxTnFC/qI/CXJ/jKILK7Vw946NUmC64kMzmxQVkUDIccBBNbaMDt1dRxVFIMWkwL6NyszFl7P8alJRT4tyaZdgyvzwZ7PhKRh9tZJ5hKb9znPcZN2aV8iIfLeR7JclIv60ADUR7KPBKnZZCsenQGHmYgLJL35lyf1PpU79/CVWaed4qKDGW", "exists": true}' headers: Access-Control-Allow-Credentials: @@ -823,17 +1390,19 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: - - "264" + - "837" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Fri, 08 May 2026 09:00:58 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -848,7 +1417,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -864,7 +1433,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/pl-labkrk-2/go-test-logs-destination-1778075037875407000 + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778228536181337000 method: DELETE response: body: '{}' @@ -882,7 +1451,7 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: @@ -891,8 +1460,10 @@ interactions: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Fri, 08 May 2026 09:01:05 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -907,7 +1478,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" X-Xss-Protection: - 1; mode=block status: 200 OK diff --git a/test/integration/fixtures/TestLogStream_Update_Destinations.yaml b/test/integration/fixtures/TestLogStream_Update_Destinations.yaml index af87e0717..8a9da849e 100644 --- a/test/integration/fixtures/TestLogStream_Update_Destinations.yaml +++ b/test/integration/fixtures/TestLogStream_Update_Destinations.yaml @@ -14,34 +14,346 @@ interactions: url: https://api.linode.com/v4beta/regions?page=1 method: GET response: - body: '{"data": [{"id": "pl-labkrk-2", "label": "Krakow, PL", "country": "pl", - "capabilities": ["Linodes", "Block Storage Encryption", "LA Disk Encryption", - "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", "Object Storage", - "GPU Linodes", "Kubernetes", "Kubernetes Enterprise", "Cloud Firewall", "Vlans", - "VPCs", "Block Storage Migrations", "Managed Databases", "Metadata", "Premium - Plans", "Placement Group", "StackScripts", "NETINT Quadra T1U", "Maintenance - Policy", "Linode Interfaces", "Network LoadBalancer", "ACLP Logs Datacenter - LKE-E"], "monitors": {"alerts": ["Block Storage", "Cloud Firewall", "Kubernetes", - "Linodes", "Managed Databases", "Network LoadBalancer", "NodeBalancers", "Object - Storage", "logs"], "metrics": ["Block Storage", "Cloud Firewall", "Kubernetes", - "Linodes", "Managed Databases", "Network LoadBalancer", "NodeBalancers", "Object - Storage", "logs"]}, "status": "ok", "resolvers": {"ipv4": "172.24.224.240,172.24.224.229,172.24.224.236,172.24.224.238,172.24.224.235,172.24.224.241,172.24.224.230,172.24.224.239,172.24.224.233,172.24.224.234", + body: '{"data": [{"id": "gb-lon", "label": "London 2, UK", "country": "gb", "capabilities": + ["Linodes", "Block Storage Encryption", "LA Disk Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "Object Storage", "GPU Linodes", + "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", + "Premium Plans", "Placement Group", "StackScripts", "NETINT Quadra T1U", "Maintenance + Policy", "Linode Interfaces", "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": + ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.236.0.46,172.236.0.50,172.236.0.47,172.236.0.53,172.236.0.52,172.236.0.45,172.236.0.49,172.236.0.51,172.236.0.54,172.236.0.48", "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": - 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-labedgeeat-2", - "label": "East Wenatchee, US", "country": "us", "capabilities": ["Linodes", - "Disk Encryption", "Cloud Firewall", "Vlans", "VPCs", "Metadata", "Distributed - Plans", "Linode Interfaces"], "monitors": {"alerts": [], "metrics": []}, "status": - "ok", "resolvers": {"ipv4": "173.223.100.53,173.223.101.53", "ipv6": "1234::5678,1234::5678"}, - "placement_group_limits": {"maximum_pgs_per_customer": 0, "maximum_linodes_per_pg": - 0, "maximum_linodes_per_flexible_pg": 0}, "site_type": "distributed"}, {"id": - "us-labedgeeat-3", "label": "East Wenatchee, US", "country": "us", "capabilities": - ["Linodes", "Disk Encryption", "Cloud Firewall", "Metadata", "Distributed Plans"], - "monitors": {"alerts": [], "metrics": []}, "status": "ok", "resolvers": {"ipv4": - "173.223.100.53,173.223.101.53", "ipv6": "1234::5678,1234::5678"}, - "placement_group_limits": {"maximum_pgs_per_customer": 0, "maximum_linodes_per_pg": - 0, "maximum_linodes_per_flexible_pg": 0}, "site_type": "distributed"}], "page": - 1, "pages": 1, "results": 3}' + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "se-sto", + "label": "Stockholm, SE", "country": "se", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.232.128.24,172.232.128.26,172.232.128.20,172.232.128.22,172.232.128.25,172.232.128.19,172.232.128.23,172.232.128.18,172.232.128.21,172.232.128.27", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "es-mad", + "label": "Madrid, ES", "country": "es", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.233.111.6,172.233.111.17,172.233.111.21,172.233.111.25,172.233.111.19,172.233.111.12,172.233.111.26,172.233.111.16,172.233.111.18,172.233.111.9", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "in-maa", + "label": "Chennai, IN", "country": "in", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces"], + "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed + Databases", "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.232.96.17,172.232.96.26,172.232.96.19,172.232.96.20,172.232.96.25,172.232.96.21,172.232.96.18,172.232.96.22,172.232.96.23,172.232.96.24", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "jp-osa", + "label": "Osaka, JP", "country": "jp", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.233.64.44,172.233.64.43,172.233.64.37,172.233.64.40,172.233.64.46,172.233.64.41,172.233.64.39,172.233.64.42,172.233.64.45,172.233.64.38", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "it-mil", + "label": "Milan, IT", "country": "it", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.232.192.19,172.232.192.18,172.232.192.16,172.232.192.20,172.232.192.24,172.232.192.21,172.232.192.22,172.232.192.17,172.232.192.15,172.232.192.23", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-mia", + "label": "Miami, FL", "country": "us", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces"], + "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed + Databases", "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.233.160.34,172.233.160.27,172.233.160.30,172.233.160.29,172.233.160.32,172.233.160.28,172.233.160.33,172.233.160.26,172.233.160.25,172.233.160.31", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "id-cgk", + "label": "Jakarta, ID", "country": "id", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.232.224.23,172.232.224.32,172.232.224.26,172.232.224.27,172.232.224.21,172.232.224.24,172.232.224.22,172.232.224.20,172.232.224.31,172.232.224.28", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-lax", + "label": "Los Angeles, CA", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces", + "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "172.233.128.45,172.233.128.38,172.233.128.53,172.233.128.37,172.233.128.34,172.233.128.36,172.233.128.33,172.233.128.39,172.233.128.43,172.233.128.44", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "nl-ams", + "label": "Amsterdam, NL", "country": "nl", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.233.33.36,172.233.33.38,172.233.33.35,172.233.33.39,172.233.33.34,172.233.33.33,172.233.33.31,172.233.33.30,172.233.33.37,172.233.33.32", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "au-mel", + "label": "Melbourne, AU", "country": "au", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "Kubernetes", "Cloud Firewall", "Vlans", + "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": + ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.236.32.23,172.236.32.35,172.236.32.30,172.236.32.28,172.236.32.32,172.236.32.33,172.236.32.27,172.236.32.37,172.236.32.29,172.236.32.34", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "in-bom-2", + "label": "Mumbai 2, IN", "country": "in", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", + "Managed Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts", + "Maintenance Policy", "Linode Interfaces", "ACLP Logs Datacenter LKE-E"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.236.171.41,172.236.171.42,172.236.171.25,172.236.171.44,172.236.171.26,172.236.171.45,172.236.171.24,172.236.171.43,172.236.171.27,172.236.171.28", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "de-fra-2", + "label": "Frankfurt 2, DE", "country": "de", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces", + "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "172.236.203.9,172.236.203.16,172.236.203.19,172.236.203.15,172.236.203.17,172.236.203.11,172.236.203.18,172.236.203.14,172.236.203.13,172.236.203.12", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "sg-sin-2", + "label": "Singapore 2, SG", "country": "sg", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs + Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], + "metrics": ["Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": + {"ipv4": "172.236.129.8,172.236.129.42,172.236.129.41,172.236.129.19,172.236.129.46,172.236.129.23,172.236.129.48,172.236.129.20,172.236.129.21,172.236.129.47", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "jp-tyo-3", + "label": "Tokyo 3, JP", "country": "jp", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs + Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], + "metrics": ["Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": + {"ipv4": "172.237.4.15,172.237.4.19,172.237.4.17,172.237.4.21,172.237.4.16,172.237.4.18,172.237.4.23,172.237.4.24,172.237.4.20,172.237.4.14", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-iad-2", + "label": "Washington 2, DC", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", + "Object Storage", "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Managed + Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts", + "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed + Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "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": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "fr-par-2", + "label": "Paris 2, FR", "country": "fr", "capabilities": ["Linodes", "Block + Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", + "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces", "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": + ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.239.11.24,172.239.11.22,172.239.11.17,172.239.11.20,172.239.11.23,172.239.11.19,172.239.11.21,172.239.11.15,172.239.11.16,172.239.11.18", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "br-gru", + "label": "Sao Paulo, BR", "country": "br", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "Kubernetes", "Cloud Firewall", "Vlans", + "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": + ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.233.0.4,172.233.0.9,172.233.0.7,172.233.0.12,172.233.0.5,172.233.0.13,172.233.0.10,172.233.0.6,172.233.0.8,172.233.0.11", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-sea", + "label": "Seattle, WA", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs + Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], + "metrics": ["Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": + {"ipv4": "172.232.160.19,172.232.160.21,172.232.160.17,172.232.160.15,172.232.160.18,172.232.160.8,172.232.160.12,172.232.160.11,172.232.160.14,172.232.160.16", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "fr-par", + "label": "Paris, FR", "country": "fr", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.232.32.21,172.232.32.23,172.232.32.17,172.232.32.18,172.232.32.16,172.232.32.22,172.232.32.20,172.232.32.14,172.232.32.11,172.232.32.12", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-ord", + "label": "Chicago, IL", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs + Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], + "metrics": ["Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": + {"ipv4": "172.232.0.17,172.232.0.16,172.232.0.21,172.232.0.13,172.232.0.22,172.232.0.9,172.232.0.19,172.232.0.20,172.232.0.15,172.232.0.18", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-iad", + "label": "Washington, DC", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "Kubernetes", "Cloud Firewall", "Vlans", + "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs Datacenter + LKE-E"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": + ["Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": + "139.144.192.62,139.144.192.60,139.144.192.61,139.144.192.53,139.144.192.54,139.144.192.67,139.144.192.69,139.144.192.66,139.144.192.52,139.144.192.68", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ap-southeast", + "label": "Sydney, AU", "country": "au", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "172.105.166.5,172.105.169.5,172.105.168.5,172.105.172.5,172.105.162.5,172.105.170.5,172.105.167.5,172.105.171.5,172.105.181.5,172.105.161.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ca-central", + "label": "Toronto, CA", "country": "ca", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "Block + Storage Migrations", "Managed Databases", "Metadata", "Placement Group", "StackScripts", + "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed + Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.105.0.5,172.105.3.5,172.105.4.5,172.105.5.5,172.105.6.5,172.105.7.5,172.105.8.5,172.105.9.5,172.105.10.5,172.105.11.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ap-west", + "label": "Mumbai, IN", "country": "in", "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.34.5,172.105.35.5,172.105.36.5,172.105.37.5,172.105.38.5,172.105.39.5,172.105.40.5,172.105.41.5,172.105.42.5,172.105.43.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-central", + "label": "Dallas, TX", "country": "us", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "72.14.179.5,72.14.188.5,173.255.199.5,66.228.53.5,96.126.122.5,96.126.124.5,96.126.127.5,198.58.107.5,198.58.111.5,23.239.24.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ap-northeast", + "label": "Tokyo 2, JP", "country": "jp", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "139.162.66.5,139.162.67.5,139.162.68.5,139.162.69.5,139.162.70.5,139.162.71.5,139.162.72.5,139.162.73.5,139.162.74.5,139.162.75.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "eu-central", + "label": "Frankfurt, DE", "country": "de", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "139.162.130.5,139.162.131.5,139.162.132.5,139.162.133.5,139.162.134.5,139.162.135.5,139.162.136.5,139.162.137.5,139.162.138.5,139.162.139.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ap-south", + "label": "Singapore, SG", "country": "sg", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "Block Storage Migrations", "Metadata", "Placement Group", "StackScripts", + "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": ["NodeBalancers"], + "metrics": ["NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "139.162.11.5,139.162.13.5,139.162.14.5,139.162.15.5,139.162.16.5,139.162.21.5,139.162.27.5,103.3.60.18,103.3.60.19,103.3.60.20", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "eu-west", + "label": "London, UK", "country": "gb", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Metadata", "Placement Group", "StackScripts", "Maintenance Policy", "Linode + Interfaces"], "monitors": {"alerts": ["NodeBalancers"], "metrics": ["NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "178.79.182.5, 176.58.107.5, 176.58.116.5, + 176.58.121.5, 151.236.220.5, 212.71.252.5, 212.71.253.5, 109.74.192.20, 109.74.193.20, + 109.74.194.20", "ipv6": "1234::5678, 1234::5678, 1234::5678, 1234::5678, + 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-east", + "label": "Newark, NJ", "country": "us", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "66.228.42.5,96.126.106.5,50.116.53.5,50.116.58.5,50.116.61.5,50.116.62.5,66.175.211.5,97.107.133.4,173.255.225.5,66.228.35.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-southeast", + "label": "Atlanta, GA", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "74.207.231.5,173.230.128.5,173.230.129.5,173.230.136.5,173.230.140.5,66.228.59.5,66.228.62.5,50.116.35.5,50.116.41.5,23.239.18.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-west", + "label": "Fremont, CA", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "173.230.145.5, 173.230.147.5, 173.230.155.5, 173.255.212.5, + 173.255.219.5, 173.255.241.5, 173.255.243.5, 173.255.244.5, 74.207.241.5, 74.207.242.5", + "ipv6": "1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, + 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678"}, "placement_group_limits": + {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5, "maximum_linodes_per_flexible_pg": + 5}, "site_type": "core"}], "page": 1, "pages": 1, "results": 33}' headers: Access-Control-Allow-Credentials: - "true" @@ -56,21 +368,23 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=900 - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Fri, 08 May 2026 18:40:53 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: - Authorization, X-Filter - Authorization, X-Filter + - Accept-Encoding X-Accepted-Oauth-Scopes: - '*' X-Content-Type-Options: @@ -81,14 +395,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"region":"pl-labkrk-2","label":"go-test-logs-destination-1778092381336293000","acl":"private","cors_enabled":false}' + body: '{"region":"gb-lon","label":"go-test-logs-destination-1778265653315370000","acl":"private","cors_enabled":false}' form: {} headers: Accept: @@ -100,10 +414,10 @@ interactions: url: https://api.linode.com/v4beta/object-storage/buckets method: POST response: - body: '{"hostname": "go-test-logs-destination-1778092381336293000.pl-labkrk2-1.linodeobjects.com", - "label": "go-test-logs-destination-1778092381336293000", "created": "2018-01-02T03:04:05", - "region": "pl-labkrk-2", "cluster": "pl-labkrk2-1", "size": 0, "objects": 0, - "endpoint_type": "E1", "s3_endpoint": "pl-labkrk2-1.linodeobjects.com"}' + body: '{"hostname": "go-test-logs-destination-1778265653315370000.gb-lon-1.linodeobjects.com", + "label": "go-test-logs-destination-1778265653315370000", "created": "2018-01-02T03:04:05", + "region": "gb-lon", "cluster": "", "size": 0, "objects": 0, "endpoint_type": + "E3", "s3_endpoint": "gb-lon-1.linodeobjects.com"}' headers: Access-Control-Allow-Credentials: - "true" @@ -118,17 +432,19 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: - - "349" + - "306" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Fri, 08 May 2026 18:40:58 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -143,14 +459,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "12" + - "60" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1778092382145143000"}' + body: '{"label":"go-test-logs-destination-1778265658233890000","regions":["gb-lon"]}' form: {} headers: Accept: @@ -162,10 +478,10 @@ interactions: url: https://api.linode.com/v4beta/object-storage/keys method: POST response: - body: '{"id": 340783, "label": "go-test-logs-destination-1778092382145143000", + body: '{"id": 3619846, "label": "go-test-logs-destination-1778265658233890000", "access_key": "[SANITIZED]", "secret_key": "[SANITIZED]", "limited": false, - "bucket_access": null, "regions": [{"id": "pl-labkrk-2", "s3_endpoint": "pl-labkrk2-1.linodeobjects.com", - "endpoint_type": "E1"}]}' + "bucket_access": null, "regions": [{"id": "gb-lon", "s3_endpoint": "gb-lon-1.linodeobjects.com", + "endpoint_type": "E3"}]}' headers: Access-Control-Allow-Credentials: - "true" @@ -180,17 +496,19 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: - - "325" + - "308" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Fri, 08 May 2026 18:41:00 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -205,14 +523,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "12" + - "60" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1778092382634636000","type":"akamai_object_storage","details":{"access_key_id":"5X3BYDLE4YQQWY63YJHM","access_key_secret":"pUKNpJi9ut96gSsSfk0BPsJqZ82hB6iOVZwc0D3O","bucket_name":"go-test-logs-destination-1778092381336293000","host":"go-test-logs-destination-1778092381336293000.pl-labkrk2-1.linodeobjects.com"}}' + body: '{"label":"go-test-logs-destination-1778265660497988000","type":"akamai_object_storage","details":{"access_key_id":"G3NCAR5F3LRSJ3VLGZ6A","access_key_secret":"BtJr15UO62Xh1KEnmlgtXyDBxizQ5Xko8q7bMPY0","bucket_name":"go-test-logs-destination-1778265653315370000","host":"go-test-logs-destination-1778265653315370000.gb-lon-1.linodeobjects.com"}}' form: {} headers: Accept: @@ -224,11 +542,11 @@ interactions: url: https://api.linode.com/v4beta/monitor/streams/destinations method: POST response: - body: '{"id": 1098, "label": "go-test-logs-destination-1778092382634636000", "type": - "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778092381336293000.pl-labkrk2-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1778092381336293000", "access_key_id": - "5X3BYDLE4YQQWY63YJHM"}, "version": 1, "status": "active", "created_by": "klipensk-aclp", - "created": "2018-01-02T03:04:05", "updated_by": "klipensk-aclp", "updated": + body: '{"id": 459, "label": "go-test-logs-destination-1778265660497988000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778265653315370000.gb-lon-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1778265653315370000", "access_key_id": + "G3NCAR5F3LRSJ3VLGZ6A"}, "version": 1, "status": "active", "created_by": "dola-klipensk", + "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": "2018-01-02T03:04:05"}' headers: Access-Control-Allow-Credentials: @@ -244,17 +562,19 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: - - "479" + - "465" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Fri, 08 May 2026 18:41:01 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -269,14 +589,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"destinations":[1098],"label":"go-test-log-stream-1778092384810499000","type":"audit_logs"}' + body: '{"destinations":[459],"label":"go-test-log-stream-1778265661693801000","type":"audit_logs"}' form: {} headers: Accept: @@ -288,14 +608,14 @@ interactions: url: https://api.linode.com/v4beta/monitor/streams method: POST response: - body: '{"id": 2128, "label": "go-test-log-stream-1778092384810499000", "type": - "audit_logs", "destinations": [{"id": 1098, "type": "akamai_object_storage", - "label": "go-test-logs-destination-1778092382634636000", "details": {"host": - "go-test-logs-destination-1778092381336293000.pl-labkrk2-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1778092381336293000", "access_key_id": - "5X3BYDLE4YQQWY63YJHM"}}], "details": null, "version": 1, "status": "provisioning", - "created_by": "klipensk-aclp", "created": "2018-01-02T03:04:05", "updated_by": - "klipensk-aclp", "updated": "2018-01-02T03:04:05"}' + body: '{"id": 203, "label": "go-test-log-stream-1778265661693801000", "type": + "audit_logs", "destinations": [{"id": 459, "type": "akamai_object_storage", + "label": "go-test-logs-destination-1778265660497988000", "details": {"host": + "go-test-logs-destination-1778265653315370000.gb-lon-1.linodeobjects.com", "bucket_name": + "go-test-logs-destination-1778265653315370000", "access_key_id": "G3NCAR5F3LRSJ3VLGZ6A"}}], + "details": null, "version": 1, "status": "provisioning", "created_by": "dola-klipensk", + "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": + "2018-01-02T03:04:05"}' headers: Access-Control-Allow-Credentials: - "true" @@ -310,17 +630,19 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: - - "607" + - "592" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Fri, 08 May 2026 18:41:02 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -335,14 +657,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"region":"pl-labkrk-2","label":"go-test-logs-destination-1778092389375217000","acl":"private","cors_enabled":false}' + body: '{"region":"gb-lon","label":"go-test-logs-destination-1778265662063843000","acl":"private","cors_enabled":false}' form: {} headers: Accept: @@ -354,10 +676,10 @@ interactions: url: https://api.linode.com/v4beta/object-storage/buckets method: POST response: - body: '{"hostname": "go-test-logs-destination-1778092389375217000.pl-labkrk2-1.linodeobjects.com", - "label": "go-test-logs-destination-1778092389375217000", "created": "2018-01-02T03:04:05", - "region": "pl-labkrk-2", "cluster": "pl-labkrk2-1", "size": 0, "objects": 0, - "endpoint_type": "E1", "s3_endpoint": "pl-labkrk2-1.linodeobjects.com"}' + body: '{"hostname": "go-test-logs-destination-1778265662063843000.gb-lon-1.linodeobjects.com", + "label": "go-test-logs-destination-1778265662063843000", "created": "2018-01-02T03:04:05", + "region": "gb-lon", "cluster": "", "size": 0, "objects": 0, "endpoint_type": + "E3", "s3_endpoint": "gb-lon-1.linodeobjects.com"}' headers: Access-Control-Allow-Credentials: - "true" @@ -372,17 +694,19 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: - - "349" + - "306" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Fri, 08 May 2026 18:41:06 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -397,14 +721,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "12" + - "60" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1778092390182681000"}' + body: '{"label":"go-test-logs-destination-1778265666938925000","regions":["gb-lon"]}' form: {} headers: Accept: @@ -416,10 +740,10 @@ interactions: url: https://api.linode.com/v4beta/object-storage/keys method: POST response: - body: '{"id": 340784, "label": "go-test-logs-destination-1778092390182681000", + body: '{"id": 3619848, "label": "go-test-logs-destination-1778265666938925000", "access_key": "[SANITIZED]", "secret_key": "[SANITIZED]", "limited": false, - "bucket_access": null, "regions": [{"id": "pl-labkrk-2", "s3_endpoint": "pl-labkrk2-1.linodeobjects.com", - "endpoint_type": "E1"}]}' + "bucket_access": null, "regions": [{"id": "gb-lon", "s3_endpoint": "gb-lon-1.linodeobjects.com", + "endpoint_type": "E3"}]}' headers: Access-Control-Allow-Credentials: - "true" @@ -434,17 +758,19 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: - - "325" + - "308" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Fri, 08 May 2026 18:41:09 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -459,14 +785,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "12" + - "60" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1778092390679630000","type":"akamai_object_storage","details":{"access_key_id":"MXVW7MM9OMSPL8HF3G5V","access_key_secret":"B8uiL21m41LHLHjjWBpoxU7KB7CzxRL6KdwMqQu1","bucket_name":"go-test-logs-destination-1778092389375217000","host":"go-test-logs-destination-1778092389375217000.pl-labkrk2-1.linodeobjects.com"}}' + body: '{"label":"go-test-logs-destination-1778265669839923000","type":"akamai_object_storage","details":{"access_key_id":"E8JO4A3NSB4MZS25FBX6","access_key_secret":"ysjG2BVjev4AcLYafUxx1rrMRe1JqTEHHhm3eiyW","bucket_name":"go-test-logs-destination-1778265662063843000","host":"go-test-logs-destination-1778265662063843000.gb-lon-1.linodeobjects.com"}}' form: {} headers: Accept: @@ -478,11 +804,11 @@ interactions: url: https://api.linode.com/v4beta/monitor/streams/destinations method: POST response: - body: '{"id": 1099, "label": "go-test-logs-destination-1778092390679630000", "type": - "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778092389375217000.pl-labkrk2-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1778092389375217000", "access_key_id": - "MXVW7MM9OMSPL8HF3G5V"}, "version": 1, "status": "active", "created_by": "klipensk-aclp", - "created": "2018-01-02T03:04:05", "updated_by": "klipensk-aclp", "updated": + body: '{"id": 460, "label": "go-test-logs-destination-1778265669839923000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778265662063843000.gb-lon-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1778265662063843000", "access_key_id": + "E8JO4A3NSB4MZS25FBX6"}, "version": 1, "status": "active", "created_by": "dola-klipensk", + "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": "2018-01-02T03:04:05"}' headers: Access-Control-Allow-Credentials: @@ -498,17 +824,19 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: - - "479" + - "465" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Fri, 08 May 2026 18:41:11 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -523,7 +851,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -539,17 +867,17 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/2128 + url: https://api.linode.com/v4beta/monitor/streams/203 method: GET response: - body: '{"id": 2128, "label": "go-test-log-stream-1778092384810499000", "type": - "audit_logs", "destinations": [{"id": 1098, "type": "akamai_object_storage", - "label": "go-test-logs-destination-1778092382634636000", "details": {"host": - "go-test-logs-destination-1778092381336293000.pl-labkrk2-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1778092381336293000", "access_key_id": - "5X3BYDLE4YQQWY63YJHM"}}], "details": null, "version": 1, "status": "active", - "created_by": "klipensk-aclp", "created": "2018-01-02T03:04:05", "updated_by": - "klipensk-aclp", "updated": "2018-01-02T03:04:05"}' + body: '{"id": 203, "label": "go-test-log-stream-1778265661693801000", "type": + "audit_logs", "destinations": [{"id": 459, "type": "akamai_object_storage", + "label": "go-test-logs-destination-1778265660497988000", "details": {"host": + "go-test-logs-destination-1778265653315370000.gb-lon-1.linodeobjects.com", "bucket_name": + "go-test-logs-destination-1778265653315370000", "access_key_id": "G3NCAR5F3LRSJ3VLGZ6A"}}], + "details": null, "version": 1, "status": "active", "created_by": "dola-klipensk", + "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": + "2018-01-02T03:04:05"}' headers: Access-Control-Allow-Credentials: - "true" @@ -564,18 +892,19 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=0, s-maxage=0, no-cache, no-store - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: - - "602" + - "586" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Fri, 08 May 2026 19:06:23 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -591,14 +920,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"destinations":[1099]}' + body: '{"destinations":[460]}' form: {} headers: Accept: @@ -607,17 +936,17 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/2128 + url: https://api.linode.com/v4beta/monitor/streams/203 method: PUT response: - body: '{"id": 2128, "label": "go-test-log-stream-1778092384810499000", "type": - "audit_logs", "destinations": [{"id": 1099, "type": "akamai_object_storage", - "label": "go-test-logs-destination-1778092390679630000", "details": {"host": - "go-test-logs-destination-1778092389375217000.pl-labkrk2-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1778092389375217000", "access_key_id": - "MXVW7MM9OMSPL8HF3G5V"}}], "details": null, "version": 2, "status": "provisioning", - "created_by": "klipensk-aclp", "created": "2018-01-02T03:04:05", "updated_by": - "klipensk-aclp", "updated": "2018-01-02T03:04:05"}' + body: '{"id": 203, "label": "go-test-log-stream-1778265661693801000", "type": + "audit_logs", "destinations": [{"id": 460, "type": "akamai_object_storage", + "label": "go-test-logs-destination-1778265669839923000", "details": {"host": + "go-test-logs-destination-1778265662063843000.gb-lon-1.linodeobjects.com", "bucket_name": + "go-test-logs-destination-1778265662063843000", "access_key_id": "E8JO4A3NSB4MZS25FBX6"}}], + "details": null, "version": 2, "status": "provisioning", "created_by": "dola-klipensk", + "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": + "2018-01-02T03:04:05"}' headers: Access-Control-Allow-Credentials: - "true" @@ -632,17 +961,19 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: - - "607" + - "592" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Fri, 08 May 2026 19:06:23 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -657,7 +988,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -673,24 +1004,24 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/2128/history?page=1 + url: https://api.linode.com/v4beta/monitor/streams/203/history?page=1 method: GET response: - body: '{"pages": 1, "page": 1, "results": 2, "data": [{"id": 2128, "label": "go-test-log-stream-1778092384810499000", - "type": "audit_logs", "destinations": [{"id": 1099, "type": "akamai_object_storage", - "label": "go-test-logs-destination-1778092390679630000", "details": {"host": - "go-test-logs-destination-1778092389375217000.pl-labkrk2-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1778092389375217000", "access_key_id": - "MXVW7MM9OMSPL8HF3G5V"}}], "details": null, "version": 2, "status": "provisioning", - "created_by": "klipensk-aclp", "created": "2018-01-02T03:04:05", "updated_by": - "klipensk-aclp", "updated": "2018-01-02T03:04:05"}, {"id": 2128, "label": "go-test-log-stream-1778092384810499000", - "type": "audit_logs", "destinations": [{"id": 1098, "type": "akamai_object_storage", - "label": "go-test-logs-destination-1778092382634636000", "details": {"host": - "go-test-logs-destination-1778092381336293000.pl-labkrk2-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1778092381336293000", "access_key_id": - "5X3BYDLE4YQQWY63YJHM"}}], "details": null, "version": 1, "status": "inactive", - "created_by": "klipensk-aclp", "created": "2018-01-02T03:04:05", "updated_by": - "klipensk-aclp", "updated": "2018-01-02T03:04:05"}]}' + body: '{"pages": 1, "page": 1, "results": 2, "data": [{"id": 203, "label": "go-test-log-stream-1778265661693801000", + "type": "audit_logs", "destinations": [{"id": 460, "type": "akamai_object_storage", + "label": "go-test-logs-destination-1778265669839923000", "details": {"host": + "go-test-logs-destination-1778265662063843000.gb-lon-1.linodeobjects.com", "bucket_name": + "go-test-logs-destination-1778265662063843000", "access_key_id": "E8JO4A3NSB4MZS25FBX6"}}], + "details": null, "version": 2, "status": "provisioning", "created_by": "dola-klipensk", + "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": + "2018-01-02T03:04:05"}, {"id": 203, "label": "go-test-log-stream-1778265661693801000", + "type": "audit_logs", "destinations": [{"id": 459, "type": "akamai_object_storage", + "label": "go-test-logs-destination-1778265660497988000", "details": {"host": + "go-test-logs-destination-1778265653315370000.gb-lon-1.linodeobjects.com", "bucket_name": + "go-test-logs-destination-1778265653315370000", "access_key_id": "G3NCAR5F3LRSJ3VLGZ6A"}}], + "details": null, "version": 1, "status": "inactive", "created_by": "dola-klipensk", + "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": + "2018-01-02T03:04:05"}]}' headers: Access-Control-Allow-Credentials: - "true" @@ -705,21 +1036,23 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=0, s-maxage=0, no-cache, no-store - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Fri, 08 May 2026 19:06:24 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: - Authorization, X-Filter - Authorization, X-Filter + - Accept-Encoding X-Accepted-Oauth-Scopes: - monitor:read_only X-Content-Type-Options: @@ -730,14 +1063,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"destinations":[1098]}' + body: '{"destinations":[459]}' form: {} headers: Accept: @@ -746,7 +1079,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/2128 + url: https://api.linode.com/v4beta/monitor/streams/203 method: PUT response: body: '{"errors": [{"reason": "Unable to edit Stream at this time"}]}' @@ -759,14 +1092,18 @@ interactions: - '*' Akamai-Internal-Account: - '*' - Connection: - - keep-alive + Cache-Control: + - max-age=0, no-cache, no-store Content-Length: - "62" Content-Type: - application/json - Server: - - nginx + Expires: + - Fri, 08 May 2026 19:06:24 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 X-Accepted-Oauth-Scopes: - monitor:read_write X-Frame-Options: @@ -774,8 +1111,8 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" - status: 400 BAD REQUEST + - "1840" + status: 400 Bad Request code: 400 duration: "" - request: @@ -788,7 +1125,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations/1099 + url: https://api.linode.com/v4beta/monitor/streams/destinations/460 method: DELETE response: body: '{"errors": [{"reason": "Unable to delete Destination attached to active @@ -802,14 +1139,20 @@ interactions: - '*' Akamai-Internal-Account: - '*' + Cache-Control: + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: - "94" Content-Type: - application/json - Server: - - nginx + Expires: + - Fri, 08 May 2026 19:06:25 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 X-Accepted-Oauth-Scopes: - monitor:read_write X-Frame-Options: @@ -817,8 +1160,8 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" - status: 400 BAD REQUEST + - "1840" + status: 400 Bad Request code: 400 duration: "" - request: @@ -831,7 +1174,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/keys/340784 + url: https://api.linode.com/v4beta/object-storage/keys/3619848 method: DELETE response: body: '{}' @@ -849,7 +1192,7 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: @@ -858,8 +1201,10 @@ interactions: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Fri, 08 May 2026 19:06:26 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -874,7 +1219,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "12" + - "60" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -890,12 +1235,12 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/pl-labkrk-2/go-test-logs-destination-1778092389375217000/object-list + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778265662063843000/object-list method: GET response: - body: '{"data": [{"name": "cloud-logs-test-connection-20260506T183312", "size": - 9, "last_modified": "2018-01-02T03:04:05.289Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", - "owner": "512fe32a-48a2-4a57-8a11-0eef806858d3"}], "next_marker": null, "is_truncated": + body: '{"data": [{"name": "cloud-logs-test-connection-20260508T184110", "size": + 9, "last_modified": "2018-01-02T03:04:05.714Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}], "next_marker": null, "is_truncated": false}' headers: Access-Control-Allow-Credentials: @@ -911,8 +1256,7 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=0, s-maxage=0, no-cache, no-store - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: @@ -921,8 +1265,10 @@ interactions: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Fri, 08 May 2026 19:06:28 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -938,14 +1284,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"name":"cloud-logs-test-connection-20260506T183312","method":"DELETE","expires_in":360}' + body: '{"name":"cloud-logs-test-connection-20260508T184110","method":"DELETE","expires_in":360}' form: {} headers: Accept: @@ -954,10 +1300,10 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/pl-labkrk-2/go-test-logs-destination-1778092389375217000/object-url + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778265662063843000/object-url method: POST response: - body: '{"url": "https://pl-labkrk2-1.linodeobjects.com:443/go-test-logs-destination-1778092389375217000/cloud-logs-test-connection-20260506T183312?Signature=GdNrFnHihS15Q2mtgQjBKUHHv1s%3D&Expires=1778094450&AWSAccessKeyID=SANITIZED", + body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-destination-1778265662063843000/cloud-logs-test-connection-20260508T184110?Signature=2%2BWpUdBKQCeoncVVwJ8pThN7xi8%3D&Expires=1778267552&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCsWYWN1qEqeVEdhpgAl3G5Ln6CsdLCGe0B7eeQet8y0TX9asCy7/ILdcdXYJFQmJrOKZcPWbzGUVqQ9vSvKxZmPY05lICYhWtlXjPa3maJoL4dMuGYuVv4o4yeIt3znZ0VDY2VxPl3%2BemFxIABzWy/EQ6OAH4b2i3x00giLo09o96XALQVuVaFIAMd6tQ%2BkAWyKXa5tDb%2B79SynrZxbdJqSouyNnMX1v0OZS1fTjFMeaCe/2MLHDXYthoDWyyidRWTISyC2DBHvEaCmpNh8BviuWQoM4sHBx4wlrb7mgdCSU2L3QoZyHs%2BqtVndXx5PUAxlMxqIy8Sl9ryXpTB3XNN%2Bh53gRqO62no46APppQq1Ec9yqG9Ku%2BoW/cCOxTktBU3BbjdYKtoYxZ2vlhqs5C6eJrqwW1635nFal5vARfveHxbcTYknYh0Wtrz0BG7gg8vtNHENnT0V%2BA2Tjan1O5QguLn5K", "exists": true}' headers: Access-Control-Allow-Credentials: @@ -973,17 +1319,19 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: - - "262" + - "851" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Fri, 08 May 2026 19:06:32 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -998,7 +1346,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -1014,7 +1362,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/pl-labkrk-2/go-test-logs-destination-1778092389375217000 + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778265662063843000 method: DELETE response: body: '{}' @@ -1032,7 +1380,7 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: @@ -1041,8 +1389,10 @@ interactions: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Fri, 08 May 2026 19:06:40 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -1057,7 +1407,76 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "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/monitor/streams/203 + method: GET + response: + body: '{"id": 203, "label": "go-test-log-stream-1778265661693801000", "type": + "audit_logs", "destinations": [{"id": 460, "type": "akamai_object_storage", + "label": "go-test-logs-destination-1778265669839923000", "details": {"host": + "go-test-logs-destination-1778265662063843000.gb-lon-1.linodeobjects.com", "bucket_name": + "go-test-logs-destination-1778265662063843000", "access_key_id": "E8JO4A3NSB4MZS25FBX6"}}], + "details": null, "version": 2, "status": "active", "created_by": "dola-klipensk", + "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": + "2018-01-02T03:04:05"}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Length: + - "586" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Fri, 08 May 2026 19:32:52 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - monitor: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 @@ -1073,37 +1492,56 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/2128 + url: https://api.linode.com/v4beta/monitor/streams/203 method: DELETE response: - body: '{"errors": [{"reason": "Unable to delete Stream at this time"}]}' + 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: - - "64" + - "2" + Content-Security-Policy: + - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Fri, 08 May 2026 19:32:52 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter X-Accepted-Oauth-Scopes: - monitor:read_write + X-Content-Type-Options: + - nosniff X-Frame-Options: - DENY + - DENY X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" - status: 400 BAD REQUEST - code: 400 + - "1840" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 duration: "" - request: body: "" @@ -1115,14 +1553,64 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations/1098 + url: https://api.linode.com/v4beta/monitor/streams/203 method: GET response: - body: '{"id": 1098, "label": "go-test-logs-destination-1778092382634636000", "type": - "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778092381336293000.pl-labkrk2-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1778092381336293000", "access_key_id": - "5X3BYDLE4YQQWY63YJHM"}, "version": 1, "status": "active", "created_by": "klipensk-aclp", - "created": "2018-01-02T03:04:05", "updated_by": "klipensk-aclp", "updated": + body: '{"errors": [{"reason": "Stream not found"}]}' + headers: + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Length: + - "44" + Content-Type: + - application/json + Expires: + - Fri, 08 May 2026 19:32:52 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - monitor:read_only + X-Frame-Options: + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "1840" + status: 404 Not Found + code: 404 + 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/monitor/streams/destinations/459 + method: GET + response: + body: '{"id": 459, "label": "go-test-logs-destination-1778265660497988000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778265653315370000.gb-lon-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1778265653315370000", "access_key_id": + "G3NCAR5F3LRSJ3VLGZ6A"}, "version": 1, "status": "active", "created_by": "dola-klipensk", + "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": "2018-01-02T03:04:05"}' headers: Access-Control-Allow-Credentials: @@ -1138,18 +1626,19 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=0, s-maxage=0, no-cache, no-store - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: - - "479" + - "465" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Fri, 08 May 2026 19:32:53 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -1165,7 +1654,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -1181,7 +1670,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations/1098 + url: https://api.linode.com/v4beta/monitor/streams/destinations/459 method: DELETE response: body: '{}' @@ -1199,7 +1688,7 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: @@ -1208,8 +1697,10 @@ interactions: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Fri, 08 May 2026 19:32:53 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -1224,7 +1715,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -1240,7 +1731,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/keys/340783 + url: https://api.linode.com/v4beta/object-storage/keys/3619846 method: DELETE response: body: '{}' @@ -1258,7 +1749,7 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: @@ -1267,8 +1758,10 @@ interactions: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Fri, 08 May 2026 19:32:54 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -1283,7 +1776,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "12" + - "60" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -1299,12 +1792,20 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/pl-labkrk-2/go-test-logs-destination-1778092381336293000/object-list + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778265653315370000/object-list method: GET response: - body: '{"data": [{"name": "cloud-logs-test-connection-20260506T183304", "size": - 9, "last_modified": "2018-01-02T03:04:05.153Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", - "owner": "512fe32a-48a2-4a57-8a11-0eef806858d3"}], "next_marker": null, "is_truncated": + body: '{"data": [{"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/08/akamai_log-094968-1778267278-775570-config.gz", + "size": 592, "last_modified": "2018-01-02T03:04:05.391Z", "etag": "2ca2f803d804dab7db0542bad470f57a", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/08/akamai_log-125075-1778267274-876655-config.gz", + "size": 1148, "last_modified": "2018-01-02T03:04:05.662Z", "etag": "c5b43694818887d546b111ca0edac09b", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/08/akamai_log-225211-1778267892-219672-config.gz", + "size": 577, "last_modified": "2018-01-02T03:04:05.973Z", "etag": "6766a6fccdeb39dc25af8644dc4a15db", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/08/akamai_log-797880-1778267720-174822-config.gz", + "size": 577, "last_modified": "2018-01-02T03:04:05.497Z", "etag": "b7d00daa5ad94f63eea861900fb9fba4", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "cloud-logs-test-connection-20260508T184100", + "size": 9, "last_modified": "2018-01-02T03:04:05.383Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}], "next_marker": null, "is_truncated": false}' headers: Access-Control-Allow-Credentials: @@ -1320,23 +1821,23 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=0, s-maxage=0, no-cache, no-store - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive - Content-Length: - - "259" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Fri, 08 May 2026 19:32:56 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: - Authorization, X-Filter - Authorization, X-Filter + - Accept-Encoding X-Accepted-Oauth-Scopes: - object_storage:read_only X-Content-Type-Options: @@ -1347,14 +1848,258 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" +- request: + body: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/08/akamai_log-094968-1778267278-775570-config.gz","method":"DELETE","expires_in":360}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778265653315370000/object-url + method: POST + response: + body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-destination-1778265653315370000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/08/akamai_log-094968-1778267278-775570-config.gz?Signature=bcJW%2FKF3saXM1%2BEzt367pRhp20Y%3D&Expires=1778269139&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCr2D1BN/z/pqxKBmKpS407JFe55bowQtvEjOw9zink42W0WNixlAu5enRKSf371cp5PWJ4YiMp05Cg2g4M4tO/L8S/W5gSYhw/EEJnc6R%2BysRRorQZbNnvxSZkN7FSdo2svni00DWVeCyta9Jo5Tz8J6r/K2hAuwWiLqkIhToFgQtXsFwt5xxKnXeLoMVaDVLU7ZXKnNZmwlPdiRh4niQ3AuKhUjyo6um7wXzye82/kp7M0Q4uf2OLaSd4D6BNaEltaUY16O6kzwH0wf8Na%2B4FwUovILgWVwrK59dOSG69qq5ZWgjYGft7Iye9BANCehTNDOt%2BKrYXThvhclXVFsidJ3Hze/E/ksPqKqrooRRn9%2B%2BH6/q1xHQZJjOhsTs5g7bKvRR1si62KWOD9J05niWF38GanNskLZ1KA8%2BXAJfQb8sx8sSPIVmxWt6OrrJqDIAf0owvfVxY/pi46vYCUCecr1%2BQqW", + "exists": true}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Fri, 08 May 2026 19:32:59 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - object_storage: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: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/08/akamai_log-125075-1778267274-876655-config.gz","method":"DELETE","expires_in":360}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778265653315370000/object-url + method: POST + response: + body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-destination-1778265653315370000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/08/akamai_log-125075-1778267274-876655-config.gz?Signature=yS%2F6zpyt%2F%2F8MhEKMMkvmCATJUr8%3D&Expires=1778269144&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjClsqEk/5%2BRfV2SCqQ9z07X9tyXijnqxv4REtTsy0M4HXqYBzkYMhXij5vmuj4m5wesj0%2BaygK0HJybCPn6rWhjtWGB9wdYNVvfem6Bou%2BFwpixqbgTSLkMPIJX6/Yyzf8knYRO6PLE3BQLgcHh%2B8AvI3k/SIjNPCylfdN%2BFzEA6FyBReOTXGsv2PUaRFFFd8byAPdiEMLu8DC2bt565gq%2BIUVN3i4hlo2VxHVGYPurD5JolBX%2Bf/M/G/wyLsybwxSHQFcgKtAasGgQJjEIs3u2ht4iD59mZ0YmHsmX6yD39VyZDvQBD%2BvcuupHu%2BRXf/7R0H8FtKdJhwBqpFMf6zzT8vsdTr%2B6rlZmLMUV%2BNeCKoRl1POWiNsjs%2BPjG5UDO5%2BYJIAuIVqfW/s1RMu/LJ2mWfxsJU1E2i%2B4XYiJX74r%2BlW%2BtWXNMSY4hvb42bCV/WfckhPVgkN5IswNMm1ZxlwlGtKRnI", + "exists": true}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Fri, 08 May 2026 19:33:04 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - object_storage: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: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/08/akamai_log-225211-1778267892-219672-config.gz","method":"DELETE","expires_in":360}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778265653315370000/object-url + method: POST + response: + body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-destination-1778265653315370000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/08/akamai_log-225211-1778267892-219672-config.gz?Signature=KtycrTWC6JQ7kmTHTEl48%2FWmpOM%3D&Expires=1778269147&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCmjfszk441yxGFT9U/m8NiDCLEE/UIPMtQcKVkm66/p%2BU74NTdos/dyzQfCMnWXqcnhTBnHnK8M8ZbTLY0oNV%2B73MlvqaLhakymbqn/BX7e8zl6noPEt3Rzm6u2YgtwRRQqJzeIWlEOUhQtbEFizFOjgTczKvaFNiTod9LxCyHuZgfZE%2BEMJh7ok5dIWsNnnq0i4OX3gvrkQdmkwMAwueINCe4P4duqwGZjZGL/c45zKgO2xgk3uRTJiOak7zOVQoXoVla1FUkp6Gl26V0yU78qPyFxUPsf26h%2BDYEmBd%2BXBQqwRH5XreIjmmX9JUWB59sk0ZBIb138D2hTp5N9NOmsYB%2BXhzPP7ZoQlt8G6w7UvDYFYfLUbWkKgIfT3Ztx22mcQY30L/K7xUWoiLU9tJJppONPQx%2BZjK2H1hZpuad45CaDud2szCUs8IQ%3D%3D", + "exists": true}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Fri, 08 May 2026 19:33:07 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - object_storage: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: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/08/akamai_log-797880-1778267720-174822-config.gz","method":"DELETE","expires_in":360}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778265653315370000/object-url + method: POST + response: + body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-destination-1778265653315370000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/08/akamai_log-797880-1778267720-174822-config.gz?Signature=I3lhQ6me61Ho%2BKW0ya03lW2Qr7Y%3D&Expires=1778269151&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCu8F9tiaXwCdn5f%2BAw2O8kM0ybLzIX4PnfgjDRyuex6A1LHPjoSB%2BQaoseTXoW7rrbADOh93quZ53B/hh%2BafvmmqYoa%2BS35i%2B6jzGo9xItKW1nMZ0sW%2Bv2dRskPWWbvNFu3iJVA5pGMRAW6OVO8sXoAb9iJQ%2Bc4uIHVgQed7PQaDnybalBgBclzAjTG3%2BwmLN0ZeZZ01dZ6Kxsuh%2BlWeSWw2CHKZNtM54vvtydQZezJYizif1Or2Q44x2a48L80j5bohA1qF%2B0lhidw%2B2h4cQ7qU10%2Bo7qYH6vVtuUr2mFafQUpeJyQrE8a5wly%2BhiJpRfRVn7gQpr5ug7TpUAli71%2BuwvU/PI9vRS9fyf2xmTMk/CmG41GimB1mtSbhE8z2OrRApOiYVXDgNbmMJW%2BifaRtcLhRm/iQ5LjEB0tAN0QO03xPAfBQFLcTiqp0KeEjRQw3bZbT/9g0QxaRAIT5NW4/x9kB", + "exists": true}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Fri, 08 May 2026 19:33:11 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - object_storage: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: '{"name":"cloud-logs-test-connection-20260506T183304","method":"DELETE","expires_in":360}' + body: '{"name":"cloud-logs-test-connection-20260508T184100","method":"DELETE","expires_in":360}' form: {} headers: Accept: @@ -1363,10 +2108,10 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/pl-labkrk-2/go-test-logs-destination-1778092381336293000/object-url + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778265653315370000/object-url method: POST response: - body: '{"url": "https://pl-labkrk2-1.linodeobjects.com:443/go-test-logs-destination-1778092381336293000/cloud-logs-test-connection-20260506T183304?Signature=8WS%2FOc3CCeKCNmhcOeLJg%2B%2BxNPc%3D&Expires=1778094480&AWSAccessKeyID=SANITIZED", + body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-destination-1778265653315370000/cloud-logs-test-connection-20260508T184100?Signature=ci5LdZEx%2Bp3sWHnILUeGxd%2FJXpQ%3D&Expires=1778269156&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCirWHktViqtcY0uEQeEw177u5elq3x%2BeNel%2BRWQ/IM%2BM3T7FxI66T24U04nXCXuQPaVL08PVr1e7Q6HTD4yH6GeK5FNQRXzlx1CxcvNz0mizer8QhvE3KY9C6oHLus6MRBGmDqIyMUDRF7lFpyGz5F8hkF4WhNmLlCpvuQfTr/leKdgTOZu9Q1UKkRlZshE4cK4MxV9G39p8ssJKFOnRNgHWS366BUa9amnd4gCX59h/Dg%2BPlOVVDoCAarB8xYjdQApW904x/ew/pXKu1ZijtQy56niQAt1I5oxcj3/fRhMDZ8pqdcY5CJ6mvnEyWhLS8IJE9HkH6JBW6rkfDl/bzpnnrXJ4ibB3u2we3crQ8z/uIJE3beJzaOB1UPtwCOOjRdH6mH857tssXyQzVXudp2/1/4Q%2Bwn0P1O/QC0KMBDP6l4hfiGJSsPGLjhC9BTqYoyE9zHm3094xuh1EkkInP26Yq9n%2B", "exists": true}' headers: Access-Control-Allow-Credentials: @@ -1382,17 +2127,19 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: - - "268" + - "851" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Fri, 08 May 2026 19:33:16 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -1407,7 +2154,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -1423,7 +2170,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/pl-labkrk-2/go-test-logs-destination-1778092381336293000 + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778265653315370000 method: DELETE response: body: '{}' @@ -1441,7 +2188,7 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: @@ -1450,8 +2197,10 @@ interactions: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Fri, 08 May 2026 19:33:22 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -1466,7 +2215,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" X-Xss-Protection: - 1; mode=block status: 200 OK diff --git a/test/integration/fixtures/TestLogStream_Update_LabelAndStatus.yaml b/test/integration/fixtures/TestLogStream_Update_LabelAndStatus.yaml index 52bb3d848..264835f6a 100644 --- a/test/integration/fixtures/TestLogStream_Update_LabelAndStatus.yaml +++ b/test/integration/fixtures/TestLogStream_Update_LabelAndStatus.yaml @@ -14,34 +14,346 @@ interactions: url: https://api.linode.com/v4beta/regions?page=1 method: GET response: - body: '{"data": [{"id": "pl-labkrk-2", "label": "Krakow, PL", "country": "pl", - "capabilities": ["Linodes", "Block Storage Encryption", "LA Disk Encryption", - "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", "Object Storage", - "GPU Linodes", "Kubernetes", "Kubernetes Enterprise", "Cloud Firewall", "Vlans", - "VPCs", "VPC Dual Stack", "Block Storage Migrations", "Managed Databases", "Metadata", + body: '{"data": [{"id": "gb-lon", "label": "London 2, UK", "country": "gb", "capabilities": + ["Linodes", "Block Storage Encryption", "LA Disk Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "Object Storage", "GPU Linodes", + "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts", "NETINT Quadra T1U", "Maintenance - Policy", "Linode Interfaces", "Network LoadBalancer", "ACLP Logs Datacenter - LKE-E"], "monitors": {"alerts": ["Block Storage", "Cloud Firewall", "Kubernetes", - "Linodes", "Managed Databases", "Network LoadBalancer", "NodeBalancers", "Object - Storage", "logs"], "metrics": ["Block Storage", "Cloud Firewall", "Kubernetes", - "Linodes", "Managed Databases", "Network LoadBalancer", "NodeBalancers", "Object - Storage", "logs"]}, "status": "ok", "resolvers": {"ipv4": "172.24.224.240,172.24.224.229,172.24.224.236,172.24.224.238,172.24.224.235,172.24.224.241,172.24.224.230,172.24.224.239,172.24.224.233,172.24.224.234", + Policy", "Linode Interfaces", "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": + ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.236.0.46,172.236.0.50,172.236.0.47,172.236.0.53,172.236.0.52,172.236.0.45,172.236.0.49,172.236.0.51,172.236.0.54,172.236.0.48", "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": - 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-labedgeeat-2", - "label": "East Wenatchee, US", "country": "us", "capabilities": ["Linodes", - "Disk Encryption", "Cloud Firewall", "Vlans", "VPCs", "VPC Dual Stack", "Metadata", - "Distributed Plans", "Linode Interfaces"], "monitors": {"alerts": [], "metrics": - []}, "status": "ok", "resolvers": {"ipv4": "173.223.100.53,173.223.101.53", - "ipv6": "1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": - 0, "maximum_linodes_per_pg": 0, "maximum_linodes_per_flexible_pg": 0}, "site_type": - "distributed"}, {"id": "us-labedgeeat-3", "label": "East Wenatchee, US", "country": - "us", "capabilities": ["Linodes", "Disk Encryption", "Cloud Firewall", "Metadata", - "Distributed Plans"], "monitors": {"alerts": [], "metrics": []}, "status": "ok", - "resolvers": {"ipv4": "173.223.100.53,173.223.101.53", "ipv6": "1234::5678,1234::5678"}, - "placement_group_limits": {"maximum_pgs_per_customer": 0, "maximum_linodes_per_pg": - 0, "maximum_linodes_per_flexible_pg": 0}, "site_type": "distributed"}], "page": - 1, "pages": 1, "results": 3}' + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "se-sto", + "label": "Stockholm, SE", "country": "se", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.232.128.24,172.232.128.26,172.232.128.20,172.232.128.22,172.232.128.25,172.232.128.19,172.232.128.23,172.232.128.18,172.232.128.21,172.232.128.27", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "es-mad", + "label": "Madrid, ES", "country": "es", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.233.111.6,172.233.111.17,172.233.111.21,172.233.111.25,172.233.111.19,172.233.111.12,172.233.111.26,172.233.111.16,172.233.111.18,172.233.111.9", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "in-maa", + "label": "Chennai, IN", "country": "in", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces"], + "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed + Databases", "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.232.96.17,172.232.96.26,172.232.96.19,172.232.96.20,172.232.96.25,172.232.96.21,172.232.96.18,172.232.96.22,172.232.96.23,172.232.96.24", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "jp-osa", + "label": "Osaka, JP", "country": "jp", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.233.64.44,172.233.64.43,172.233.64.37,172.233.64.40,172.233.64.46,172.233.64.41,172.233.64.39,172.233.64.42,172.233.64.45,172.233.64.38", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "it-mil", + "label": "Milan, IT", "country": "it", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.232.192.19,172.232.192.18,172.232.192.16,172.232.192.20,172.232.192.24,172.232.192.21,172.232.192.22,172.232.192.17,172.232.192.15,172.232.192.23", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-mia", + "label": "Miami, FL", "country": "us", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces"], + "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed + Databases", "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.233.160.34,172.233.160.27,172.233.160.30,172.233.160.29,172.233.160.32,172.233.160.28,172.233.160.33,172.233.160.26,172.233.160.25,172.233.160.31", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "id-cgk", + "label": "Jakarta, ID", "country": "id", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.232.224.23,172.232.224.32,172.232.224.26,172.232.224.27,172.232.224.21,172.232.224.24,172.232.224.22,172.232.224.20,172.232.224.31,172.232.224.28", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-lax", + "label": "Los Angeles, CA", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces", + "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "172.233.128.45,172.233.128.38,172.233.128.53,172.233.128.37,172.233.128.34,172.233.128.36,172.233.128.33,172.233.128.39,172.233.128.43,172.233.128.44", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "nl-ams", + "label": "Amsterdam, NL", "country": "nl", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.233.33.36,172.233.33.38,172.233.33.35,172.233.33.39,172.233.33.34,172.233.33.33,172.233.33.31,172.233.33.30,172.233.33.37,172.233.33.32", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "au-mel", + "label": "Melbourne, AU", "country": "au", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "Kubernetes", "Cloud Firewall", "Vlans", + "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": + ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.236.32.23,172.236.32.35,172.236.32.30,172.236.32.28,172.236.32.32,172.236.32.33,172.236.32.27,172.236.32.37,172.236.32.29,172.236.32.34", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "in-bom-2", + "label": "Mumbai 2, IN", "country": "in", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", + "Managed Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts", + "Maintenance Policy", "Linode Interfaces", "ACLP Logs Datacenter LKE-E"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.236.171.41,172.236.171.42,172.236.171.25,172.236.171.44,172.236.171.26,172.236.171.45,172.236.171.24,172.236.171.43,172.236.171.27,172.236.171.28", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "de-fra-2", + "label": "Frankfurt 2, DE", "country": "de", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces", + "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "172.236.203.9,172.236.203.16,172.236.203.19,172.236.203.15,172.236.203.17,172.236.203.11,172.236.203.18,172.236.203.14,172.236.203.13,172.236.203.12", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "sg-sin-2", + "label": "Singapore 2, SG", "country": "sg", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs + Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], + "metrics": ["Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": + {"ipv4": "172.236.129.8,172.236.129.42,172.236.129.41,172.236.129.19,172.236.129.46,172.236.129.23,172.236.129.48,172.236.129.20,172.236.129.21,172.236.129.47", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "jp-tyo-3", + "label": "Tokyo 3, JP", "country": "jp", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs + Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], + "metrics": ["Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": + {"ipv4": "172.237.4.15,172.237.4.19,172.237.4.17,172.237.4.21,172.237.4.16,172.237.4.18,172.237.4.23,172.237.4.24,172.237.4.20,172.237.4.14", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-iad-2", + "label": "Washington 2, DC", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", + "Object Storage", "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Managed + Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts", + "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed + Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "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": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "fr-par-2", + "label": "Paris 2, FR", "country": "fr", "capabilities": ["Linodes", "Block + Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", + "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces", "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": + ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.239.11.24,172.239.11.22,172.239.11.17,172.239.11.20,172.239.11.23,172.239.11.19,172.239.11.21,172.239.11.15,172.239.11.16,172.239.11.18", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "br-gru", + "label": "Sao Paulo, BR", "country": "br", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "Kubernetes", "Cloud Firewall", "Vlans", + "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": + ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.233.0.4,172.233.0.9,172.233.0.7,172.233.0.12,172.233.0.5,172.233.0.13,172.233.0.10,172.233.0.6,172.233.0.8,172.233.0.11", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-sea", + "label": "Seattle, WA", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs + Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], + "metrics": ["Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": + {"ipv4": "172.232.160.19,172.232.160.21,172.232.160.17,172.232.160.15,172.232.160.18,172.232.160.8,172.232.160.12,172.232.160.11,172.232.160.14,172.232.160.16", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "fr-par", + "label": "Paris, FR", "country": "fr", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.232.32.21,172.232.32.23,172.232.32.17,172.232.32.18,172.232.32.16,172.232.32.22,172.232.32.20,172.232.32.14,172.232.32.11,172.232.32.12", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-ord", + "label": "Chicago, IL", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs + Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], + "metrics": ["Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": + {"ipv4": "172.232.0.17,172.232.0.16,172.232.0.21,172.232.0.13,172.232.0.22,172.232.0.9,172.232.0.19,172.232.0.20,172.232.0.15,172.232.0.18", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-iad", + "label": "Washington, DC", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "Kubernetes", "Cloud Firewall", "Vlans", + "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs Datacenter + LKE-E"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": + ["Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": + "139.144.192.62,139.144.192.60,139.144.192.61,139.144.192.53,139.144.192.54,139.144.192.67,139.144.192.69,139.144.192.66,139.144.192.52,139.144.192.68", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ap-southeast", + "label": "Sydney, AU", "country": "au", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "172.105.166.5,172.105.169.5,172.105.168.5,172.105.172.5,172.105.162.5,172.105.170.5,172.105.167.5,172.105.171.5,172.105.181.5,172.105.161.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ca-central", + "label": "Toronto, CA", "country": "ca", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "Block + Storage Migrations", "Managed Databases", "Metadata", "Placement Group", "StackScripts", + "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed + Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "172.105.0.5,172.105.3.5,172.105.4.5,172.105.5.5,172.105.6.5,172.105.7.5,172.105.8.5,172.105.9.5,172.105.10.5,172.105.11.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ap-west", + "label": "Mumbai, IN", "country": "in", "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.34.5,172.105.35.5,172.105.36.5,172.105.37.5,172.105.38.5,172.105.39.5,172.105.40.5,172.105.41.5,172.105.42.5,172.105.43.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-central", + "label": "Dallas, TX", "country": "us", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "72.14.179.5,72.14.188.5,173.255.199.5,66.228.53.5,96.126.122.5,96.126.124.5,96.126.127.5,198.58.107.5,198.58.111.5,23.239.24.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ap-northeast", + "label": "Tokyo 2, JP", "country": "jp", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "139.162.66.5,139.162.67.5,139.162.68.5,139.162.69.5,139.162.70.5,139.162.71.5,139.162.72.5,139.162.73.5,139.162.74.5,139.162.75.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "eu-central", + "label": "Frankfurt, DE", "country": "de", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "139.162.130.5,139.162.131.5,139.162.132.5,139.162.133.5,139.162.134.5,139.162.135.5,139.162.136.5,139.162.137.5,139.162.138.5,139.162.139.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ap-south", + "label": "Singapore, SG", "country": "sg", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "Block Storage Migrations", "Metadata", "Placement Group", "StackScripts", + "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": ["NodeBalancers"], + "metrics": ["NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "139.162.11.5,139.162.13.5,139.162.14.5,139.162.15.5,139.162.16.5,139.162.21.5,139.162.27.5,103.3.60.18,103.3.60.19,103.3.60.20", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "eu-west", + "label": "London, UK", "country": "gb", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Metadata", "Placement Group", "StackScripts", "Maintenance Policy", "Linode + Interfaces"], "monitors": {"alerts": ["NodeBalancers"], "metrics": ["NodeBalancers"]}, + "status": "ok", "resolvers": {"ipv4": "178.79.182.5, 176.58.107.5, 176.58.116.5, + 176.58.121.5, 151.236.220.5, 212.71.252.5, 212.71.253.5, 109.74.192.20, 109.74.193.20, + 109.74.194.20", "ipv6": "1234::5678, 1234::5678, 1234::5678, 1234::5678, + 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-east", + "label": "Newark, NJ", "country": "us", "capabilities": ["Linodes", "Block Storage + Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "66.228.42.5,96.126.106.5,50.116.53.5,50.116.58.5,50.116.61.5,50.116.62.5,66.175.211.5,97.107.133.4,173.255.225.5,66.228.35.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-southeast", + "label": "Atlanta, GA", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata", "Placement + Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": + {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", + "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "74.207.231.5,173.230.128.5,173.230.129.5,173.230.136.5,173.230.140.5,66.228.59.5,66.228.62.5,50.116.35.5,50.116.41.5,23.239.18.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-west", + "label": "Fremont, CA", "country": "us", "capabilities": ["Linodes", "Block + Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance + Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", + "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": + "ok", "resolvers": {"ipv4": "173.230.145.5, 173.230.147.5, 173.230.155.5, 173.255.212.5, + 173.255.219.5, 173.255.241.5, 173.255.243.5, 173.255.244.5, 74.207.241.5, 74.207.242.5", + "ipv6": "1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, + 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678"}, "placement_group_limits": + {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5, "maximum_linodes_per_flexible_pg": + 5}, "site_type": "core"}], "page": 1, "pages": 1, "results": 33}' headers: Access-Control-Allow-Credentials: - "true" @@ -56,21 +368,23 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=900 - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Fri, 08 May 2026 16:27:27 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: @@ -81,14 +395,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"region":"pl-labkrk-2","label":"go-test-logs-destination-1778150734488950000","acl":"private","cors_enabled":false}' + body: '{"region":"gb-lon","label":"go-test-logs-destination-1778257647218326000","acl":"private","cors_enabled":false}' form: {} headers: Accept: @@ -100,10 +414,10 @@ interactions: url: https://api.linode.com/v4beta/object-storage/buckets method: POST response: - body: '{"hostname": "go-test-logs-destination-1778150734488950000.pl-labkrk2-1.linodeobjects.com", - "label": "go-test-logs-destination-1778150734488950000", "created": "2018-01-02T03:04:05", - "region": "pl-labkrk-2", "cluster": "pl-labkrk2-1", "size": 0, "objects": 0, - "endpoint_type": "E1", "s3_endpoint": "pl-labkrk2-1.linodeobjects.com"}' + body: '{"hostname": "go-test-logs-destination-1778257647218326000.gb-lon-1.linodeobjects.com", + "label": "go-test-logs-destination-1778257647218326000", "created": "2018-01-02T03:04:05", + "region": "gb-lon", "cluster": "", "size": 0, "objects": 0, "endpoint_type": + "E3", "s3_endpoint": "gb-lon-1.linodeobjects.com"}' headers: Access-Control-Allow-Credentials: - "true" @@ -118,17 +432,19 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: - - "349" + - "306" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Fri, 08 May 2026 16:27:33 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -143,14 +459,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "12" + - "60" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1778150735295090000","regions":["pl-labkrk-2"]}' + body: '{"label":"go-test-logs-destination-1778257653300550000","regions":["gb-lon"]}' form: {} headers: Accept: @@ -162,10 +478,10 @@ interactions: url: https://api.linode.com/v4beta/object-storage/keys method: POST response: - body: '{"id": 341620, "label": "go-test-logs-destination-1778150735295090000", + body: '{"id": 3618128, "label": "go-test-logs-destination-1778257653300550000", "access_key": "[SANITIZED]", "secret_key": "[SANITIZED]", "limited": false, - "bucket_access": null, "regions": [{"id": "pl-labkrk-2", "s3_endpoint": "pl-labkrk2-1.linodeobjects.com", - "endpoint_type": "E1"}]}' + "bucket_access": null, "regions": [{"id": "gb-lon", "s3_endpoint": "gb-lon-1.linodeobjects.com", + "endpoint_type": "E3"}]}' headers: Access-Control-Allow-Credentials: - "true" @@ -180,17 +496,19 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: - - "325" + - "308" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Fri, 08 May 2026 16:27:35 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -205,14 +523,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "12" + - "60" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1778150735872446000","type":"akamai_object_storage","details":{"access_key_id":"9NLU0IUEBUHXCEC0VN6C","access_key_secret":"KLDglWZDnByzgrOUL4Lr1jLs6ZjMULI4AbwfTpWu","bucket_name":"go-test-logs-destination-1778150734488950000","host":"go-test-logs-destination-1778150734488950000.pl-labkrk2-1.linodeobjects.com"}}' + body: '{"label":"go-test-logs-destination-1778257655484801000","type":"akamai_object_storage","details":{"access_key_id":"8XD0XNGCDR8OHEDH8HCN","access_key_secret":"VIJ0CJP2YlneCcT1et3U31DhNWHN9xqHA2xRfEEj","bucket_name":"go-test-logs-destination-1778257647218326000","host":"go-test-logs-destination-1778257647218326000.gb-lon-1.linodeobjects.com"}}' form: {} headers: Accept: @@ -224,11 +542,11 @@ interactions: url: https://api.linode.com/v4beta/monitor/streams/destinations method: POST response: - body: '{"id": 1125, "label": "go-test-logs-destination-1778150735872446000", "type": - "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778150734488950000.pl-labkrk2-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1778150734488950000", "access_key_id": - "9NLU0IUEBUHXCEC0VN6C"}, "version": 1, "status": "active", "created_by": "klipensk-aclp", - "created": "2018-01-02T03:04:05", "updated_by": "klipensk-aclp", "updated": + body: '{"id": 458, "label": "go-test-logs-destination-1778257655484801000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778257647218326000.gb-lon-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1778257647218326000", "access_key_id": + "8XD0XNGCDR8OHEDH8HCN"}, "version": 1, "status": "active", "created_by": "dola-klipensk", + "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": "2018-01-02T03:04:05"}' headers: Access-Control-Allow-Credentials: @@ -244,17 +562,19 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: - - "479" + - "465" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Fri, 08 May 2026 16:27:36 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -269,14 +589,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"destinations":[1125],"label":"go-test-log-stream-1778150737226222000","type":"audit_logs"}' + body: '{"destinations":[458],"label":"go-test-log-stream-1778257656690604000","type":"audit_logs"}' form: {} headers: Accept: @@ -288,14 +608,14 @@ interactions: url: https://api.linode.com/v4beta/monitor/streams method: POST response: - body: '{"id": 2152, "label": "go-test-log-stream-1778150737226222000", "type": - "audit_logs", "destinations": [{"id": 1125, "type": "akamai_object_storage", - "label": "go-test-logs-destination-1778150735872446000", "details": {"host": - "go-test-logs-destination-1778150734488950000.pl-labkrk2-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1778150734488950000", "access_key_id": - "9NLU0IUEBUHXCEC0VN6C"}}], "details": null, "version": 1, "status": "provisioning", - "created_by": "klipensk-aclp", "created": "2018-01-02T03:04:05", "updated_by": - "klipensk-aclp", "updated": "2018-01-02T03:04:05"}' + body: '{"id": 202, "label": "go-test-log-stream-1778257656690604000", "type": + "audit_logs", "destinations": [{"id": 458, "type": "akamai_object_storage", + "label": "go-test-logs-destination-1778257655484801000", "details": {"host": + "go-test-logs-destination-1778257647218326000.gb-lon-1.linodeobjects.com", "bucket_name": + "go-test-logs-destination-1778257647218326000", "access_key_id": "8XD0XNGCDR8OHEDH8HCN"}}], + "details": null, "version": 1, "status": "provisioning", "created_by": "dola-klipensk", + "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": + "2018-01-02T03:04:05"}' headers: Access-Control-Allow-Credentials: - "true" @@ -310,17 +630,19 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: - - "607" + - "592" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Fri, 08 May 2026 16:27:37 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -335,7 +657,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -351,17 +673,17 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/2152 + url: https://api.linode.com/v4beta/monitor/streams/202 method: GET response: - body: '{"id": 2152, "label": "go-test-log-stream-1778150737226222000", "type": - "audit_logs", "destinations": [{"id": 1125, "type": "akamai_object_storage", - "label": "go-test-logs-destination-1778150735872446000", "details": {"host": - "go-test-logs-destination-1778150734488950000.pl-labkrk2-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1778150734488950000", "access_key_id": - "9NLU0IUEBUHXCEC0VN6C"}}], "details": null, "version": 1, "status": "active", - "created_by": "klipensk-aclp", "created": "2018-01-02T03:04:05", "updated_by": - "klipensk-aclp", "updated": "2018-01-02T03:04:05"}' + body: '{"id": 202, "label": "go-test-log-stream-1778257656690604000", "type": + "audit_logs", "destinations": [{"id": 458, "type": "akamai_object_storage", + "label": "go-test-logs-destination-1778257655484801000", "details": {"host": + "go-test-logs-destination-1778257647218326000.gb-lon-1.linodeobjects.com", "bucket_name": + "go-test-logs-destination-1778257647218326000", "access_key_id": "8XD0XNGCDR8OHEDH8HCN"}}], + "details": null, "version": 1, "status": "active", "created_by": "dola-klipensk", + "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": + "2018-01-02T03:04:05"}' headers: Access-Control-Allow-Credentials: - "true" @@ -376,18 +698,19 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=0, s-maxage=0, no-cache, no-store - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: - - "601" + - "586" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Fri, 08 May 2026 16:53:48 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -403,14 +726,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"label":"go-test-log-stream-1778150737226222000-upd","status":"inactive"}' + body: '{"label":"go-test-log-stream-1778257656690604000-upd","status":"inactive"}' form: {} headers: Accept: @@ -419,17 +742,17 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/2152 + url: https://api.linode.com/v4beta/monitor/streams/202 method: PUT response: - body: '{"id": 2152, "label": "go-test-log-stream-1778150737226222000-upd", "type": - "audit_logs", "destinations": [{"id": 1125, "type": "akamai_object_storage", - "label": "go-test-logs-destination-1778150735872446000", "details": {"host": - "go-test-logs-destination-1778150734488950000.pl-labkrk2-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1778150734488950000", "access_key_id": - "9NLU0IUEBUHXCEC0VN6C"}}], "details": null, "version": 2, "status": "deactivating", - "created_by": "klipensk-aclp", "created": "2018-01-02T03:04:05", "updated_by": - "klipensk-aclp", "updated": "2018-01-02T03:04:05"}' + body: '{"id": 202, "label": "go-test-log-stream-1778257656690604000-upd", "type": + "audit_logs", "destinations": [{"id": 458, "type": "akamai_object_storage", + "label": "go-test-logs-destination-1778257655484801000", "details": {"host": + "go-test-logs-destination-1778257647218326000.gb-lon-1.linodeobjects.com", "bucket_name": + "go-test-logs-destination-1778257647218326000", "access_key_id": "8XD0XNGCDR8OHEDH8HCN"}}], + "details": null, "version": 2, "status": "deactivating", "created_by": "dola-klipensk", + "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": + "2018-01-02T03:04:05"}' headers: Access-Control-Allow-Credentials: - "true" @@ -444,17 +767,19 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: - - "611" + - "596" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Fri, 08 May 2026 16:53:49 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -469,7 +794,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -485,24 +810,24 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/2152/history?page=1 + url: https://api.linode.com/v4beta/monitor/streams/202/history?page=1 method: GET response: - body: '{"pages": 1, "page": 1, "results": 2, "data": [{"id": 2152, "label": "go-test-log-stream-1778150737226222000-upd", - "type": "audit_logs", "destinations": [{"id": 1125, "type": "akamai_object_storage", - "label": "go-test-logs-destination-1778150735872446000", "details": {"host": - "go-test-logs-destination-1778150734488950000.pl-labkrk2-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1778150734488950000", "access_key_id": - "9NLU0IUEBUHXCEC0VN6C"}}], "details": null, "version": 2, "status": "deactivating", - "created_by": "klipensk-aclp", "created": "2018-01-02T03:04:05", "updated_by": - "klipensk-aclp", "updated": "2018-01-02T03:04:05"}, {"id": 2152, "label": "go-test-log-stream-1778150737226222000", - "type": "audit_logs", "destinations": [{"id": 1125, "type": "akamai_object_storage", - "label": "go-test-logs-destination-1778150735872446000", "details": {"host": - "go-test-logs-destination-1778150734488950000.pl-labkrk2-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1778150734488950000", "access_key_id": - "9NLU0IUEBUHXCEC0VN6C"}}], "details": null, "version": 1, "status": "inactive", - "created_by": "klipensk-aclp", "created": "2018-01-02T03:04:05", "updated_by": - "klipensk-aclp", "updated": "2018-01-02T03:04:05"}]}' + body: '{"pages": 1, "page": 1, "results": 2, "data": [{"id": 202, "label": "go-test-log-stream-1778257656690604000-upd", + "type": "audit_logs", "destinations": [{"id": 458, "type": "akamai_object_storage", + "label": "go-test-logs-destination-1778257655484801000", "details": {"host": + "go-test-logs-destination-1778257647218326000.gb-lon-1.linodeobjects.com", "bucket_name": + "go-test-logs-destination-1778257647218326000", "access_key_id": "8XD0XNGCDR8OHEDH8HCN"}}], + "details": null, "version": 2, "status": "deactivating", "created_by": "dola-klipensk", + "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": + "2018-01-02T03:04:05"}, {"id": 202, "label": "go-test-log-stream-1778257656690604000", + "type": "audit_logs", "destinations": [{"id": 458, "type": "akamai_object_storage", + "label": "go-test-logs-destination-1778257655484801000", "details": {"host": + "go-test-logs-destination-1778257647218326000.gb-lon-1.linodeobjects.com", "bucket_name": + "go-test-logs-destination-1778257647218326000", "access_key_id": "8XD0XNGCDR8OHEDH8HCN"}}], + "details": null, "version": 1, "status": "inactive", "created_by": "dola-klipensk", + "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": + "2018-01-02T03:04:05"}]}' headers: Access-Control-Allow-Credentials: - "true" @@ -517,21 +842,23 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=0, s-maxage=0, no-cache, no-store - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Fri, 08 May 2026 16:53:49 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: - Authorization, X-Filter - Authorization, X-Filter + - Accept-Encoding X-Accepted-Oauth-Scopes: - monitor:read_only X-Content-Type-Options: @@ -542,7 +869,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -558,17 +885,17 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/2152 + url: https://api.linode.com/v4beta/monitor/streams/202 method: GET response: - body: '{"id": 2152, "label": "go-test-log-stream-1778150737226222000-upd", "type": - "audit_logs", "destinations": [{"id": 1125, "type": "akamai_object_storage", - "label": "go-test-logs-destination-1778150735872446000", "details": {"host": - "go-test-logs-destination-1778150734488950000.pl-labkrk2-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1778150734488950000", "access_key_id": - "9NLU0IUEBUHXCEC0VN6C"}}], "details": null, "version": 2, "status": "inactive", - "created_by": "klipensk-aclp", "created": "2018-01-02T03:04:05", "updated_by": - "klipensk-aclp", "updated": "2018-01-02T03:04:05"}' + body: '{"id": 202, "label": "go-test-log-stream-1778257656690604000-upd", "type": + "audit_logs", "destinations": [{"id": 458, "type": "akamai_object_storage", + "label": "go-test-logs-destination-1778257655484801000", "details": {"host": + "go-test-logs-destination-1778257647218326000.gb-lon-1.linodeobjects.com", "bucket_name": + "go-test-logs-destination-1778257647218326000", "access_key_id": "8XD0XNGCDR8OHEDH8HCN"}}], + "details": null, "version": 2, "status": "inactive", "created_by": "dola-klipensk", + "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": + "2018-01-02T03:04:05"}' headers: Access-Control-Allow-Credentials: - "true" @@ -583,18 +910,19 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=0, s-maxage=0, no-cache, no-store - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: - - "607" + - "592" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Fri, 08 May 2026 17:20:01 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -610,7 +938,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -626,7 +954,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/2152 + url: https://api.linode.com/v4beta/monitor/streams/202 method: DELETE response: body: '{}' @@ -644,7 +972,7 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: @@ -653,8 +981,10 @@ interactions: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Fri, 08 May 2026 17:20:01 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -669,7 +999,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -685,7 +1015,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/2152 + url: https://api.linode.com/v4beta/monitor/streams/202 method: GET response: body: '{"errors": [{"reason": "Stream not found"}]}' @@ -699,15 +1029,19 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=0, s-maxage=0, no-cache, no-store + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: - "44" Content-Type: - application/json - Server: - - nginx + Expires: + - Fri, 08 May 2026 17:20:02 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 Vary: - Authorization, X-Filter X-Accepted-Oauth-Scopes: @@ -717,8 +1051,8 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" - status: 404 NOT FOUND + - "1840" + status: 404 Not Found code: 404 duration: "" - request: @@ -731,14 +1065,14 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations/1125 + url: https://api.linode.com/v4beta/monitor/streams/destinations/458 method: GET response: - body: '{"id": 1125, "label": "go-test-logs-destination-1778150735872446000", "type": - "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778150734488950000.pl-labkrk2-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1778150734488950000", "access_key_id": - "9NLU0IUEBUHXCEC0VN6C"}, "version": 1, "status": "active", "created_by": "klipensk-aclp", - "created": "2018-01-02T03:04:05", "updated_by": "klipensk-aclp", "updated": + body: '{"id": 458, "label": "go-test-logs-destination-1778257655484801000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778257647218326000.gb-lon-1.linodeobjects.com", + "bucket_name": "go-test-logs-destination-1778257647218326000", "access_key_id": + "8XD0XNGCDR8OHEDH8HCN"}, "version": 1, "status": "active", "created_by": "dola-klipensk", + "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": "2018-01-02T03:04:05"}' headers: Access-Control-Allow-Credentials: @@ -754,18 +1088,19 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=0, s-maxage=0, no-cache, no-store - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: - - "479" + - "465" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Fri, 08 May 2026 17:20:02 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -781,7 +1116,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -797,7 +1132,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations/1125 + url: https://api.linode.com/v4beta/monitor/streams/destinations/458 method: DELETE response: body: '{}' @@ -815,7 +1150,7 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: @@ -824,8 +1159,10 @@ interactions: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Fri, 08 May 2026 17:20:02 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -840,7 +1177,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -856,7 +1193,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/keys/341620 + url: https://api.linode.com/v4beta/object-storage/keys/3618128 method: DELETE response: body: '{}' @@ -874,7 +1211,7 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: @@ -883,8 +1220,10 @@ interactions: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Fri, 08 May 2026 17:20:03 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -899,7 +1238,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "12" + - "60" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -915,12 +1254,20 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/pl-labkrk-2/go-test-logs-destination-1778150734488950000/object-list + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778257647218326000/object-list method: GET response: - body: '{"data": [{"name": "cloud-logs-test-connection-20260507T104536", "size": - 9, "last_modified": "2018-01-02T03:04:05.655Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", - "owner": "512fe32a-48a2-4a57-8a11-0eef806858d3"}], "next_marker": null, "is_truncated": + body: '{"data": [{"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/08/akamai_log-132943-1778259138-856896-config.gz", + "size": 576, "last_modified": "2018-01-02T03:04:05.257Z", "etag": "16dcbd5d065cc105938db483ec347596", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/08/akamai_log-357301-1778259353-927712-config.gz", + "size": 721, "last_modified": "2018-01-02T03:04:05.524Z", "etag": "763498611cf3752947cd2a749378f567", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/08/akamai_log-510203-1778259897-253299-config.gz", + "size": 576, "last_modified": "2018-01-02T03:04:05.144Z", "etag": "ffd885911befbbf8ab2ed715a00bee81", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/08/akamai_log-606755-1778259749-083692-config.gz", + "size": 578, "last_modified": "2018-01-02T03:04:05.183Z", "etag": "cc778a0d53d8d49379b2482c23a065f7", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "cloud-logs-test-connection-20260508T162735", + "size": 9, "last_modified": "2018-01-02T03:04:05.325Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}], "next_marker": null, "is_truncated": false}' headers: Access-Control-Allow-Credentials: @@ -936,23 +1283,23 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=0, s-maxage=0, no-cache, no-store - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive - Content-Length: - - "259" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Fri, 08 May 2026 17:20:06 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: - Authorization, X-Filter - Authorization, X-Filter + - Accept-Encoding X-Accepted-Oauth-Scopes: - object_storage:read_only X-Content-Type-Options: @@ -963,14 +1310,258 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" +- request: + body: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/08/akamai_log-132943-1778259138-856896-config.gz","method":"DELETE","expires_in":360}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778257647218326000/object-url + method: POST + response: + body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-destination-1778257647218326000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/08/akamai_log-132943-1778259138-856896-config.gz?Signature=O1D7Z0ozgbI9Merk9SKSmUhL9YE%3D&Expires=1778261169&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCpG91DTbrPthgQ3PutjEvtw3QxRnpmUBd5%2Bm0%2BbMof8y3pSdXQF/%2BcoXtQxUYvDxJ3%2B43Q7mK/wF7s0EdkyXsQDomSzm892jmVOxySqf0CuiEeHnujh3owNfHgcBB5zn0AJx6Q%2Bmgu7YK527lngBHvl6kl/HvZtuA6RTapRWmabZmvY1wfuPWJLx/CCswshIzAYyrDu9cBhrsBobK3HT0Qh7V5oZlWVEuMk7FnFcWCVxVUCOul40IxEKFIwGCdlwe4ChQway8D9Zx7Mb7EzbiFJdKHBJukdVoh3qtfE7oK4irfBaYj3xZD1FGBARUG82iut2ErI9EEBiMYsZuqz7JWiaoyoz3V0VjnqnSUYed8pAirzAleaXEqa3kTcFiOsylVBm7nc993BNdhyATmWu/kMAjAHWKU78BzBFqv9OEb2EZefCl/fd3%2B%2BbTd0DSjzt0KnLUnFqDfnTG2vY2RdLWUh9ft5s", + "exists": true}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Fri, 08 May 2026 17:20:09 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - object_storage: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: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/08/akamai_log-357301-1778259353-927712-config.gz","method":"DELETE","expires_in":360}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778257647218326000/object-url + method: POST + response: + body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-destination-1778257647218326000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/08/akamai_log-357301-1778259353-927712-config.gz?Signature=cUDsy1ohR7HZWpI49JVUO8KS4tQ%3D&Expires=1778261173&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCmrbXvmGBrDHvfbL4CJjHcOprcCtA288ad2GT8m63Mhjjay%2BnN%2BlEKSQBOInlHq3aT%2BWwCtXZ4o10E4AH/YafGEnKINHxAztacVlC14QLXwrA%2BzKLmQZ4S9DnqtYfgwZReFJGIWyCy2Y0L3d6sMLkn75xsLevfg9/PP37U0QaU7L2DJAW8xRdhYCqangVPQ4dYYa7pI8sALVaXIssUpAo2srfOfSOzO/HgBqlbFrj%2Bss2qzPjkDVKfREElElygtJnrJG6vboqPJjb2EhHBjQCWG1CWTeyjxDJAvdSU0j4BleWVBueeqGApb5rPsYRwC0RJL32YeD55yaxeY3BLNoHF7W1U3P4aCOB0pzn%2BOWWgiqSIyG/J2/r5/%2Br/dxNLE4u9itTt/HllO0TkvfwPsYmqGftph8jJZ5xSGC3WhUI2JgM2MjACd2NRb9/r6M1I5nqaHXed54Cxt1tYvDOXBOhV1DvyS9", + "exists": true}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Fri, 08 May 2026 17:20:14 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - object_storage: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: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/08/akamai_log-510203-1778259897-253299-config.gz","method":"DELETE","expires_in":360}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778257647218326000/object-url + method: POST + response: + body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-destination-1778257647218326000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/08/akamai_log-510203-1778259897-253299-config.gz?Signature=ek7s8CMl29Q1z5gB02Aqp%2BzFIzI%3D&Expires=1778261180&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCqxmVCimFBJNav6yg11GcGUWmNmUW5B7I0%2BLG3rNhzJPIPZpD6/1JKRvXa3FRYfIPgFhopUOQ%2B5u41I4rNlUgKUApffKIDp/lciXXXczJJR7fByDetRn210jDKzu/O%2BtOqf31y3%2BMWfO0sdJqEKXW7DOokpRjlD49TOg%2BtkjDjwLzht0rN35/4M3jBFIUzn/tieAX68f%2BpbFCPx6VQeNZdnzz2j7Xgjeln3Y2Cgl4WcOgFoQX2QTem/FKhFyPNdmHu7QYftkqBk1BvcR/x79OXn4WS9AOVUeLFfcbfDp9/nYdsWZqF5GNXL0eeHKTGObOqt1TEZPdW%2Bzf1pk8nFPFyoTnFLGVU8Ha/TVQf%2BHqYXe3a2lSBHQMAdYaN6FPu5duvDOXnJSP/YIpDn7TU4YxoqJGeGMQXvM7qdPXhL148ON85CDmJoDrdSYa6SnHF43B3NZ6YPIZDHgQbVZQ6RXUa4GgFLi", + "exists": true}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Fri, 08 May 2026 17:20:20 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - object_storage: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: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/08/akamai_log-606755-1778259749-083692-config.gz","method":"DELETE","expires_in":360}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778257647218326000/object-url + method: POST + response: + body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-destination-1778257647218326000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/08/akamai_log-606755-1778259749-083692-config.gz?Signature=nnncmgHxpDBG1lPuLu%2BAX85JdHA%3D&Expires=1778261183&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCiGIog39QT/VVq2IX%2BX326102fwWKZuyfzub1RIIvQyCTJTkEspP/zp7VMRrUA76CaX83qARj8D9IjtWXRoxBUHoCl6n8trTDFqgJUZmsKo/2lblrXSBBFavW9zaQp8baCj9rgNIa4TqjBgtGEWlMNjMmNytM81HTIOwcMB/%2BuuJvPIv0yH%2B4zTj6gS61EC8i3/zqT5TirxIEjQpfp8BVuemsjFp3qSUnNe2ofzEkxEVQmF0E5nKvO4UxFFhBVCEL/rb1Raf5OqoumMsB1OkGDc1HgcoN%2Bar7G1cvrb40v7oZjrqLgvSBm8I8JP2mg6d0mQ/G2R4xhesSuAKuVMYW9smXcf1/0pONa2UahczO4PtZ7nSyxF8s6wZFbT5UiD7ZlBscDiXdwmL8UeDEJtLn8fWGwH4x9yMOnEwJZqIG7R86%2BMNBgGntap5e7jVPuytJXsTusMGNJaKpcPBcV2u7fTaQ5i3", + "exists": true}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Fri, 08 May 2026 17:20:23 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - object_storage: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: '{"name":"cloud-logs-test-connection-20260507T104536","method":"DELETE","expires_in":360}' + body: '{"name":"cloud-logs-test-connection-20260508T162735","method":"DELETE","expires_in":360}' form: {} headers: Accept: @@ -979,10 +1570,10 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/pl-labkrk-2/go-test-logs-destination-1778150734488950000/object-url + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778257647218326000/object-url method: POST response: - body: '{"url": "https://pl-labkrk2-1.linodeobjects.com:443/go-test-logs-destination-1778150734488950000/cloud-logs-test-connection-20260507T104536?Signature=q%2BNXxZWnIZNBfSqY8HP6%2F8Xbr9U%3D&Expires=1778154957&AWSAccessKeyID=SANITIZED", + body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-destination-1778257647218326000/cloud-logs-test-connection-20260508T162735?Signature=NZRVKKV6u6ffLwrIP%2FmW0ShVGRw%3D&Expires=1778261187&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCj/VTN4/Zo2TaPEaAbU2UUEinKPijsyFuSQeXQ2Itz3QUcE3qthGE5zI7KoaGPjbndYiXUxUwc8twHCgtnv9M4c2IAG31I8AEZhRokv9ePC1%2BX6CR2C7t9pKGCjqZG%2BNiXkJnoJEDRua8s0FcXGn/lgWOmif8p5vfdFIDix1r0%2BZKY7rEapswFujcZtJgBGthRddrs2hTuE6Shdihsl8YRGpqujmH6UXnfi93Phq8XfBbpDFiPN1HUGlurzXJsucrxpjQKuo1yXkhOozs4eG%2BhLSxUGF%2B3AHf6DUcEWOH//yovvIOSgIaba5jzBmwdq6PyukGw3qlj1EE/te9kvUysBlLlg/hmdqxXMcdJOBz56S//iAyILA1xmRZgG1dfCp9s9Xbuq6JXHz4B4bNlXr9lVXN1TVrlhfsfqf3u9s2CIg/I6rG7dWs9fxW%2Bqhbe3z3/EFJd0l/PdrQ59hpxqZ1XwaWIRX", "exists": true}' headers: Access-Control-Allow-Credentials: @@ -998,17 +1589,19 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: - - "266" + - "849" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Fri, 08 May 2026 17:20:27 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -1023,7 +1616,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -1039,7 +1632,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/pl-labkrk-2/go-test-logs-destination-1778150734488950000 + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778257647218326000 method: DELETE response: body: '{}' @@ -1057,7 +1650,7 @@ interactions: Akamai-Internal-Account: - '*' Cache-Control: - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: @@ -1066,8 +1659,10 @@ interactions: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Fri, 08 May 2026 17:20:35 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -1082,7 +1677,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "400" + - "1840" X-Xss-Protection: - 1; mode=block status: 200 OK diff --git a/test/integration/monitor_logs_test.go b/test/integration/monitor_logs_test.go index 940fafc71..2cb040f87 100644 --- a/test/integration/monitor_logs_test.go +++ b/test/integration/monitor_logs_test.go @@ -175,10 +175,19 @@ func setupLogStream(t *testing.T, fixturesYaml string) (*linodego.Client, *linod // deleting while in "deactivating"/"provisioning" silently fails and then // the destination delete returns 400 because the stream is still attached. if _, err := waitForLogStreamProvisioned(context.Background(), client, stream.ID, 60, 3600); err != nil { + if apiErr, ok := err.(*linodego.Error); ok && apiErr.Code == 404 { + // Already deleted by the test itself — skip to resource cleanup. + destTeardown() + return + } t.Logf("Warning: could not wait for stream %d to stabilize before deletion: %v", stream.ID, err) } if err := client.DeleteLogStream(context.Background(), stream.ID); err != nil { - t.Errorf("Expected to delete log stream %d, but got %v", stream.ID, err) + if apiErr, ok := err.(*linodego.Error); ok && apiErr.Code == 404 { + // Already gone — nothing to do. + } else { + t.Errorf("Expected to delete log stream %d, but got %v", stream.ID, err) + } } else if err := waitForLogStreamDeleted(context.Background(), client, stream.ID, 60, 3600); err != nil { t.Logf("Warning: stream %d may not be fully deleted: %v", stream.ID, err) } From 967e1587e39e328d4dd5a3f45bbf31c7c86977cc Mon Sep 17 00:00:00 2001 From: Kajetan Date: Fri, 8 May 2026 22:05:12 +0200 Subject: [PATCH 11/21] [DPS-42279] [ACLP SDK] [Go] ACLP Logs stream API - regenerated fixtures --- .../monitor_log_destinations_test.go | 287 ------------------ 1 file changed, 287 deletions(-) delete mode 100644 test/integration/monitor_log_destinations_test.go diff --git a/test/integration/monitor_log_destinations_test.go b/test/integration/monitor_log_destinations_test.go deleted file mode 100644 index 054fc8d38..000000000 --- a/test/integration/monitor_log_destinations_test.go +++ /dev/null @@ -1,287 +0,0 @@ -package integration - -import ( - "context" - "net/http" - "testing" - - "github.com/dnaeon/go-vcr/recorder" - "github.com/linode/linodego" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" -) - -// creates a object storage and access keys for use in tests -func setupObjectStorageForLogs(t *testing.T, client *linodego.Client) (*linodego.ObjectStorageBucket, *linodego.ObjectStorageKey, func()) { - t.Helper() - - bucket, err := client.CreateObjectStorageBucket(context.Background(), linodego.ObjectStorageBucketCreateOptions{ - Region: "us-southeast", - Label: testLabel(), - ACL: "private", - CorsEnabled: linodego.Pointer(false), - }) - if err != nil { - t.Fatalf("Error creating storage bucket, got error %v", err) - } - - storageKey, err := client.CreateObjectStorageKey(context.Background(), linodego.ObjectStorageKeyCreateOptions{ - Label: testLabel(), - }) - if err != nil { - _ = client.DeleteObjectStorageBucket(context.Background(), bucket.Region, bucket.Label) - t.Fatalf("Error creating storage key, got error %v", err) - } - - teardown := func() { - if terr := client.DeleteObjectStorageKey(context.Background(), storageKey.ID); terr != nil { - t.Errorf("Expected to delete a storage key, but got %v", terr) - } - - bucketObjects, terr := client.ListObjectStorageBucketContents(context.Background(), bucket.Region, bucket.Label, nil) - if terr == nil { - for _, obj := range bucketObjects.Data { - url, err := client.CreateObjectStorageObjectURL(context.TODO(), bucket.Cluster, bucket.Label, linodego.ObjectStorageObjectURLCreateOptions{ - Name: obj.Name, - Method: http.MethodDelete, - ExpiresIn: &objectStorageObjectURLExpirySeconds, - }) - - if err != nil { - t.Errorf("failed to get object DELETE url: %s", err) - continue - } - - if testingMode == recorder.ModeReplaying { - continue - } - - req, err := http.NewRequest(http.MethodDelete, url.URL, nil) - if err != nil { - t.Errorf("failed to build request: %s", err) - continue - } - - res, err := http.DefaultClient.Do(req) - if err != nil { - t.Errorf("failed to delete object: %s", err) - continue - } - if res.StatusCode != 204 { - t.Errorf("expected status code to be 204; got %d", res.StatusCode) - } - } - } else { - t.Errorf("Expected to list objects in object storage, but got %v", terr) - } - - if terr := client.DeleteObjectStorageBucket(context.Background(), bucket.Region, bucket.Label); terr != nil { - t.Errorf("Expected to delete object storage bucket, but got %v", terr) - } - } - - return bucket, storageKey, teardown -} - -// creates a LogsDestination for use in tests -func setupLogsDestination(t *testing.T, fixturesYaml string) (*linodego.Client, *linodego.LogsDestination, *linodego.ObjectStorageKey, func()) { - t.Helper() - - client, fixtureTeardown := createTestClient(t, fixturesYaml) - - bucket, storageKey, storageTeardown := setupObjectStorageForLogs(t, client) - - dest, err := client.CreateLogsDestination(context.Background(), linodego.LogsDestinationCreateOptions{ - Label: testLabel(), - Type: linodego.LogsDestinationTypeAkamaiObjectStorage, - Details: linodego.LogsDestinationDetailsCreateOptions{ - AccessKeyID: storageKey.AccessKey, - AccessKeySecret: storageKey.SecretKey, - BucketName: bucket.Label, - Host: bucket.Hostname, - }, - }) - if err != nil { - storageTeardown() - fixtureTeardown() - t.Fatalf("Error creating logs destination, got error %v", err) - } - - teardown := func() { - _, terr := client.GetLogsDestination(context.Background(), dest.ID) - if apiErr, ok := terr.(*linodego.Error); ok && apiErr.Code == 404 { - // Already gone — nothing to do. - } else { - if terr != nil { - t.Errorf("Error while checking destination existence: %v", terr) - } - // Object exists or GET failed for another reason — try to delete anyway. - if terr := client.DeleteLogsDestination(context.Background(), dest.ID); terr != nil { - t.Errorf("Expected to delete a logs destination, but got %v", terr) - } - } - storageTeardown() - fixtureTeardown() - } - - return client, dest, storageKey, teardown -} - -func testLabel() string { - return "go-test-logs-destination-" + getUniqueText() -} - -func TestLogsDestination_List(t *testing.T) { - client, dest, _, teardown := setupLogsDestination(t, "fixtures/TestLogsDestination_List") - defer teardown() - - destinations, err := client.ListLogsDestinations(context.Background(), nil) - assert.NoError(t, err) - assert.NotEmpty(t, destinations) - - for _, d := range destinations { - assert.NotZero(t, d.ID) - assert.NotEmpty(t, d.Label) - assert.Equal(t, linodego.LogsDestinationTypeAkamaiObjectStorage, d.Type) - assert.Contains(t, - []linodego.LogsDestinationStatus{ - linodego.LogsDestinationStatusActive, - linodego.LogsDestinationStatusInactive, - }, - d.Status, - ) - assert.NotEmpty(t, d.Details.AccessKeyID) - assert.NotEmpty(t, d.Details.BucketName) - assert.NotEmpty(t, d.Details.Host) - } - - ids := make([]int, len(destinations)) - for i, d := range destinations { - ids[i] = d.ID - } - - assert.Contains(t, ids, dest.ID) -} - -func TestLogsDestination_Delete(t *testing.T) { - client, dest, _, teardown := setupLogsDestination(t, "fixtures/TestLogsDestination_Delete") - defer teardown() - - err := client.DeleteLogsDestination(context.Background(), dest.ID) - assert.NoError(t, err) - - // Verify it's gone - _, err = client.GetLogsDestination(context.Background(), dest.ID) - require.Error(t, err) - - apiErr, ok := err.(*linodego.Error) - require.True(t, ok, "expected linodego.Error") - assert.Equal(t, 404, apiErr.Code) -} - -func TestLogsDestination_Get(t *testing.T) { - client, dest, _, teardown := setupLogsDestination(t, "fixtures/TestLogsDestination_Get") - defer teardown() - - fetched, err := client.GetLogsDestination(context.Background(), dest.ID) - assert.NoError(t, err) - assert.NotNil(t, fetched) - assert.Equal(t, dest.ID, fetched.ID) - assert.Equal(t, dest.Label, fetched.Label) - assert.Equal(t, dest.Type, fetched.Type) -} - -func TestLogsDestination_UpdateAndHistory(t *testing.T) { - client, dest, storageKey, teardown := setupLogsDestination(t, "fixtures/TestLogsDestination_UpdateAndHistory") - defer teardown() - - newLabel := dest.Label + "-upd" - newPath := "updated/logs/path/" - - // should update logs destination - updated, err := client.UpdateLogsDestination(context.Background(), dest.ID, linodego.LogsDestinationUpdateOptions{ - Label: newLabel, - Details: &linodego.LogsDestinationDetailsUpdateOptions{ - AccessKeyID: dest.Details.AccessKeyID, - AccessKeySecret: storageKey.SecretKey, - BucketName: dest.Details.BucketName, - Host: dest.Details.Host, - Path: &newPath, - }, - }) - assert.NoError(t, err) - require.NotNil(t, updated) - assert.Equal(t, newLabel, updated.Label) - assert.Equal(t, newPath, updated.Details.Path) - - // history should contain both versions - history, err := client.ListLogsDestinationHistory(context.Background(), dest.ID, nil) - assert.NoError(t, err) - assert.GreaterOrEqual(t, len(history), 2) - - var v1, v2 *linodego.LogsDestination - for i := range history { - switch history[i].Version { - case 1: - v1 = &history[i] - case 2: - v2 = &history[i] - } - } - - require.NotNil(t, v1, "expected version 1 in history") - require.NotNil(t, v2, "expected version 2 in history") - - assert.Equal(t, dest.Label, v1.Label) - assert.Equal(t, newLabel, v2.Label) -} - -func TestLogsDestination_Create_InvalidSecret(t *testing.T) { - client, teardown := createTestClient(t, "fixtures/TestLogsDestination_Create_InvalidSecret") - defer teardown() - - bucket, _, storageTeardown := setupObjectStorageForLogs(t, client) - defer storageTeardown() - - _, err := client.CreateLogsDestination(context.Background(), linodego.LogsDestinationCreateOptions{ - Label: testLabel(), - Type: linodego.LogsDestinationTypeAkamaiObjectStorage, - Details: linodego.LogsDestinationDetailsCreateOptions{ - AccessKeyID: "1", - AccessKeySecret: "1", - BucketName: bucket.Label, - Host: bucket.Hostname, - }, - }) - require.Error(t, err) - - apiErr, ok := err.(*linodego.Error) - require.True(t, ok, "expected linodego.Error") - assert.Equal(t, 400, apiErr.Code) - assert.Contains(t, apiErr.Message, "Invalid access key id or secret key") -} - -func TestLogsDestination_Create_InvalidType(t *testing.T) { - client, teardown := createTestClient(t, "fixtures/TestLogsDestination_Create_InvalidType") - defer teardown() - - bucket, storageKey, storageTeardown := setupObjectStorageForLogs(t, client) - defer storageTeardown() - - _, err := client.CreateLogsDestination(context.Background(), linodego.LogsDestinationCreateOptions{ - Label: testLabel(), - Type: "invalid_type", - Details: linodego.LogsDestinationDetailsCreateOptions{ - AccessKeyID: storageKey.AccessKey, - AccessKeySecret: storageKey.SecretKey, - BucketName: bucket.Label, - Host: bucket.Hostname, - }, - }) - require.Error(t, err) - - apiErr, ok := err.(*linodego.Error) - require.True(t, ok, "expected linodego.Error") - assert.Equal(t, 400, apiErr.Code) - assert.Contains(t, apiErr.Message, "[type] Must be one of akamai_object_storage, custom_https") -} From 937b956ef415fe521b2e30f544a905b493ab796d Mon Sep 17 00:00:00 2001 From: Kajetan Date: Mon, 11 May 2026 10:38:04 +0200 Subject: [PATCH 12/21] [DPS-42279] [ACLP SDK] [Go] ACLP Logs stream API - fix --- test/unit/monitor_log_destinations_test.go | 282 --------------------- 1 file changed, 282 deletions(-) delete mode 100644 test/unit/monitor_log_destinations_test.go diff --git a/test/unit/monitor_log_destinations_test.go b/test/unit/monitor_log_destinations_test.go deleted file mode 100644 index d4c04e432..000000000 --- a/test/unit/monitor_log_destinations_test.go +++ /dev/null @@ -1,282 +0,0 @@ -package unit - -import ( - "context" - "testing" - - "github.com/linode/linodego" - "github.com/stretchr/testify/assert" -) - -const ( - testLogsDestinationID = 12345 -) - -func TestCreateLogsDestination(t *testing.T) { - fixtureData, err := fixtures.GetFixture("monitor_log_destinations_get") - assert.NoError(t, err) - - var base ClientBaseCase - base.SetUp(t) - defer base.TearDown(t) - - base.MockPost("monitor/streams/destinations", fixtureData) - - path := "audit-logs" - opts := linodego.LogsDestinationCreateOptions{ - Label: "my-logs-destination", - Type: linodego.LogsDestinationTypeAkamaiObjectStorage, - Details: linodego.LogsDestinationDetailsCreateOptions{ - AccessKeyID: "1ABCD23EFG4HIJKLMNO5", - AccessKeySecret: "1aB2CD3e4fgHi5JK6lmnop7qR8STU9VxYzabcdefHh", - BucketName: "primary-bucket", - Host: "primary-bucket-1.us-iad-12.linodeobjects.com", - Path: &path, - }, - } - - dest, err := base.Client.CreateLogsDestination(context.Background(), opts) - assert.NoError(t, err) - assert.NotNil(t, dest) - assert.Equal(t, testLogsDestinationID, dest.ID) - assert.Equal(t, "OBJ_logs_destination", dest.Label) - assert.Equal(t, linodego.LogsDestinationStatusActive, dest.Status) - assert.Equal(t, linodego.LogsDestinationTypeAkamaiObjectStorage, dest.Type) - assert.Equal(t, "1ABCD23EFG4HIJKLMNO5", string(dest.Details.AccessKeyID)) - assert.Equal(t, "primary-bucket", dest.Details.BucketName) - assert.Equal(t, "primary-bucket-1.us-iad-12.linodeobjects.com", dest.Details.Host) - assert.Equal(t, "audit-logs", dest.Details.Path) - assert.NotNil(t, dest.Created) - assert.NotNil(t, dest.Updated) -} - -func TestCreateLogsDestination_NoPath(t *testing.T) { - fixtureData, err := fixtures.GetFixture("monitor_log_destinations_get") - assert.NoError(t, err) - - var base ClientBaseCase - base.SetUp(t) - defer base.TearDown(t) - - base.MockPost("monitor/streams/destinations", fixtureData) - - opts := linodego.LogsDestinationCreateOptions{ - Label: "my-logs-destination", - Type: linodego.LogsDestinationTypeAkamaiObjectStorage, - Details: linodego.LogsDestinationDetailsCreateOptions{ - AccessKeyID: "1ABCD23EFG4HIJKLMNO5", - AccessKeySecret: "1aB2CD3e4fgHi5JK6lmnop7qR8STU9VxYzabcdefHh", - BucketName: "primary-bucket", - Host: "primary-bucket-1.us-iad-12.linodeobjects.com", - // Path intentionally omitted - }, - } - - dest, err := base.Client.CreateLogsDestination(context.Background(), opts) - assert.NoError(t, err) - assert.NotNil(t, dest) - assert.Equal(t, testLogsDestinationID, dest.ID) -} - -func TestGetLogsDestination(t *testing.T) { - fixtureData, err := fixtures.GetFixture("monitor_log_destinations_get") - assert.NoError(t, err) - - var base ClientBaseCase - base.SetUp(t) - defer base.TearDown(t) - - base.MockGet("monitor/streams/destinations/12345", fixtureData) - - dest, err := base.Client.GetLogsDestination(context.Background(), testLogsDestinationID) - assert.NoError(t, err) - assert.NotNil(t, dest) - assert.Equal(t, testLogsDestinationID, dest.ID) - assert.Equal(t, "OBJ_logs_destination", dest.Label) - assert.Equal(t, linodego.LogsDestinationStatusActive, dest.Status) - assert.Equal(t, linodego.LogsDestinationTypeAkamaiObjectStorage, dest.Type) - assert.Equal(t, "user", dest.CreatedBy) - assert.Equal(t, "user", dest.UpdatedBy) - assert.Equal(t, 1, dest.Version) - assert.Equal(t, "1ABCD23EFG4HIJKLMNO5", string(dest.Details.AccessKeyID)) - assert.Equal(t, "primary-bucket", dest.Details.BucketName) - assert.Equal(t, "primary-bucket-1.us-iad-12.linodeobjects.com", dest.Details.Host) - assert.Equal(t, "audit-logs", dest.Details.Path) - assert.NotNil(t, dest.Created) - assert.NotNil(t, dest.Updated) -} - -func TestListLogsDestinations(t *testing.T) { - fixtureData, err := fixtures.GetFixture("monitor_log_destinations_list") - assert.NoError(t, err) - - var base ClientBaseCase - base.SetUp(t) - defer base.TearDown(t) - - base.MockGet("monitor/streams/destinations", fixtureData) - - dests, err := base.Client.ListLogsDestinations(context.Background(), nil) - assert.NoError(t, err) - assert.Len(t, dests, 2) - - // First destination: akamai_object_storage - assert.Equal(t, testLogsDestinationID, dests[0].ID) - assert.Equal(t, "OBJ_logs_destination", dests[0].Label) - assert.Equal(t, linodego.LogsDestinationStatusActive, dests[0].Status) - assert.Equal(t, linodego.LogsDestinationTypeAkamaiObjectStorage, dests[0].Type) - assert.Equal(t, "123", dests[0].Details.AccessKeyID) - assert.Equal(t, "primary-bucket", dests[0].Details.BucketName) - assert.Equal(t, "primary-bucket-1.us-iad-12.linodeobjects.com", dests[0].Details.Host) - assert.Equal(t, "audit-logs", dests[0].Details.Path) - - // Second destination: custom_https - assert.Equal(t, 67890, dests[1].ID) - assert.Equal(t, "HTTPS_logs_destination", dests[1].Label) - assert.Equal(t, linodego.LogsDestinationStatusActive, dests[1].Status) - assert.Equal(t, linodego.LogsDestinationTypeCustomHTTPS, dests[1].Type) - assert.Equal(t, "https://my-site.com/log-storage/database-info", dests[1].Details.EndpointURL) - assert.NotNil(t, dests[1].Details.Authentication) - assert.Equal(t, linodego.LogsDestinationCustomHTTPSAuthTypeBasic, dests[1].Details.Authentication.Type) - assert.NotNil(t, dests[1].Details.Authentication.Details) - assert.Equal(t, "John_Q", dests[1].Details.Authentication.Details.Username) - assert.Equal(t, "application/json", dests[1].Details.ContentType) - assert.Len(t, dests[1].Details.CustomHeaders, 1) - assert.Equal(t, "Cache-Control", dests[1].Details.CustomHeaders[0].Name) - assert.Equal(t, "max-age=0", dests[1].Details.CustomHeaders[0].Value) - assert.Equal(t, "gzip", dests[1].Details.DataCompression) -} - -func TestUpdateLogsDestination(t *testing.T) { - fixtureData, err := fixtures.GetFixture("monitor_log_destinations_get") - assert.NoError(t, err) - - var base ClientBaseCase - base.SetUp(t) - defer base.TearDown(t) - - base.MockPut("monitor/streams/destinations/12345", fixtureData) - - opts := linodego.LogsDestinationUpdateOptions{ - Label: "my-logs-destination-renamed", - } - - dest, err := base.Client.UpdateLogsDestination(context.Background(), testLogsDestinationID, opts) - assert.NoError(t, err) - assert.NotNil(t, dest) -} - -func TestDeleteLogsDestination(t *testing.T) { - var base ClientBaseCase - base.SetUp(t) - defer base.TearDown(t) - - base.MockDelete("monitor/streams/destinations/12345", nil) - - err := base.Client.DeleteLogsDestination(context.Background(), testLogsDestinationID) - assert.NoError(t, err) -} - -func TestCreateLogsDestination_CustomHTTPS(t *testing.T) { - fixtureData, err := fixtures.GetFixture("monitor_log_destinations_custom_https_get") - assert.NoError(t, err) - - var base ClientBaseCase - base.SetUp(t) - defer base.TearDown(t) - - base.MockPost("monitor/streams/destinations", fixtureData) - - opts := linodego.LogsDestinationCreateOptions{ - Label: "HTTPS_logs_destination", - Type: linodego.LogsDestinationTypeCustomHTTPS, - Details: linodego.LogsDestinationCustomHTTPSDetailsCreateOptions{ - EndpointURL: "https://my-site.com/log-storage/database-info", - Authentication: &linodego.LogsDestinationCustomHTTPSAuthDetails{ - Type: linodego.LogsDestinationCustomHTTPSAuthTypeBasic, - Details: &linodego.LogsDestinationCustomHTTPSBasicAuthDetails{ - Username: "John_Q", - Password: "p@$$w0Rd", - }, - }, - ContentType: "application/json", - DataCompression: "gzip", - CustomHeaders: []linodego.LogsDestinationCustomHTTPSHeader{ - {Name: "Cache-Control", Value: "max-age=0"}, - }, - }, - } - - dest, err := base.Client.CreateLogsDestination(context.Background(), opts) - assert.NoError(t, err) - assert.NotNil(t, dest) - assert.Equal(t, 67890, dest.ID) - assert.Equal(t, "HTTPS_logs_destination", dest.Label) - assert.Equal(t, linodego.LogsDestinationStatusActive, dest.Status) - assert.Equal(t, linodego.LogsDestinationTypeCustomHTTPS, dest.Type) - assert.Equal(t, "https://my-site.com/log-storage/database-info", dest.Details.EndpointURL) - assert.NotNil(t, dest.Details.Authentication) - assert.Equal(t, linodego.LogsDestinationCustomHTTPSAuthTypeBasic, dest.Details.Authentication.Type) - assert.Equal(t, "application/json", dest.Details.ContentType) - assert.Equal(t, "gzip", dest.Details.DataCompression) - assert.Len(t, dest.Details.CustomHeaders, 1) - assert.Equal(t, "Cache-Control", dest.Details.CustomHeaders[0].Name) - assert.NotNil(t, dest.Created) - assert.NotNil(t, dest.Updated) -} - -func TestUpdateLogsDestination_CustomHTTPS(t *testing.T) { - fixtureData, err := fixtures.GetFixture("monitor_log_destinations_custom_https_get") - assert.NoError(t, err) - - var base ClientBaseCase - base.SetUp(t) - defer base.TearDown(t) - - base.MockPut("monitor/streams/destinations/67890", fixtureData) - - newURL := "https://my-site.com/log-storage/v2" - opts := linodego.LogsDestinationUpdateOptions{ - Label: "HTTPS_logs_destination_renamed", - Details: &linodego.LogsDestinationCustomHTTPSDetailsUpdateOptions{ - EndpointURL: newURL, - Authentication: &linodego.LogsDestinationCustomHTTPSAuthDetails{ - Type: linodego.LogsDestinationCustomHTTPSAuthTypeBasic, - Details: &linodego.LogsDestinationCustomHTTPSBasicAuthDetails{ - Username: "John_Q", - Password: "newpassword", - }, - }, - }, - } - - dest, err := base.Client.UpdateLogsDestination(context.Background(), 67890, opts) - assert.NoError(t, err) - assert.NotNil(t, dest) - assert.Equal(t, 67890, dest.ID) - assert.Equal(t, linodego.LogsDestinationTypeCustomHTTPS, dest.Type) -} - -func TestListLogsDestinationHistory(t *testing.T) { - fixtureData, err := fixtures.GetFixture("monitor_log_destinations_history_list") - assert.NoError(t, err) - - var base ClientBaseCase - base.SetUp(t) - defer base.TearDown(t) - - base.MockGet("monitor/streams/destinations/12345/history", fixtureData) - - history, err := base.Client.ListLogsDestinationHistory(context.Background(), testLogsDestinationID, nil) - assert.NoError(t, err) - assert.Len(t, history, 1) - assert.Equal(t, testLogsDestinationID, history[0].ID) - assert.Equal(t, "OBJ_logs_destination", history[0].Label) - assert.Equal(t, linodego.LogsDestinationStatusActive, history[0].Status) - assert.Equal(t, linodego.LogsDestinationTypeAkamaiObjectStorage, history[0].Type) - assert.Equal(t, 1, history[0].Version) - assert.Equal(t, "123", history[0].Details.AccessKeyID) - assert.Equal(t, "primary-bucket", history[0].Details.BucketName) - assert.NotNil(t, history[0].Created) - assert.NotNil(t, history[0].Updated) -} From 50f851768d1345a6a1eaefe6c5d07ef6fb0da49b Mon Sep 17 00:00:00 2001 From: Kajetan Date: Mon, 11 May 2026 21:41:16 +0200 Subject: [PATCH 13/21] [DPS-42279] [ACLP SDK] [Go] ACLP Logs stream API - fixes regarding PR comments --- ...estLogStream_Create_EmptyDestinations.yaml | 6 +- ...stLogStream_Create_InvalidDestination.yaml | 6 +- .../TestLogStream_Create_TwoDestinations.yaml | 532 +++--------------- .../fixtures/TestLogStream_Delete.yaml | 62 ++ .../fixtures/TestLogStream_Get.yaml | 62 ++ .../fixtures/TestLogStream_List.yaml | 62 ++ .../TestLogStream_Update_Destinations.yaml | 62 ++ .../TestLogStream_Update_LabelAndStatus.yaml | 62 ++ ...tLogsDestination_Create_InvalidSecret.yaml | 36 +- ...estLogsDestination_Create_InvalidType.yaml | 36 +- .../fixtures/TestLogsDestination_Delete.yaml | 72 +-- .../fixtures/TestLogsDestination_Get.yaml | 92 +-- .../fixtures/TestLogsDestination_List.yaml | 98 ++-- .../TestLogsDestination_UpdateAndHistory.yaml | 136 ++--- test/integration/monitor_logs_test.go | 17 +- 15 files changed, 631 insertions(+), 710 deletions(-) diff --git a/test/integration/fixtures/TestLogStream_Create_EmptyDestinations.yaml b/test/integration/fixtures/TestLogStream_Create_EmptyDestinations.yaml index b3b18b70f..5ed2516e9 100644 --- a/test/integration/fixtures/TestLogStream_Create_EmptyDestinations.yaml +++ b/test/integration/fixtures/TestLogStream_Create_EmptyDestinations.yaml @@ -39,7 +39,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 07 May 2026 15:11:29 GMT + - Mon, 11 May 2026 14:38:34 GMT Pragma: - no-cache Strict-Transport-Security: @@ -64,7 +64,7 @@ interactions: code: 200 duration: "" - request: - body: '{"destinations":[],"label":"go-test-empty-dest-1778166689144566000","type":"audit_logs"}' + body: '{"destinations":[],"label":"go-test-empty-dest-1778510314821955000","type":"audit_logs"}' form: {} headers: Accept: @@ -93,7 +93,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 07 May 2026 15:11:29 GMT + - Mon, 11 May 2026 14:38:35 GMT Pragma: - no-cache Strict-Transport-Security: diff --git a/test/integration/fixtures/TestLogStream_Create_InvalidDestination.yaml b/test/integration/fixtures/TestLogStream_Create_InvalidDestination.yaml index 95e4aa677..fcc1135d5 100644 --- a/test/integration/fixtures/TestLogStream_Create_InvalidDestination.yaml +++ b/test/integration/fixtures/TestLogStream_Create_InvalidDestination.yaml @@ -39,7 +39,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 07 May 2026 15:08:17 GMT + - Mon, 11 May 2026 14:37:10 GMT Pragma: - no-cache Strict-Transport-Security: @@ -64,7 +64,7 @@ interactions: code: 200 duration: "" - request: - body: '{"destinations":[999999999],"label":"go-test-invalid-dest-1778166497049166000","type":"audit_logs"}' + body: '{"destinations":[999999999],"label":"go-test-invalid-dest-1778510230561280000","type":"audit_logs"}' form: {} headers: Accept: @@ -93,7 +93,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 07 May 2026 15:08:17 GMT + - Mon, 11 May 2026 14:37:11 GMT Pragma: - no-cache Strict-Transport-Security: diff --git a/test/integration/fixtures/TestLogStream_Create_TwoDestinations.yaml b/test/integration/fixtures/TestLogStream_Create_TwoDestinations.yaml index 6235e4ae5..1caed4a08 100644 --- a/test/integration/fixtures/TestLogStream_Create_TwoDestinations.yaml +++ b/test/integration/fixtures/TestLogStream_Create_TwoDestinations.yaml @@ -39,7 +39,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 07 May 2026 15:13:27 GMT + - Mon, 11 May 2026 14:39:43 GMT Pragma: - no-cache Strict-Transport-Security: @@ -438,7 +438,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 07 May 2026 15:13:28 GMT + - Mon, 11 May 2026 14:39:44 GMT Pragma: - no-cache Strict-Transport-Security: @@ -464,7 +464,7 @@ interactions: code: 200 duration: "" - request: - body: '{"region":"gb-lon","label":"go-test-logs-destination-1778166808246946000","acl":"private","cors_enabled":false}' + body: '{"region":"gb-lon","label":"go-test-logs-monitoring-1778510384270147000","acl":"private","cors_enabled":false}' form: {} headers: Accept: @@ -476,8 +476,8 @@ interactions: url: https://api.linode.com/v4beta/object-storage/buckets method: POST response: - body: '{"hostname": "go-test-logs-destination-1778166808246946000.gb-lon-1.linodeobjects.com", - "label": "go-test-logs-destination-1778166808246946000", "created": "2018-01-02T03:04:05", + body: '{"hostname": "go-test-logs-monitoring-1778510384270147000.gb-lon-1.linodeobjects.com", + "label": "go-test-logs-monitoring-1778510384270147000", "created": "2018-01-02T03:04:05", "region": "gb-lon", "cluster": "", "size": 0, "objects": 0, "endpoint_type": "E3", "s3_endpoint": "gb-lon-1.linodeobjects.com"}' headers: @@ -498,13 +498,13 @@ interactions: Connection: - keep-alive Content-Length: - - "306" + - "304" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Thu, 07 May 2026 15:14:26 GMT + - Mon, 11 May 2026 14:39:50 GMT Pragma: - no-cache Strict-Transport-Security: @@ -528,7 +528,7 @@ interactions: code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1778166866019868000","regions":["gb-lon"]}' + body: '{"label":"go-test-logs-monitoring-1778510390289759000","regions":["gb-lon"]}' form: {} headers: Accept: @@ -540,7 +540,7 @@ interactions: url: https://api.linode.com/v4beta/object-storage/keys method: POST response: - body: '{"id": 3600269, "label": "go-test-logs-destination-1778166866019868000", + body: '{"id": 3666686, "label": "go-test-logs-monitoring-1778510390289759000", "access_key": "[SANITIZED]", "secret_key": "[SANITIZED]", "limited": false, "bucket_access": null, "regions": [{"id": "gb-lon", "s3_endpoint": "gb-lon-1.linodeobjects.com", "endpoint_type": "E3"}]}' @@ -562,13 +562,13 @@ interactions: Connection: - keep-alive Content-Length: - - "308" + - "307" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Thu, 07 May 2026 15:14:28 GMT + - Mon, 11 May 2026 14:39:51 GMT Pragma: - no-cache Strict-Transport-Security: @@ -592,407 +592,7 @@ interactions: code: 200 duration: "" - request: - body: "" - form: {} - headers: - Accept: - - application/json - Content-Type: - - application/json - User-Agent: - - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/regions?page=1 - method: GET - response: - body: '{"data": [{"id": "gb-lon", "label": "London 2, UK", "country": "gb", "capabilities": - ["Linodes", "Block Storage Encryption", "LA Disk Encryption", "Disk Encryption", - "Backups", "NodeBalancers", "Block Storage", "Object Storage", "GPU Linodes", - "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", - "Premium Plans", "Placement Group", "StackScripts", "NETINT Quadra T1U", "Maintenance - Policy", "Linode Interfaces", "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": - ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, - "status": "ok", "resolvers": {"ipv4": "172.236.0.46,172.236.0.50,172.236.0.47,172.236.0.53,172.236.0.52,172.236.0.45,172.236.0.49,172.236.0.51,172.236.0.54,172.236.0.48", - "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, - "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": - 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "se-sto", - "label": "Stockholm, SE", "country": "se", "capabilities": ["Linodes", "Block - Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", - "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement - Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": - {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", - "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.232.128.24,172.232.128.26,172.232.128.20,172.232.128.22,172.232.128.25,172.232.128.19,172.232.128.23,172.232.128.18,172.232.128.21,172.232.128.27", - "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, - "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": - 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "es-mad", - "label": "Madrid, ES", "country": "es", "capabilities": ["Linodes", "Block Storage - Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", - "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement - Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": - {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", - "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.233.111.6,172.233.111.17,172.233.111.21,172.233.111.25,172.233.111.19,172.233.111.12,172.233.111.26,172.233.111.16,172.233.111.18,172.233.111.9", - "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, - "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": - 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "in-maa", - "label": "Chennai, IN", "country": "in", "capabilities": ["Linodes", "Block - Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", - "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement - Group", "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces"], - "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed - Databases", "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.232.96.17,172.232.96.26,172.232.96.19,172.232.96.20,172.232.96.25,172.232.96.21,172.232.96.18,172.232.96.22,172.232.96.23,172.232.96.24", - "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, - "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": - 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "jp-osa", - "label": "Osaka, JP", "country": "jp", "capabilities": ["Linodes", "Block Storage - Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", - "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement - Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": - {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", - "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.233.64.44,172.233.64.43,172.233.64.37,172.233.64.40,172.233.64.46,172.233.64.41,172.233.64.39,172.233.64.42,172.233.64.45,172.233.64.38", - "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, - "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": - 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "it-mil", - "label": "Milan, IT", "country": "it", "capabilities": ["Linodes", "Block Storage - Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", - "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement - Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": - {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", - "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.232.192.19,172.232.192.18,172.232.192.16,172.232.192.20,172.232.192.24,172.232.192.21,172.232.192.22,172.232.192.17,172.232.192.15,172.232.192.23", - "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, - "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": - 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-mia", - "label": "Miami, FL", "country": "us", "capabilities": ["Linodes", "Block Storage - Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", - "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement - Group", "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces"], - "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed - Databases", "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.233.160.34,172.233.160.27,172.233.160.30,172.233.160.29,172.233.160.32,172.233.160.28,172.233.160.33,172.233.160.26,172.233.160.25,172.233.160.31", - "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, - "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": - 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "id-cgk", - "label": "Jakarta, ID", "country": "id", "capabilities": ["Linodes", "Block - Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", - "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement - Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": - {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", - "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.232.224.23,172.232.224.32,172.232.224.26,172.232.224.27,172.232.224.21,172.232.224.24,172.232.224.22,172.232.224.20,172.232.224.31,172.232.224.28", - "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, - "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": - 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-lax", - "label": "Los Angeles, CA", "country": "us", "capabilities": ["Linodes", "Block - Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", - "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement - Group", "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces", - "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", - "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": - "ok", "resolvers": {"ipv4": "172.233.128.45,172.233.128.38,172.233.128.53,172.233.128.37,172.233.128.34,172.233.128.36,172.233.128.33,172.233.128.39,172.233.128.43,172.233.128.44", - "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, - "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": - 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "nl-ams", - "label": "Amsterdam, NL", "country": "nl", "capabilities": ["Linodes", "Block - Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", - "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement - Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": - {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", - "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.233.33.36,172.233.33.38,172.233.33.35,172.233.33.39,172.233.33.34,172.233.33.33,172.233.33.31,172.233.33.30,172.233.33.37,172.233.33.32", - "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, - "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": - 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "au-mel", - "label": "Melbourne, AU", "country": "au", "capabilities": ["Linodes", "Block - Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "Object Storage", "Kubernetes", "Cloud Firewall", "Vlans", - "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", - "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": - ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, - "status": "ok", "resolvers": {"ipv4": "172.236.32.23,172.236.32.35,172.236.32.30,172.236.32.28,172.236.32.32,172.236.32.33,172.236.32.27,172.236.32.37,172.236.32.29,172.236.32.34", - "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, - "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": - 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "in-bom-2", - "label": "Mumbai 2, IN", "country": "in", "capabilities": ["Linodes", "Block - Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", - "Managed Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts", - "Maintenance Policy", "Linode Interfaces", "ACLP Logs Datacenter LKE-E"], "monitors": - {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", - "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.236.171.41,172.236.171.42,172.236.171.25,172.236.171.44,172.236.171.26,172.236.171.45,172.236.171.24,172.236.171.43,172.236.171.27,172.236.171.28", - "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, - "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": - 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "de-fra-2", - "label": "Frankfurt 2, DE", "country": "de", "capabilities": ["Linodes", "Block - Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", - "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement - Group", "StackScripts", "NETINT Quadra T1U", "Maintenance Policy", "Linode Interfaces", - "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", - "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": - "ok", "resolvers": {"ipv4": "172.236.203.9,172.236.203.16,172.236.203.19,172.236.203.15,172.236.203.17,172.236.203.11,172.236.203.18,172.236.203.14,172.236.203.13,172.236.203.12", - "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, - "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": - 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "sg-sin-2", - "label": "Singapore 2, SG", "country": "sg", "capabilities": ["Linodes", "Block - Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", - "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement - Group", "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs - Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], - "metrics": ["Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": - {"ipv4": "172.236.129.8,172.236.129.42,172.236.129.41,172.236.129.19,172.236.129.46,172.236.129.23,172.236.129.48,172.236.129.20,172.236.129.21,172.236.129.47", - "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, - "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": - 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "jp-tyo-3", - "label": "Tokyo 3, JP", "country": "jp", "capabilities": ["Linodes", "Block - Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", - "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement - Group", "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs - Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], - "metrics": ["Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": - {"ipv4": "172.237.4.15,172.237.4.19,172.237.4.17,172.237.4.21,172.237.4.16,172.237.4.18,172.237.4.23,172.237.4.24,172.237.4.20,172.237.4.14", - "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, - "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": - 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-iad-2", - "label": "Washington 2, DC", "country": "us", "capabilities": ["Linodes", "Block - Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", - "Object Storage", "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Managed - Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts", - "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed - Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, - "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": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, - "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": - 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "fr-par-2", - "label": "Paris 2, FR", "country": "fr", "capabilities": ["Linodes", "Block - Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", - "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", - "Metadata", "Premium Plans", "Placement Group", "StackScripts", "Maintenance - Policy", "Linode Interfaces", "ACLP Logs Datacenter LKE-E"], "monitors": {"alerts": - ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, - "status": "ok", "resolvers": {"ipv4": "172.239.11.24,172.239.11.22,172.239.11.17,172.239.11.20,172.239.11.23,172.239.11.19,172.239.11.21,172.239.11.15,172.239.11.16,172.239.11.18", - "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, - "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": - 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "br-gru", - "label": "Sao Paulo, BR", "country": "br", "capabilities": ["Linodes", "Block - Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "Object Storage", "Kubernetes", "Cloud Firewall", "Vlans", - "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", - "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": - ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, - "status": "ok", "resolvers": {"ipv4": "172.233.0.4,172.233.0.9,172.233.0.7,172.233.0.12,172.233.0.5,172.233.0.13,172.233.0.10,172.233.0.6,172.233.0.8,172.233.0.11", - "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, - "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": - 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-sea", - "label": "Seattle, WA", "country": "us", "capabilities": ["Linodes", "Block - Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", - "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement - Group", "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs - Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], - "metrics": ["Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": - {"ipv4": "172.232.160.19,172.232.160.21,172.232.160.17,172.232.160.15,172.232.160.18,172.232.160.8,172.232.160.12,172.232.160.11,172.232.160.14,172.232.160.16", - "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, - "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": - 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "fr-par", - "label": "Paris, FR", "country": "fr", "capabilities": ["Linodes", "Block Storage - Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", - "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement - Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": - {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", - "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "172.232.32.21,172.232.32.23,172.232.32.17,172.232.32.18,172.232.32.16,172.232.32.22,172.232.32.20,172.232.32.14,172.232.32.11,172.232.32.12", - "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, - "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": - 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-ord", - "label": "Chicago, IL", "country": "us", "capabilities": ["Linodes", "Block - Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", - "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement - Group", "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs - Datacenter LKE-E"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], - "metrics": ["Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": - {"ipv4": "172.232.0.17,172.232.0.16,172.232.0.21,172.232.0.13,172.232.0.22,172.232.0.9,172.232.0.19,172.232.0.20,172.232.0.15,172.232.0.18", - "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, - "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": - 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-iad", - "label": "Washington, DC", "country": "us", "capabilities": ["Linodes", "Block - Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "Object Storage", "Kubernetes", "Cloud Firewall", "Vlans", - "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement Group", - "StackScripts", "Maintenance Policy", "Linode Interfaces", "ACLP Logs Datacenter - LKE-E"], "monitors": {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": - ["Managed Databases", "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": - "139.144.192.62,139.144.192.60,139.144.192.61,139.144.192.53,139.144.192.54,139.144.192.67,139.144.192.69,139.144.192.66,139.144.192.52,139.144.192.68", - "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, - "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": - 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ap-southeast", - "label": "Sydney, AU", "country": "au", "capabilities": ["Linodes", "Block Storage - Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", - "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance - Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", - "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": - "ok", "resolvers": {"ipv4": "172.105.166.5,172.105.169.5,172.105.168.5,172.105.172.5,172.105.162.5,172.105.170.5,172.105.167.5,172.105.171.5,172.105.181.5,172.105.161.5", - "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, - "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": - 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ca-central", - "label": "Toronto, CA", "country": "ca", "capabilities": ["Linodes", "Block - Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "Block - Storage Migrations", "Managed Databases", "Metadata", "Placement Group", "StackScripts", - "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed - Databases", "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, - "status": "ok", "resolvers": {"ipv4": "172.105.0.5,172.105.3.5,172.105.4.5,172.105.5.5,172.105.6.5,172.105.7.5,172.105.8.5,172.105.9.5,172.105.10.5,172.105.11.5", - "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, - "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": - 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ap-west", - "label": "Mumbai, IN", "country": "in", "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.34.5,172.105.35.5,172.105.36.5,172.105.37.5,172.105.38.5,172.105.39.5,172.105.40.5,172.105.41.5,172.105.42.5,172.105.43.5", - "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, - "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": - 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-central", - "label": "Dallas, TX", "country": "us", "capabilities": ["Linodes", "Block Storage - Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", - "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance - Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", - "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": - "ok", "resolvers": {"ipv4": "72.14.179.5,72.14.188.5,173.255.199.5,66.228.53.5,96.126.122.5,96.126.124.5,96.126.127.5,198.58.107.5,198.58.111.5,23.239.24.5", - "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, - "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": - 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ap-northeast", - "label": "Tokyo 2, JP", "country": "jp", "capabilities": ["Linodes", "Block - Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", - "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance - Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", - "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": - "ok", "resolvers": {"ipv4": "139.162.66.5,139.162.67.5,139.162.68.5,139.162.69.5,139.162.70.5,139.162.71.5,139.162.72.5,139.162.73.5,139.162.74.5,139.162.75.5", - "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, - "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": - 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "eu-central", - "label": "Frankfurt, DE", "country": "de", "capabilities": ["Linodes", "Block - Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", - "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata", "Placement - Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": - {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", - "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "139.162.130.5,139.162.131.5,139.162.132.5,139.162.133.5,139.162.134.5,139.162.135.5,139.162.136.5,139.162.137.5,139.162.138.5,139.162.139.5", - "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, - "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": - 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "ap-south", - "label": "Singapore, SG", "country": "sg", "capabilities": ["Linodes", "Block - Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", - "Vlans", "Block Storage Migrations", "Metadata", "Placement Group", "StackScripts", - "Maintenance Policy", "Linode Interfaces"], "monitors": {"alerts": ["NodeBalancers"], - "metrics": ["NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "139.162.11.5,139.162.13.5,139.162.14.5,139.162.15.5,139.162.16.5,139.162.21.5,139.162.27.5,103.3.60.18,103.3.60.19,103.3.60.20", - "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, - "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": - 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "eu-west", - "label": "London, UK", "country": "gb", "capabilities": ["Linodes", "Block Storage - Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", - "Metadata", "Placement Group", "StackScripts", "Maintenance Policy", "Linode - Interfaces"], "monitors": {"alerts": ["NodeBalancers"], "metrics": ["NodeBalancers"]}, - "status": "ok", "resolvers": {"ipv4": "178.79.182.5, 176.58.107.5, 176.58.116.5, - 176.58.121.5, 151.236.220.5, 212.71.252.5, 212.71.253.5, 109.74.192.20, 109.74.193.20, - 109.74.194.20", "ipv6": "1234::5678, 1234::5678, 1234::5678, 1234::5678, - 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678"}, - "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": - 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-east", - "label": "Newark, NJ", "country": "us", "capabilities": ["Linodes", "Block Storage - Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", - "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata", "Placement - Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": - {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", - "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "66.228.42.5,96.126.106.5,50.116.53.5,50.116.58.5,50.116.61.5,50.116.62.5,66.175.211.5,97.107.133.4,173.255.225.5,66.228.35.5", - "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, - "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": - 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-southeast", - "label": "Atlanta, GA", "country": "us", "capabilities": ["Linodes", "Block - Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", - "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata", "Placement - Group", "StackScripts", "Maintenance Policy", "Linode Interfaces"], "monitors": - {"alerts": ["Managed Databases", "NodeBalancers"], "metrics": ["Managed Databases", - "NodeBalancers"]}, "status": "ok", "resolvers": {"ipv4": "74.207.231.5,173.230.128.5,173.230.129.5,173.230.136.5,173.230.140.5,66.228.59.5,66.228.62.5,50.116.35.5,50.116.41.5,23.239.18.5", - "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}, - "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": - 5, "maximum_linodes_per_flexible_pg": 5}, "site_type": "core"}, {"id": "us-west", - "label": "Fremont, CA", "country": "us", "capabilities": ["Linodes", "Block - Storage Encryption", "LA Disk Encryption", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", - "Managed Databases", "Metadata", "Placement Group", "StackScripts", "Maintenance - Policy", "Linode Interfaces"], "monitors": {"alerts": ["Managed Databases", - "NodeBalancers"], "metrics": ["Managed Databases", "NodeBalancers"]}, "status": - "ok", "resolvers": {"ipv4": "173.230.145.5, 173.230.147.5, 173.230.155.5, 173.255.212.5, - 173.255.219.5, 173.255.241.5, 173.255.243.5, 173.255.244.5, 74.207.241.5, 74.207.242.5", - "ipv6": "1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, - 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678"}, "placement_group_limits": - {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5, "maximum_linodes_per_flexible_pg": - 5}, "site_type": "core"}], "page": 1, "pages": 1, "results": 33}' - headers: - Access-Control-Allow-Credentials: - - "true" - Access-Control-Allow-Headers: - - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter - Access-Control-Allow-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, 07 May 2026 15:14:29 GMT - Pragma: - - no-cache - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization, X-Filter - - Authorization, X-Filter - - Accept-Encoding - X-Accepted-Oauth-Scopes: - - '*' - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - DENY - - DENY - X-Oauth-Scopes: - - '*' - X-Ratelimit-Limit: - - "1840" - X-Xss-Protection: - - 1; mode=block - status: 200 OK - code: 200 - duration: "" -- request: - body: '{"region":"gb-lon","label":"go-test-logs-destination-1778166869041094000","acl":"private","cors_enabled":false}' + body: '{"region":"gb-lon","label":"go-test-logs-monitoring-1778510391926838000","acl":"private","cors_enabled":false}' form: {} headers: Accept: @@ -1004,8 +604,8 @@ interactions: url: https://api.linode.com/v4beta/object-storage/buckets method: POST response: - body: '{"hostname": "go-test-logs-destination-1778166869041094000.gb-lon-1.linodeobjects.com", - "label": "go-test-logs-destination-1778166869041094000", "created": "2018-01-02T03:04:05", + body: '{"hostname": "go-test-logs-monitoring-1778510391926838000.gb-lon-1.linodeobjects.com", + "label": "go-test-logs-monitoring-1778510391926838000", "created": "2018-01-02T03:04:05", "region": "gb-lon", "cluster": "", "size": 0, "objects": 0, "endpoint_type": "E3", "s3_endpoint": "gb-lon-1.linodeobjects.com"}' headers: @@ -1026,13 +626,13 @@ interactions: Connection: - keep-alive Content-Length: - - "306" + - "304" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Thu, 07 May 2026 15:14:34 GMT + - Mon, 11 May 2026 14:39:57 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1056,7 +656,7 @@ interactions: code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1778166874404975000","regions":["gb-lon"]}' + body: '{"label":"go-test-logs-monitoring-1778510397373938000","regions":["gb-lon"]}' form: {} headers: Accept: @@ -1068,7 +668,7 @@ interactions: url: https://api.linode.com/v4beta/object-storage/keys method: POST response: - body: '{"id": 3600271, "label": "go-test-logs-destination-1778166874404975000", + body: '{"id": 3666689, "label": "go-test-logs-monitoring-1778510397373938000", "access_key": "[SANITIZED]", "secret_key": "[SANITIZED]", "limited": false, "bucket_access": null, "regions": [{"id": "gb-lon", "s3_endpoint": "gb-lon-1.linodeobjects.com", "endpoint_type": "E3"}]}' @@ -1090,13 +690,13 @@ interactions: Connection: - keep-alive Content-Length: - - "308" + - "307" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Thu, 07 May 2026 15:14:36 GMT + - Mon, 11 May 2026 14:40:02 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1120,7 +720,7 @@ interactions: code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1778166876653697000","type":"akamai_object_storage","details":{"access_key_id":"K09FPCXZVCLDB3UHJ34C","access_key_secret":"eSQHPvZsPVyFxjZUxdG63EtVPRNPkxNsl48GGj8h","bucket_name":"go-test-logs-destination-1778166808246946000","host":"go-test-logs-destination-1778166808246946000.gb-lon-1.linodeobjects.com"}}' + body: '{"label":"go-test-logs-monitoring-1778510402289583000","type":"akamai_object_storage","details":{"access_key_id":"QT1DIM287MYC3KDL74OH","access_key_secret":"ei3sE7kdRaja6z9qS0UMRD4J5fdyFBvoqU9Fxoat","bucket_name":"go-test-logs-monitoring-1778510384270147000","host":"go-test-logs-monitoring-1778510384270147000.gb-lon-1.linodeobjects.com"}}' form: {} headers: Accept: @@ -1132,10 +732,10 @@ interactions: url: https://api.linode.com/v4beta/monitor/streams/destinations method: POST response: - body: '{"id": 437, "label": "go-test-logs-destination-1778166876653697000", "type": - "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778166808246946000.gb-lon-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1778166808246946000", "access_key_id": - "K09FPCXZVCLDB3UHJ34C"}, "version": 1, "status": "active", "created_by": "dola-klipensk", + body: '{"id": 478, "label": "go-test-logs-monitoring-1778510402289583000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-monitoring-1778510384270147000.gb-lon-1.linodeobjects.com", + "bucket_name": "go-test-logs-monitoring-1778510384270147000", "access_key_id": + "QT1DIM287MYC3KDL74OH"}, "version": 1, "status": "active", "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": "2018-01-02T03:04:05"}' headers: @@ -1156,13 +756,13 @@ interactions: Connection: - keep-alive Content-Length: - - "465" + - "462" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Thu, 07 May 2026 15:14:37 GMT + - Mon, 11 May 2026 14:40:03 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1186,7 +786,7 @@ interactions: code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1778166877863216000","type":"akamai_object_storage","details":{"access_key_id":"DUGBPP1E494JVQ51DP3D","access_key_secret":"egXuFLziA5LGS6NuO1ozLFjXyQQsxsicR20YViXq","bucket_name":"go-test-logs-destination-1778166869041094000","host":"go-test-logs-destination-1778166869041094000.gb-lon-1.linodeobjects.com"}}' + body: '{"label":"go-test-logs-monitoring-1778510403620675000","type":"akamai_object_storage","details":{"access_key_id":"V9YDWIL6S23TCDTUMZWV","access_key_secret":"nZWF0REwxgtzaWtYEg7FdJvy7oJ6rJXMY777HOho","bucket_name":"go-test-logs-monitoring-1778510391926838000","host":"go-test-logs-monitoring-1778510391926838000.gb-lon-1.linodeobjects.com"}}' form: {} headers: Accept: @@ -1198,10 +798,10 @@ interactions: url: https://api.linode.com/v4beta/monitor/streams/destinations method: POST response: - body: '{"id": 438, "label": "go-test-logs-destination-1778166877863216000", "type": - "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778166869041094000.gb-lon-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1778166869041094000", "access_key_id": - "DUGBPP1E494JVQ51DP3D"}, "version": 1, "status": "active", "created_by": "dola-klipensk", + body: '{"id": 479, "label": "go-test-logs-monitoring-1778510403620675000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-monitoring-1778510391926838000.gb-lon-1.linodeobjects.com", + "bucket_name": "go-test-logs-monitoring-1778510391926838000", "access_key_id": + "V9YDWIL6S23TCDTUMZWV"}, "version": 1, "status": "active", "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": "2018-01-02T03:04:05"}' headers: @@ -1222,13 +822,13 @@ interactions: Connection: - keep-alive Content-Length: - - "465" + - "462" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Thu, 07 May 2026 15:14:39 GMT + - Mon, 11 May 2026 14:40:04 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1252,7 +852,7 @@ interactions: code: 200 duration: "" - request: - body: '{"destinations":[437,438],"label":"go-test-two-dest-1778166879118448000","type":"audit_logs"}' + body: '{"destinations":[478,479],"label":"go-test-two-dest-1778510404854343000","type":"audit_logs"}' form: {} headers: Accept: @@ -1281,7 +881,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 07 May 2026 15:14:39 GMT + - Mon, 11 May 2026 14:40:05 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1307,7 +907,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations/438 + url: https://api.linode.com/v4beta/monitor/streams/destinations/479 method: DELETE response: body: '{}' @@ -1335,7 +935,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 07 May 2026 15:14:40 GMT + - Mon, 11 May 2026 14:40:05 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1368,7 +968,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations/437 + url: https://api.linode.com/v4beta/monitor/streams/destinations/478 method: DELETE response: body: '{}' @@ -1396,7 +996,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 07 May 2026 15:14:40 GMT + - Mon, 11 May 2026 14:40:06 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1429,7 +1029,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/keys/3600271 + url: https://api.linode.com/v4beta/object-storage/keys/3666689 method: DELETE response: body: '{}' @@ -1457,7 +1057,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 07 May 2026 15:14:40 GMT + - Mon, 11 May 2026 14:40:06 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1490,11 +1090,11 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778166869041094000/object-list + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778510391926838000/object-list method: GET response: - body: '{"data": [{"name": "cloud-logs-test-connection-20260507T151438", "size": - 9, "last_modified": "2018-01-02T03:04:05.752Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", + body: '{"data": [{"name": "cloud-logs-test-connection-20260511T144003", "size": + 9, "last_modified": "2018-01-02T03:04:05.545Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}], "next_marker": null, "is_truncated": false}' headers: @@ -1521,7 +1121,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 07 May 2026 15:14:42 GMT + - Mon, 11 May 2026 14:40:08 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1546,7 +1146,7 @@ interactions: code: 200 duration: "" - request: - body: '{"name":"cloud-logs-test-connection-20260507T151438","method":"DELETE","expires_in":360}' + body: '{"name":"cloud-logs-test-connection-20260511T144003","method":"DELETE","expires_in":360}' form: {} headers: Accept: @@ -1555,10 +1155,10 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778166869041094000/object-url + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778510391926838000/object-url method: POST response: - body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-destination-1778166869041094000/cloud-logs-test-connection-20260507T151438?Signature=KPj2TE%2F2SI34kmoJ5%2FOk2xXZiBE%3D&Expires=1778167246&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCnw2kTbZ8wBKEFv%2BmaWpNGJfxhASXnBNK3gkY1cuyd2e6Gdnkp34/mIO6yumF7oHFKH9UsWQZO97D/UWde%2BsCr%2Bm6A4t5MtrQrcM023LCZAHWgumcmvlD7ebuzeLLth2QCTlL4Gv1fuClwYECHgXfLYq7FtSI2a0bMgD8tJ7Emf39JLCTVSGYNPmy%2BAQk/MB/gLKqjREAYDjmBPzLMjOZVWAi6/1s57H0HUwgZtgVtgH2k//M0DvMCE5MGKAedHuv6iefjy7m0MXwdddsrIgrVgmTq4KLq9nM85FWC4cAar4kOIgtSfUPg8rbbpPv6leuiXs0FLkJ2CYKg4Z6GJXLxc3AiiVJtu5FmAUKBQDw0ht2OdSPIlnWVsLrgZu1DNa%2BfIhvtPPKuPNfqMcQcI3rwoWLb/8yM4N7IokplcOWWalCIlxTj9zTmzSEo6oWG7g/CERLN68%2BpHt49Gw%2BUN5pNkDrb0r", + body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-monitoring-1778510391926838000/cloud-logs-test-connection-20260511T144003?Signature=QCdqtofgD7WetmfKTy%2FDfdt1Id8%3D&Expires=1778510773&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCoVyYaT37VvySUGZ%2BK4dTxbZIqxgaNOklAPpEVEUw8KnzSLKYcTS0/PUwAv3sxdhDcYeoNczQ%2Bv7/QLTzDMYpsPCR3y4yTsNCP5hUND9VMuo9jLBBbWlV3nDJsZFV6cyaZ8rSg7CyG4Ef%2Bp4qWxirgD%2B8O%2BzV2ddT80HMQ6Mkzt03qzPqdFzM6oyhHi0jk4lvaa7j1FJoo2gR6mvIp9uWvuJAo2B/ziwP0Oc5qE7Nr2%2BC2iLv6KcTADXU8cUKrumf1isDPadl0siAo%2Ba4pkQ9cqARoUE44KNUJ%2BN1uJedXvCuj3n9Ocwh6kjhwYCDNkYR8nIpcYaLk8qBeM6HE0HdpiiIDZFgKMuWSzKBcF8%2B122AnkF2rxUj3BiJ2YMlwK5j%2BKCmlnm5Zyl2Loj/x8Xh6BeFyj38faltpdTh2Q/QteyjdHy9CivreV8xtOlNzvyjPBvs65e4L5s/M1jYAXa9gope5m4", "exists": true}' headers: Access-Control-Allow-Credentials: @@ -1578,13 +1178,13 @@ interactions: Connection: - keep-alive Content-Length: - - "853" + - "856" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Thu, 07 May 2026 15:14:46 GMT + - Mon, 11 May 2026 14:40:13 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1617,7 +1217,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778166869041094000 + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778510391926838000 method: DELETE response: body: '{}' @@ -1645,7 +1245,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 07 May 2026 15:14:53 GMT + - Mon, 11 May 2026 14:40:19 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1678,7 +1278,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/keys/3600269 + url: https://api.linode.com/v4beta/object-storage/keys/3666686 method: DELETE response: body: '{}' @@ -1706,7 +1306,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 07 May 2026 15:14:54 GMT + - Mon, 11 May 2026 14:40:20 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1739,11 +1339,11 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778166808246946000/object-list + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778510384270147000/object-list method: GET response: - body: '{"data": [{"name": "cloud-logs-test-connection-20260507T151436", "size": - 9, "last_modified": "2018-01-02T03:04:05.542Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", + body: '{"data": [{"name": "cloud-logs-test-connection-20260511T144002", "size": + 9, "last_modified": "2018-01-02T03:04:05.241Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}], "next_marker": null, "is_truncated": false}' headers: @@ -1770,7 +1370,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 07 May 2026 15:14:56 GMT + - Mon, 11 May 2026 14:40:22 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1795,7 +1395,7 @@ interactions: code: 200 duration: "" - request: - body: '{"name":"cloud-logs-test-connection-20260507T151436","method":"DELETE","expires_in":360}' + body: '{"name":"cloud-logs-test-connection-20260511T144002","method":"DELETE","expires_in":360}' form: {} headers: Accept: @@ -1804,10 +1404,10 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778166808246946000/object-url + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778510384270147000/object-url method: POST response: - body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-destination-1778166808246946000/cloud-logs-test-connection-20260507T151436?Signature=rv50dt2hHxZ60QC5Saczw8Ap5ZQ%3D&Expires=1778167262&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCjHCu5WTiu/D3%2BaK8d1Fs6GfopCS/W5E2lVIg1ptcknqmGVJq8pIQb0gK6gOhsA34Hj4VVFM3B/pHl9lXeGTyq58zJ43OqAFGnPSM7Jd8NQnA6UhlxpvF8o7qTwjwLoLLrd29T6v7AiYZ1qmposYv/pz0Zbt6FZhEG1pS%2BQD4T%2Bkcsx1KSpMvH/1L1I4ypSuer4a/32jA1uTmVMNp9twgNFV1llBN3eB8DkpKCuj5L3GZYHEh2KXu52I9Jwsz%2BCbDxqXDxiq4eHyQM7geJuGLwG15SWpceG7PkllEQW0RMkR59kpmCoRLUuZRdNE8nYzokGQS1Cz043cygI2B%2BmzP8ZVjL%2BkLUrZ9ZLtWW5NjizgvE%2Bj8S5oq6gdalVhDrPKTqisci883DpebQwqIQscn%2BBFX4gTNpHBib9JtAvwNulx6tQQYqJl6tASKV0mCjaoNCpc4TEfLVAEXP5Qby818G1aLB0J", + body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-monitoring-1778510384270147000/cloud-logs-test-connection-20260511T144002?Signature=5uIkTiKRJ9P1yFQmOzW1C0uqJQg%3D&Expires=1778510786&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCpsQpY151Of5lRhPgszaROuVfu5kN/9B6xCZ8IwaGxDgyZUcjWz9ir%2BJ0wnUaPA05ucJO2C%2BVlJnf73obQuc5H/Vy520PksT8Km8bFNXBgIakJZqe5x7woTljP9PdPam1WpA8yEQP1yor%2B4/flA6ulyiatLWO/Uj%2B7E14PqIgaiEDKgOqcBzEd8YD97u5zskSIKnKoeK2JC6DNro5mbKLM9rzl114GgbCNFXDWiZVmByP4OGVNpNF8WLW85JjFPclqgkhINKUbX7GSgL0wWsuEEoZ5bHaTYkogMzoIZo%2BD5t9OKUtyZXhZgVa99eTpZ%2B89R/JB%2B0LIlD1Ifzsr3NJDeepF2o12h4iKzE4HFR42N2CJ%2Bn4QJ3ylteFJ%2BsEl5zfHAvCEFf8CSk5S4qXwTpghTa9hG5/NmU5fowSY8lwwAAFlp%2BDQoJtOcCasd/CZMLbmk3arETvW3UympCVVoglp6pJuzB", "exists": true}' headers: Access-Control-Allow-Credentials: @@ -1827,13 +1427,13 @@ interactions: Connection: - keep-alive Content-Length: - - "851" + - "854" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Thu, 07 May 2026 15:15:02 GMT + - Mon, 11 May 2026 14:40:27 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1866,7 +1466,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778166808246946000 + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778510384270147000 method: DELETE response: body: '{}' @@ -1894,7 +1494,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 07 May 2026 15:15:08 GMT + - Mon, 11 May 2026 14:40:33 GMT Pragma: - no-cache Strict-Transport-Security: diff --git a/test/integration/fixtures/TestLogStream_Delete.yaml b/test/integration/fixtures/TestLogStream_Delete.yaml index 7096b441d..79c02cecb 100644 --- a/test/integration/fixtures/TestLogStream_Delete.yaml +++ b/test/integration/fixtures/TestLogStream_Delete.yaml @@ -1,6 +1,68 @@ --- 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/monitor/streams?page=1 + method: GET + response: + body: '{"pages": 0, "page": 1, "results": 0, "data": []}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Length: + - "49" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Mon, 11 May 2026 14:38:34 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - monitor: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: {} diff --git a/test/integration/fixtures/TestLogStream_Get.yaml b/test/integration/fixtures/TestLogStream_Get.yaml index a86155845..bd90f6181 100644 --- a/test/integration/fixtures/TestLogStream_Get.yaml +++ b/test/integration/fixtures/TestLogStream_Get.yaml @@ -1,6 +1,68 @@ --- 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/monitor/streams?page=1 + method: GET + response: + body: '{"pages": 0, "page": 1, "results": 0, "data": []}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Length: + - "49" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Mon, 11 May 2026 14:38:34 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - monitor: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: {} diff --git a/test/integration/fixtures/TestLogStream_List.yaml b/test/integration/fixtures/TestLogStream_List.yaml index 647c5d58d..beeb49f4b 100644 --- a/test/integration/fixtures/TestLogStream_List.yaml +++ b/test/integration/fixtures/TestLogStream_List.yaml @@ -1,6 +1,68 @@ --- 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/monitor/streams?page=1 + method: GET + response: + body: '{"pages": 0, "page": 1, "results": 0, "data": []}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Length: + - "49" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Mon, 11 May 2026 14:38:34 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - monitor: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: {} diff --git a/test/integration/fixtures/TestLogStream_Update_Destinations.yaml b/test/integration/fixtures/TestLogStream_Update_Destinations.yaml index 8a9da849e..49dc4cd50 100644 --- a/test/integration/fixtures/TestLogStream_Update_Destinations.yaml +++ b/test/integration/fixtures/TestLogStream_Update_Destinations.yaml @@ -1,6 +1,68 @@ --- 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/monitor/streams?page=1 + method: GET + response: + body: '{"pages": 0, "page": 1, "results": 0, "data": []}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Length: + - "49" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Mon, 11 May 2026 14:38:34 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - monitor: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: {} diff --git a/test/integration/fixtures/TestLogStream_Update_LabelAndStatus.yaml b/test/integration/fixtures/TestLogStream_Update_LabelAndStatus.yaml index 264835f6a..f15eb7d1f 100644 --- a/test/integration/fixtures/TestLogStream_Update_LabelAndStatus.yaml +++ b/test/integration/fixtures/TestLogStream_Update_LabelAndStatus.yaml @@ -1,6 +1,68 @@ --- 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/monitor/streams?page=1 + method: GET + response: + body: '{"pages": 0, "page": 1, "results": 0, "data": []}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Length: + - "49" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Mon, 11 May 2026 14:38:34 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - monitor: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: {} diff --git a/test/integration/fixtures/TestLogsDestination_Create_InvalidSecret.yaml b/test/integration/fixtures/TestLogsDestination_Create_InvalidSecret.yaml index c1f57eec9..563d77cc0 100644 --- a/test/integration/fixtures/TestLogsDestination_Create_InvalidSecret.yaml +++ b/test/integration/fixtures/TestLogsDestination_Create_InvalidSecret.yaml @@ -376,7 +376,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 07 May 2026 14:58:50 GMT + - Mon, 11 May 2026 14:27:05 GMT Pragma: - no-cache Strict-Transport-Security: @@ -402,7 +402,7 @@ interactions: code: 200 duration: "" - request: - body: '{"region":"gb-lon","label":"go-test-logs-destination-1778165930409875000","acl":"private","cors_enabled":false}' + body: '{"region":"gb-lon","label":"go-test-logs-monitoring-1778509625138729000","acl":"private","cors_enabled":false}' form: {} headers: Accept: @@ -414,8 +414,8 @@ interactions: url: https://api.linode.com/v4beta/object-storage/buckets method: POST response: - body: '{"hostname": "go-test-logs-destination-1778165930409875000.gb-lon-1.linodeobjects.com", - "label": "go-test-logs-destination-1778165930409875000", "created": "2018-01-02T03:04:05", + body: '{"hostname": "go-test-logs-monitoring-1778509625138729000.gb-lon-1.linodeobjects.com", + "label": "go-test-logs-monitoring-1778509625138729000", "created": "2018-01-02T03:04:05", "region": "gb-lon", "cluster": "", "size": 0, "objects": 0, "endpoint_type": "E3", "s3_endpoint": "gb-lon-1.linodeobjects.com"}' headers: @@ -436,13 +436,13 @@ interactions: Connection: - keep-alive Content-Length: - - "306" + - "304" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Thu, 07 May 2026 14:58:54 GMT + - Mon, 11 May 2026 14:27:09 GMT Pragma: - no-cache Strict-Transport-Security: @@ -466,7 +466,7 @@ interactions: code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1778165934918364000","regions":["gb-lon"]}' + body: '{"label":"go-test-logs-monitoring-1778509629206268000","regions":["gb-lon"]}' form: {} headers: Accept: @@ -478,7 +478,7 @@ interactions: url: https://api.linode.com/v4beta/object-storage/keys method: POST response: - body: '{"id": 3600063, "label": "go-test-logs-destination-1778165934918364000", + body: '{"id": 3666554, "label": "go-test-logs-monitoring-1778509629206268000", "access_key": "[SANITIZED]", "secret_key": "[SANITIZED]", "limited": false, "bucket_access": null, "regions": [{"id": "gb-lon", "s3_endpoint": "gb-lon-1.linodeobjects.com", "endpoint_type": "E3"}]}' @@ -500,13 +500,13 @@ interactions: Connection: - keep-alive Content-Length: - - "308" + - "307" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Thu, 07 May 2026 14:58:56 GMT + - Mon, 11 May 2026 14:27:11 GMT Pragma: - no-cache Strict-Transport-Security: @@ -530,7 +530,7 @@ interactions: code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1778165936733905000","type":"akamai_object_storage","details":{"access_key_id":"1","access_key_secret":"1","bucket_name":"go-test-logs-destination-1778165930409875000","host":"go-test-logs-destination-1778165930409875000.gb-lon-1.linodeobjects.com"}}' + body: '{"label":"go-test-logs-monitoring-1778509631497742000","type":"akamai_object_storage","details":{"access_key_id":"1","access_key_secret":"1","bucket_name":"go-test-logs-monitoring-1778509625138729000","host":"go-test-logs-monitoring-1778509625138729000.gb-lon-1.linodeobjects.com"}}' form: {} headers: Accept: @@ -559,7 +559,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 07 May 2026 14:58:58 GMT + - Mon, 11 May 2026 14:27:12 GMT Pragma: - no-cache Strict-Transport-Security: @@ -585,7 +585,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/keys/3600063 + url: https://api.linode.com/v4beta/object-storage/keys/3666554 method: DELETE response: body: '{}' @@ -613,7 +613,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 07 May 2026 14:58:58 GMT + - Mon, 11 May 2026 14:27:13 GMT Pragma: - no-cache Strict-Transport-Security: @@ -646,7 +646,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778165930409875000/object-list + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778509625138729000/object-list method: GET response: body: '{"data": [], "next_marker": null, "is_truncated": false}' @@ -674,7 +674,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 07 May 2026 14:59:00 GMT + - Mon, 11 May 2026 14:27:14 GMT Pragma: - no-cache Strict-Transport-Security: @@ -708,7 +708,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778165930409875000 + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778509625138729000 method: DELETE response: body: '{}' @@ -736,7 +736,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 07 May 2026 14:59:05 GMT + - Mon, 11 May 2026 14:27:21 GMT Pragma: - no-cache Strict-Transport-Security: diff --git a/test/integration/fixtures/TestLogsDestination_Create_InvalidType.yaml b/test/integration/fixtures/TestLogsDestination_Create_InvalidType.yaml index a77e44132..e1622ee68 100644 --- a/test/integration/fixtures/TestLogsDestination_Create_InvalidType.yaml +++ b/test/integration/fixtures/TestLogsDestination_Create_InvalidType.yaml @@ -376,7 +376,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 07 May 2026 15:05:18 GMT + - Mon, 11 May 2026 14:27:21 GMT Pragma: - no-cache Strict-Transport-Security: @@ -402,7 +402,7 @@ interactions: code: 200 duration: "" - request: - body: '{"region":"gb-lon","label":"go-test-logs-destination-1778166318433976000","acl":"private","cors_enabled":false}' + body: '{"region":"gb-lon","label":"go-test-logs-monitoring-1778509641627901000","acl":"private","cors_enabled":false}' form: {} headers: Accept: @@ -414,8 +414,8 @@ interactions: url: https://api.linode.com/v4beta/object-storage/buckets method: POST response: - body: '{"hostname": "go-test-logs-destination-1778166318433976000.gb-lon-1.linodeobjects.com", - "label": "go-test-logs-destination-1778166318433976000", "created": "2018-01-02T03:04:05", + body: '{"hostname": "go-test-logs-monitoring-1778509641627901000.gb-lon-1.linodeobjects.com", + "label": "go-test-logs-monitoring-1778509641627901000", "created": "2018-01-02T03:04:05", "region": "gb-lon", "cluster": "", "size": 0, "objects": 0, "endpoint_type": "E3", "s3_endpoint": "gb-lon-1.linodeobjects.com"}' headers: @@ -436,13 +436,13 @@ interactions: Connection: - keep-alive Content-Length: - - "306" + - "304" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Thu, 07 May 2026 15:05:23 GMT + - Mon, 11 May 2026 14:27:26 GMT Pragma: - no-cache Strict-Transport-Security: @@ -466,7 +466,7 @@ interactions: code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1778166323074869000","regions":["gb-lon"]}' + body: '{"label":"go-test-logs-monitoring-1778509646051728000","regions":["gb-lon"]}' form: {} headers: Accept: @@ -478,7 +478,7 @@ interactions: url: https://api.linode.com/v4beta/object-storage/keys method: POST response: - body: '{"id": 3600145, "label": "go-test-logs-destination-1778166323074869000", + body: '{"id": 3666568, "label": "go-test-logs-monitoring-1778509646051728000", "access_key": "[SANITIZED]", "secret_key": "[SANITIZED]", "limited": false, "bucket_access": null, "regions": [{"id": "gb-lon", "s3_endpoint": "gb-lon-1.linodeobjects.com", "endpoint_type": "E3"}]}' @@ -500,13 +500,13 @@ interactions: Connection: - keep-alive Content-Length: - - "308" + - "307" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Thu, 07 May 2026 15:05:25 GMT + - Mon, 11 May 2026 14:27:28 GMT Pragma: - no-cache Strict-Transport-Security: @@ -530,7 +530,7 @@ interactions: code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1778166325228503000","type":"invalid_type","details":{"access_key_id":"HT1LGY5TIPNDMUU4BJMP","access_key_secret":"oF2CKhKc1sUouidZNIm1mvSH7hUgp4drpMJaA28S","bucket_name":"go-test-logs-destination-1778166318433976000","host":"go-test-logs-destination-1778166318433976000.gb-lon-1.linodeobjects.com"}}' + body: '{"label":"go-test-logs-monitoring-1778509647974304000","type":"invalid_type","details":{"access_key_id":"BZVO6LKI4QD3JI16SFKS","access_key_secret":"ST3NdXLpVSSCRGGe5RAbJKKVU4fkOwX6inVRW06s","bucket_name":"go-test-logs-monitoring-1778509641627901000","host":"go-test-logs-monitoring-1778509641627901000.gb-lon-1.linodeobjects.com"}}' form: {} headers: Accept: @@ -560,7 +560,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 07 May 2026 15:05:25 GMT + - Mon, 11 May 2026 14:27:28 GMT Pragma: - no-cache Strict-Transport-Security: @@ -586,7 +586,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/keys/3600145 + url: https://api.linode.com/v4beta/object-storage/keys/3666568 method: DELETE response: body: '{}' @@ -614,7 +614,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 07 May 2026 15:05:25 GMT + - Mon, 11 May 2026 14:27:28 GMT Pragma: - no-cache Strict-Transport-Security: @@ -647,7 +647,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778166318433976000/object-list + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778509641627901000/object-list method: GET response: body: '{"data": [], "next_marker": null, "is_truncated": false}' @@ -675,7 +675,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 07 May 2026 15:05:27 GMT + - Mon, 11 May 2026 14:27:30 GMT Pragma: - no-cache Strict-Transport-Security: @@ -709,7 +709,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778166318433976000 + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778509641627901000 method: DELETE response: body: '{}' @@ -737,7 +737,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 07 May 2026 15:05:33 GMT + - Mon, 11 May 2026 14:27:37 GMT Pragma: - no-cache Strict-Transport-Security: diff --git a/test/integration/fixtures/TestLogsDestination_Delete.yaml b/test/integration/fixtures/TestLogsDestination_Delete.yaml index 82c65a7e6..a524158cd 100644 --- a/test/integration/fixtures/TestLogsDestination_Delete.yaml +++ b/test/integration/fixtures/TestLogsDestination_Delete.yaml @@ -376,7 +376,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 07 May 2026 14:50:10 GMT + - Mon, 11 May 2026 14:25:45 GMT Pragma: - no-cache Strict-Transport-Security: @@ -402,7 +402,7 @@ interactions: code: 200 duration: "" - request: - body: '{"region":"gb-lon","label":"go-test-logs-destination-1778165410060838000","acl":"private","cors_enabled":false}' + body: '{"region":"gb-lon","label":"go-test-logs-monitoring-1778509545074390000","acl":"private","cors_enabled":false}' form: {} headers: Accept: @@ -414,8 +414,8 @@ interactions: url: https://api.linode.com/v4beta/object-storage/buckets method: POST response: - body: '{"hostname": "go-test-logs-destination-1778165410060838000.gb-lon-1.linodeobjects.com", - "label": "go-test-logs-destination-1778165410060838000", "created": "2018-01-02T03:04:05", + body: '{"hostname": "go-test-logs-monitoring-1778509545074390000.gb-lon-1.linodeobjects.com", + "label": "go-test-logs-monitoring-1778509545074390000", "created": "2018-01-02T03:04:05", "region": "gb-lon", "cluster": "", "size": 0, "objects": 0, "endpoint_type": "E3", "s3_endpoint": "gb-lon-1.linodeobjects.com"}' headers: @@ -436,13 +436,13 @@ interactions: Connection: - keep-alive Content-Length: - - "306" + - "304" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Thu, 07 May 2026 14:50:14 GMT + - Mon, 11 May 2026 14:25:50 GMT Pragma: - no-cache Strict-Transport-Security: @@ -466,7 +466,7 @@ interactions: code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1778165414593108000","regions":["gb-lon"]}' + body: '{"label":"go-test-logs-monitoring-1778509550539184000","regions":["gb-lon"]}' form: {} headers: Accept: @@ -478,7 +478,7 @@ interactions: url: https://api.linode.com/v4beta/object-storage/keys method: POST response: - body: '{"id": 3599966, "label": "go-test-logs-destination-1778165414593108000", + body: '{"id": 3666532, "label": "go-test-logs-monitoring-1778509550539184000", "access_key": "[SANITIZED]", "secret_key": "[SANITIZED]", "limited": false, "bucket_access": null, "regions": [{"id": "gb-lon", "s3_endpoint": "gb-lon-1.linodeobjects.com", "endpoint_type": "E3"}]}' @@ -500,13 +500,13 @@ interactions: Connection: - keep-alive Content-Length: - - "308" + - "307" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Thu, 07 May 2026 14:50:16 GMT + - Mon, 11 May 2026 14:25:53 GMT Pragma: - no-cache Strict-Transport-Security: @@ -530,7 +530,7 @@ interactions: code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1778165416471312000","type":"akamai_object_storage","details":{"access_key_id":"D7C7MCVPVXEL040TSXNU","access_key_secret":"7ZkdcwMAxnFkTX2jRtPo5MEL5vVLTJtcNNeY6TUs","bucket_name":"go-test-logs-destination-1778165410060838000","host":"go-test-logs-destination-1778165410060838000.gb-lon-1.linodeobjects.com"}}' + body: '{"label":"go-test-logs-monitoring-1778509553204727000","type":"akamai_object_storage","details":{"access_key_id":"8I1CNGBK5HMRA19RGGY6","access_key_secret":"zHkpzPuAJFyIQjZgRdJz39EW8NVRwiDPsBCMd3Uw","bucket_name":"go-test-logs-monitoring-1778509545074390000","host":"go-test-logs-monitoring-1778509545074390000.gb-lon-1.linodeobjects.com"}}' form: {} headers: Accept: @@ -542,10 +542,10 @@ interactions: url: https://api.linode.com/v4beta/monitor/streams/destinations method: POST response: - body: '{"id": 434, "label": "go-test-logs-destination-1778165416471312000", "type": - "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778165410060838000.gb-lon-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1778165410060838000", "access_key_id": - "D7C7MCVPVXEL040TSXNU"}, "version": 1, "status": "active", "created_by": "dola-klipensk", + body: '{"id": 475, "label": "go-test-logs-monitoring-1778509553204727000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-monitoring-1778509545074390000.gb-lon-1.linodeobjects.com", + "bucket_name": "go-test-logs-monitoring-1778509545074390000", "access_key_id": + "8I1CNGBK5HMRA19RGGY6"}, "version": 1, "status": "active", "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": "2018-01-02T03:04:05"}' headers: @@ -566,13 +566,13 @@ interactions: Connection: - keep-alive Content-Length: - - "465" + - "462" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Thu, 07 May 2026 14:50:17 GMT + - Mon, 11 May 2026 14:25:54 GMT Pragma: - no-cache Strict-Transport-Security: @@ -605,7 +605,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations/434 + url: https://api.linode.com/v4beta/monitor/streams/destinations/475 method: DELETE response: body: '{}' @@ -633,7 +633,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 07 May 2026 14:50:18 GMT + - Mon, 11 May 2026 14:25:54 GMT Pragma: - no-cache Strict-Transport-Security: @@ -666,7 +666,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations/434 + url: https://api.linode.com/v4beta/monitor/streams/destinations/475 method: GET response: body: '{"errors": [{"reason": "Destination not found"}]}' @@ -688,7 +688,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 07 May 2026 14:50:18 GMT + - Mon, 11 May 2026 14:25:55 GMT Pragma: - no-cache Strict-Transport-Security: @@ -716,7 +716,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations/434 + url: https://api.linode.com/v4beta/monitor/streams/destinations/475 method: GET response: body: '{"errors": [{"reason": "Destination not found"}]}' @@ -738,7 +738,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 07 May 2026 14:50:19 GMT + - Mon, 11 May 2026 14:25:55 GMT Pragma: - no-cache Strict-Transport-Security: @@ -766,7 +766,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/keys/3599966 + url: https://api.linode.com/v4beta/object-storage/keys/3666532 method: DELETE response: body: '{}' @@ -794,7 +794,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 07 May 2026 14:50:19 GMT + - Mon, 11 May 2026 14:25:56 GMT Pragma: - no-cache Strict-Transport-Security: @@ -827,11 +827,11 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778165410060838000/object-list + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778509545074390000/object-list method: GET response: - body: '{"data": [{"name": "cloud-logs-test-connection-20260507T145016", "size": - 9, "last_modified": "2018-01-02T03:04:05.413Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", + body: '{"data": [{"name": "cloud-logs-test-connection-20260511T142553", "size": + 9, "last_modified": "2018-01-02T03:04:05.143Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}], "next_marker": null, "is_truncated": false}' headers: @@ -858,7 +858,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 07 May 2026 14:50:21 GMT + - Mon, 11 May 2026 14:25:58 GMT Pragma: - no-cache Strict-Transport-Security: @@ -883,7 +883,7 @@ interactions: code: 200 duration: "" - request: - body: '{"name":"cloud-logs-test-connection-20260507T145016","method":"DELETE","expires_in":360}' + body: '{"name":"cloud-logs-test-connection-20260511T142553","method":"DELETE","expires_in":360}' form: {} headers: Accept: @@ -892,10 +892,10 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778165410060838000/object-url + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778509545074390000/object-url method: POST response: - body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-destination-1778165410060838000/cloud-logs-test-connection-20260507T145016?Signature=DeMUpAYgsWNBPR8%2BNN4DZv0nnFM%3D&Expires=1778165784&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCjcvTzk5Jp6ZtlobxaAT7yq566Z186XS8IgJKUg7jZZrdsNVZZXfVUM7KPxjPQmZk7vZxDGILy4CS%2BN/dztUQ5eJmETS61wlC40VfLh9YWoc89F2aeEwtA27zzHv6RcD3NAfdHjKrYEDryAZioV2839kAdvKZlzIzJAwc%2B8E6Nldux2nIXEu3XSuqj%2BIwmjoylN7CrudTxaWPdXVCI5LuxVjZMgVNfdLnD/kYl3m8Ezp21PLMj0fCQa7IXOIYEk4ZXWZ2VGWscncoWG6I3mE9pA1VSDoPn0tRJXTdnjqcT8sWtY5PwsrqDVp6un0jKq/F1pawKtAavLvl9%2BmMwPR/G5wo2D1EgKrpPZ5hHpzuNLVxHYo168Q6XqkiXQZWhye1NjUY65oTKrSe/yUCwy9t9H8R4gR4qdG9ona7vJXl2T9xDmxhL83Co0dws5dgDCU7WMmyY7znBrmLhYb18YIcM4IiBBz", + body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-monitoring-1778509545074390000/cloud-logs-test-connection-20260511T142553?Signature=iT5Iyuk7%2FbuVWTzxdyodilEMOoI%3D&Expires=1778509922&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCrgsVdHZ3%2BPgdhy6GTD6Ch5qeuIj4zXvMMnkQzJwsDKQ42tIYFQT5ma0RmMPkXnLWaH6u8J6Qz9h4Hoh1rmofSuYnqHpEJ3lFgqS3YUuGa/XqM6GXhAZbH9WD3GXDzSVG8i0cjh6LHaWsDR/xaMAfmqltSNExyqwiTfMxznNRFp7unABNCZ3X4k1z9FPFTcYRVRnH8wgLBI%2BfVxl81z6GlLPTqjwJe6TIlP4LpUO0xjKytFrPeY3rO1ZZdPcolkgeGL4H1ymhq5eG4XvvPKMKl1t0KglFrcB4U3%2BlbOwPgYtzjfBVXRrZh99VCTcTo7o6lvu7zjbDDN96VUxQGJlRL4P7saWYYQbypLHD4UKFtepKB2beTsGGq4Bidl0mQVTq4dDgP/ttc7KuppP8oV0ATvU7sT3RE%2BiXJmQdZG8WUZJBGIPQvHahcbSm19pf6s2L0x6Pmob2UIYV72tED%2BTPjFSivEY", "exists": true}' headers: Access-Control-Allow-Credentials: @@ -915,13 +915,13 @@ interactions: Connection: - keep-alive Content-Length: - - "845" + - "846" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Thu, 07 May 2026 14:50:24 GMT + - Mon, 11 May 2026 14:26:02 GMT Pragma: - no-cache Strict-Transport-Security: @@ -954,7 +954,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778165410060838000 + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778509545074390000 method: DELETE response: body: '{}' @@ -982,7 +982,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 07 May 2026 14:50:32 GMT + - Mon, 11 May 2026 14:26:09 GMT Pragma: - no-cache Strict-Transport-Security: diff --git a/test/integration/fixtures/TestLogsDestination_Get.yaml b/test/integration/fixtures/TestLogsDestination_Get.yaml index 20ea0d4cb..0c3f959d0 100644 --- a/test/integration/fixtures/TestLogsDestination_Get.yaml +++ b/test/integration/fixtures/TestLogsDestination_Get.yaml @@ -376,7 +376,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 07 May 2026 14:52:03 GMT + - Mon, 11 May 2026 14:26:10 GMT Pragma: - no-cache Strict-Transport-Security: @@ -402,7 +402,7 @@ interactions: code: 200 duration: "" - request: - body: '{"region":"gb-lon","label":"go-test-logs-destination-1778165523567137000","acl":"private","cors_enabled":false}' + body: '{"region":"gb-lon","label":"go-test-logs-monitoring-1778509570302696000","acl":"private","cors_enabled":false}' form: {} headers: Accept: @@ -414,8 +414,8 @@ interactions: url: https://api.linode.com/v4beta/object-storage/buckets method: POST response: - body: '{"hostname": "go-test-logs-destination-1778165523567137000.gb-lon-1.linodeobjects.com", - "label": "go-test-logs-destination-1778165523567137000", "created": "2018-01-02T03:04:05", + body: '{"hostname": "go-test-logs-monitoring-1778509570302696000.gb-lon-1.linodeobjects.com", + "label": "go-test-logs-monitoring-1778509570302696000", "created": "2018-01-02T03:04:05", "region": "gb-lon", "cluster": "", "size": 0, "objects": 0, "endpoint_type": "E3", "s3_endpoint": "gb-lon-1.linodeobjects.com"}' headers: @@ -436,13 +436,13 @@ interactions: Connection: - keep-alive Content-Length: - - "306" + - "304" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Thu, 07 May 2026 14:52:10 GMT + - Mon, 11 May 2026 14:26:15 GMT Pragma: - no-cache Strict-Transport-Security: @@ -466,7 +466,7 @@ interactions: code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1778165530011926000","regions":["gb-lon"]}' + body: '{"label":"go-test-logs-monitoring-1778509575596434000","regions":["gb-lon"]}' form: {} headers: Accept: @@ -478,7 +478,7 @@ interactions: url: https://api.linode.com/v4beta/object-storage/keys method: POST response: - body: '{"id": 3599998, "label": "go-test-logs-destination-1778165530011926000", + body: '{"id": 3666535, "label": "go-test-logs-monitoring-1778509575596434000", "access_key": "[SANITIZED]", "secret_key": "[SANITIZED]", "limited": false, "bucket_access": null, "regions": [{"id": "gb-lon", "s3_endpoint": "gb-lon-1.linodeobjects.com", "endpoint_type": "E3"}]}' @@ -500,13 +500,13 @@ interactions: Connection: - keep-alive Content-Length: - - "308" + - "307" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Thu, 07 May 2026 14:52:12 GMT + - Mon, 11 May 2026 14:26:17 GMT Pragma: - no-cache Strict-Transport-Security: @@ -530,7 +530,7 @@ interactions: code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1778165532069878000","type":"akamai_object_storage","details":{"access_key_id":"GFB0NXEJ19GPA11QXR3M","access_key_secret":"JxObVeSPydBuRbqIgywEROYn9yZ53G4tF0Ad1Guf","bucket_name":"go-test-logs-destination-1778165523567137000","host":"go-test-logs-destination-1778165523567137000.gb-lon-1.linodeobjects.com"}}' + body: '{"label":"go-test-logs-monitoring-1778509577644429000","type":"akamai_object_storage","details":{"access_key_id":"F8CLZI6601QRNZHDWMBX","access_key_secret":"V6xrAA6Q87S80aPC7LcuCzhZkHTd5HJ36HZkKJip","bucket_name":"go-test-logs-monitoring-1778509570302696000","host":"go-test-logs-monitoring-1778509570302696000.gb-lon-1.linodeobjects.com"}}' form: {} headers: Accept: @@ -542,10 +542,10 @@ interactions: url: https://api.linode.com/v4beta/monitor/streams/destinations method: POST response: - body: '{"id": 435, "label": "go-test-logs-destination-1778165532069878000", "type": - "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778165523567137000.gb-lon-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1778165523567137000", "access_key_id": - "GFB0NXEJ19GPA11QXR3M"}, "version": 1, "status": "active", "created_by": "dola-klipensk", + body: '{"id": 476, "label": "go-test-logs-monitoring-1778509577644429000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-monitoring-1778509570302696000.gb-lon-1.linodeobjects.com", + "bucket_name": "go-test-logs-monitoring-1778509570302696000", "access_key_id": + "F8CLZI6601QRNZHDWMBX"}, "version": 1, "status": "active", "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": "2018-01-02T03:04:05"}' headers: @@ -566,13 +566,13 @@ interactions: Connection: - keep-alive Content-Length: - - "465" + - "462" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Thu, 07 May 2026 14:52:13 GMT + - Mon, 11 May 2026 14:26:19 GMT Pragma: - no-cache Strict-Transport-Security: @@ -605,13 +605,13 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations/435 + url: https://api.linode.com/v4beta/monitor/streams/destinations/476 method: GET response: - body: '{"id": 435, "label": "go-test-logs-destination-1778165532069878000", "type": - "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778165523567137000.gb-lon-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1778165523567137000", "access_key_id": - "GFB0NXEJ19GPA11QXR3M"}, "version": 1, "status": "active", "created_by": "dola-klipensk", + body: '{"id": 476, "label": "go-test-logs-monitoring-1778509577644429000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-monitoring-1778509570302696000.gb-lon-1.linodeobjects.com", + "bucket_name": "go-test-logs-monitoring-1778509570302696000", "access_key_id": + "F8CLZI6601QRNZHDWMBX"}, "version": 1, "status": "active", "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": "2018-01-02T03:04:05"}' headers: @@ -632,13 +632,13 @@ interactions: Connection: - keep-alive Content-Length: - - "465" + - "462" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Thu, 07 May 2026 14:52:13 GMT + - Mon, 11 May 2026 14:26:19 GMT Pragma: - no-cache Strict-Transport-Security: @@ -672,13 +672,13 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations/435 + url: https://api.linode.com/v4beta/monitor/streams/destinations/476 method: GET response: - body: '{"id": 435, "label": "go-test-logs-destination-1778165532069878000", "type": - "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778165523567137000.gb-lon-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1778165523567137000", "access_key_id": - "GFB0NXEJ19GPA11QXR3M"}, "version": 1, "status": "active", "created_by": "dola-klipensk", + body: '{"id": 476, "label": "go-test-logs-monitoring-1778509577644429000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-monitoring-1778509570302696000.gb-lon-1.linodeobjects.com", + "bucket_name": "go-test-logs-monitoring-1778509570302696000", "access_key_id": + "F8CLZI6601QRNZHDWMBX"}, "version": 1, "status": "active", "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": "2018-01-02T03:04:05"}' headers: @@ -699,13 +699,13 @@ interactions: Connection: - keep-alive Content-Length: - - "465" + - "462" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Thu, 07 May 2026 14:52:14 GMT + - Mon, 11 May 2026 14:26:19 GMT Pragma: - no-cache Strict-Transport-Security: @@ -739,7 +739,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations/435 + url: https://api.linode.com/v4beta/monitor/streams/destinations/476 method: DELETE response: body: '{}' @@ -767,7 +767,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 07 May 2026 14:52:14 GMT + - Mon, 11 May 2026 14:26:20 GMT Pragma: - no-cache Strict-Transport-Security: @@ -800,7 +800,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/keys/3599998 + url: https://api.linode.com/v4beta/object-storage/keys/3666535 method: DELETE response: body: '{}' @@ -828,7 +828,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 07 May 2026 14:52:15 GMT + - Mon, 11 May 2026 14:26:20 GMT Pragma: - no-cache Strict-Transport-Security: @@ -861,11 +861,11 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778165523567137000/object-list + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778509570302696000/object-list method: GET response: - body: '{"data": [{"name": "cloud-logs-test-connection-20260507T145212", "size": - 9, "last_modified": "2018-01-02T03:04:05.991Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", + body: '{"data": [{"name": "cloud-logs-test-connection-20260511T142618", "size": + 9, "last_modified": "2018-01-02T03:04:05.733Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}], "next_marker": null, "is_truncated": false}' headers: @@ -892,7 +892,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 07 May 2026 14:52:17 GMT + - Mon, 11 May 2026 14:26:22 GMT Pragma: - no-cache Strict-Transport-Security: @@ -917,7 +917,7 @@ interactions: code: 200 duration: "" - request: - body: '{"name":"cloud-logs-test-connection-20260507T145212","method":"DELETE","expires_in":360}' + body: '{"name":"cloud-logs-test-connection-20260511T142618","method":"DELETE","expires_in":360}' form: {} headers: Accept: @@ -926,10 +926,10 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778165523567137000/object-url + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778509570302696000/object-url method: POST response: - body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-destination-1778165523567137000/cloud-logs-test-connection-20260507T145212?Signature=wMAGfT8jxT9u53b9%2BNCUHz%2B47bE%3D&Expires=1778165900&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCoqGGY0cgYO2m77%2B3VnYJSNhawQAORDukqV/YAgn9lm%2BBF3fy8xoHCKAH4ScUhnKliXSX6fyQ6u1DoeYUi%2BVu8EPAw0jArRwYfSoPvM3m/d6oarE01o1ZWvWSZCGG3%2BJE0Ik9te9klSdb/AUEgvojJB7pxucDlDyrLNUQX%2BT2orJcqPRa4wmf%2BegW4mSu6OXCB8d0ZLA0Sz6kDl2%2B4uMZSWIsCdihqj0cRIGQVjmctY1T0so3VIZx6ZYF61BChtL0SLtVVWojJyiBDw9%2BW6EHzc5umaYTOiO2aMwcYU0TfX2lzVVD4wvj7TpNuW6SEoG8bBRzOUnFlU9SUwasg7uN6lhs6BlPwn2Q9ts4C8nymyBbXkCzFnwYoNr4Blp9rRennBpRO0dQZsZYnE98n1wj5ZMv9uBSzszAA6SDQUI7qKxs%2B3/TLdOYoT/0jXN7zT4SLQSoNHzAjjFkOKgYOfdfSwBQjOb", + body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-monitoring-1778509570302696000/cloud-logs-test-connection-20260511T142618?Signature=eW0fluVyo4iiJ2ZBHLESgNgmkKw%3D&Expires=1778509946&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCiojPgMtNW3UAnG94MhblItvKlOhc5GGlU/%2BiOb5jEBMCy7rQKl%2BWNI20JhZcxS5F22ScJ9kRJqQ%2BrTHOo2/inp/YN9Q/G3g4rQ1z2D3DitxUYb2uW6bSCyJrS32%2BvuG1oTv4a8Wqpnqj6Y8DZzdXLL43N3zhqH0rCjFFgQTet0o3LuoSh3vsnRCJb7K6wvXPkYeimF4ar/grPWDZA90wnivJwRcsgCFiblJmCkXcNid/hVuFc2y5BREIcJVgFEgz8eMsUIMPdkFa%2BOlzHGd7dHk8PLWhyhkos46yiRG5Kwo7BHCnMsp1rzTbLOAr7A0vRt3Jfj/Ioc7IpiIBGnt96gwio52sj1O94w7njQFwBtkTgLN69PweHzaYGyM/%2BDzlFdPDFRzGJkjPeWDanterQCyu%2BqlThMejeB4MzD2PBcnQwgYjIqOfjJctPgPnWIUanJwSjfeeKBTk3a0ZVU7h832exer", "exists": true}' headers: Access-Control-Allow-Credentials: @@ -949,13 +949,13 @@ interactions: Connection: - keep-alive Content-Length: - - "857" + - "848" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Thu, 07 May 2026 14:52:20 GMT + - Mon, 11 May 2026 14:26:26 GMT Pragma: - no-cache Strict-Transport-Security: @@ -988,7 +988,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778165523567137000 + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778509570302696000 method: DELETE response: body: '{}' @@ -1016,7 +1016,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 07 May 2026 14:52:27 GMT + - Mon, 11 May 2026 14:26:33 GMT Pragma: - no-cache Strict-Transport-Security: diff --git a/test/integration/fixtures/TestLogsDestination_List.yaml b/test/integration/fixtures/TestLogsDestination_List.yaml index 21265d265..b537cc332 100644 --- a/test/integration/fixtures/TestLogsDestination_List.yaml +++ b/test/integration/fixtures/TestLogsDestination_List.yaml @@ -376,7 +376,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 07 May 2026 14:47:55 GMT + - Mon, 11 May 2026 14:25:21 GMT Pragma: - no-cache Strict-Transport-Security: @@ -402,7 +402,7 @@ interactions: code: 200 duration: "" - request: - body: '{"region":"gb-lon","label":"go-test-logs-destination-1778165275087560000","acl":"private","cors_enabled":false}' + body: '{"region":"gb-lon","label":"go-test-logs-monitoring-1778509521223173000","acl":"private","cors_enabled":false}' form: {} headers: Accept: @@ -414,8 +414,8 @@ interactions: url: https://api.linode.com/v4beta/object-storage/buckets method: POST response: - body: '{"hostname": "go-test-logs-destination-1778165275087560000.gb-lon-1.linodeobjects.com", - "label": "go-test-logs-destination-1778165275087560000", "created": "2018-01-02T03:04:05", + body: '{"hostname": "go-test-logs-monitoring-1778509521223173000.gb-lon-1.linodeobjects.com", + "label": "go-test-logs-monitoring-1778509521223173000", "created": "2018-01-02T03:04:05", "region": "gb-lon", "cluster": "", "size": 0, "objects": 0, "endpoint_type": "E3", "s3_endpoint": "gb-lon-1.linodeobjects.com"}' headers: @@ -436,13 +436,13 @@ interactions: Connection: - keep-alive Content-Length: - - "306" + - "304" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Thu, 07 May 2026 14:47:59 GMT + - Mon, 11 May 2026 14:25:27 GMT Pragma: - no-cache Strict-Transport-Security: @@ -466,7 +466,7 @@ interactions: code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1778165279480181000","regions":["gb-lon"]}' + body: '{"label":"go-test-logs-monitoring-1778509526910864000","regions":["gb-lon"]}' form: {} headers: Accept: @@ -478,7 +478,7 @@ interactions: url: https://api.linode.com/v4beta/object-storage/keys method: POST response: - body: '{"id": 3599930, "label": "go-test-logs-destination-1778165279480181000", + body: '{"id": 3666526, "label": "go-test-logs-monitoring-1778509526910864000", "access_key": "[SANITIZED]", "secret_key": "[SANITIZED]", "limited": false, "bucket_access": null, "regions": [{"id": "gb-lon", "s3_endpoint": "gb-lon-1.linodeobjects.com", "endpoint_type": "E3"}]}' @@ -500,13 +500,13 @@ interactions: Connection: - keep-alive Content-Length: - - "308" + - "307" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Thu, 07 May 2026 14:48:01 GMT + - Mon, 11 May 2026 14:25:28 GMT Pragma: - no-cache Strict-Transport-Security: @@ -530,7 +530,7 @@ interactions: code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1778165281684696000","type":"akamai_object_storage","details":{"access_key_id":"OUEG24KPCLXIOAQXZM1R","access_key_secret":"oJsVxKlk2RPb53Ud6FMQekCpZigiN17wMaVYRSKn","bucket_name":"go-test-logs-destination-1778165275087560000","host":"go-test-logs-destination-1778165275087560000.gb-lon-1.linodeobjects.com"}}' + body: '{"label":"go-test-logs-monitoring-1778509528489377000","type":"akamai_object_storage","details":{"access_key_id":"MA8OF2UBBNBX5V1CMO7L","access_key_secret":"XUCFnYBPK2DjEezeVXtJtNjBxSJk3mqO3FOSU21Q","bucket_name":"go-test-logs-monitoring-1778509521223173000","host":"go-test-logs-monitoring-1778509521223173000.gb-lon-1.linodeobjects.com"}}' form: {} headers: Accept: @@ -542,10 +542,10 @@ interactions: url: https://api.linode.com/v4beta/monitor/streams/destinations method: POST response: - body: '{"id": 433, "label": "go-test-logs-destination-1778165281684696000", "type": - "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778165275087560000.gb-lon-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1778165275087560000", "access_key_id": - "OUEG24KPCLXIOAQXZM1R"}, "version": 1, "status": "active", "created_by": "dola-klipensk", + body: '{"id": 474, "label": "go-test-logs-monitoring-1778509528489377000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-monitoring-1778509521223173000.gb-lon-1.linodeobjects.com", + "bucket_name": "go-test-logs-monitoring-1778509521223173000", "access_key_id": + "MA8OF2UBBNBX5V1CMO7L"}, "version": 1, "status": "active", "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": "2018-01-02T03:04:05"}' headers: @@ -566,13 +566,13 @@ interactions: Connection: - keep-alive Content-Length: - - "465" + - "462" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Thu, 07 May 2026 14:48:02 GMT + - Mon, 11 May 2026 14:25:29 GMT Pragma: - no-cache Strict-Transport-Security: @@ -608,15 +608,15 @@ interactions: url: https://api.linode.com/v4beta/monitor/streams/destinations?page=1 method: GET response: - body: '{"pages": 1, "page": 1, "results": 2, "data": [{"id": 296, "label": "go-test-logs-destination-1777279324004188000", - "type": "akamai_object_storage", "details": {"host": "go-test-logs-destination-1777279319044234000.us-southeast-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1777279319044234000", "access_key_id": - "G2A636FQXPSM1282P2JF"}, "version": 1, "status": "active", "created_by": "dola-klipensk", - "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": - "2018-01-02T03:04:05"}, {"id": 433, "label": "go-test-logs-destination-1778165281684696000", - "type": "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778165275087560000.gb-lon-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1778165275087560000", "access_key_id": - "OUEG24KPCLXIOAQXZM1R"}, "version": 1, "status": "active", "created_by": "dola-klipensk", + body: '{"pages": 1, "page": 1, "results": 2, "data": [{"id": 445, "label": "test-logs-destination-755957659", + "type": "akamai_object_storage", "details": {"host": "us-mia-1.linodeobjects.com", + "bucket_name": "test-logs-bucket-755957659", "path": "test-path", "access_key_id": + "7S59WIH9P07VVGJO5Q7E"}, "version": 1, "status": "active", "created_by": "dola-pskupien", + "created": "2018-01-02T03:04:05", "updated_by": "dola-pskupien", "updated": + "2018-01-02T03:04:05"}, {"id": 474, "label": "go-test-logs-monitoring-1778509528489377000", + "type": "akamai_object_storage", "details": {"host": "go-test-logs-monitoring-1778509521223173000.gb-lon-1.linodeobjects.com", + "bucket_name": "go-test-logs-monitoring-1778509521223173000", "access_key_id": + "MA8OF2UBBNBX5V1CMO7L"}, "version": 1, "status": "active", "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": "2018-01-02T03:04:05"}]}' headers: @@ -641,7 +641,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 07 May 2026 14:48:03 GMT + - Mon, 11 May 2026 14:25:30 GMT Pragma: - no-cache Strict-Transport-Security: @@ -676,13 +676,13 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations/433 + url: https://api.linode.com/v4beta/monitor/streams/destinations/474 method: GET response: - body: '{"id": 433, "label": "go-test-logs-destination-1778165281684696000", "type": - "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778165275087560000.gb-lon-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1778165275087560000", "access_key_id": - "OUEG24KPCLXIOAQXZM1R"}, "version": 1, "status": "active", "created_by": "dola-klipensk", + body: '{"id": 474, "label": "go-test-logs-monitoring-1778509528489377000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-monitoring-1778509521223173000.gb-lon-1.linodeobjects.com", + "bucket_name": "go-test-logs-monitoring-1778509521223173000", "access_key_id": + "MA8OF2UBBNBX5V1CMO7L"}, "version": 1, "status": "active", "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": "2018-01-02T03:04:05"}' headers: @@ -703,13 +703,13 @@ interactions: Connection: - keep-alive Content-Length: - - "465" + - "462" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Thu, 07 May 2026 14:48:03 GMT + - Mon, 11 May 2026 14:25:30 GMT Pragma: - no-cache Strict-Transport-Security: @@ -743,7 +743,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations/433 + url: https://api.linode.com/v4beta/monitor/streams/destinations/474 method: DELETE response: body: '{}' @@ -771,7 +771,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 07 May 2026 14:48:04 GMT + - Mon, 11 May 2026 14:25:30 GMT Pragma: - no-cache Strict-Transport-Security: @@ -804,7 +804,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/keys/3599930 + url: https://api.linode.com/v4beta/object-storage/keys/3666526 method: DELETE response: body: '{}' @@ -832,7 +832,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 07 May 2026 14:48:04 GMT + - Mon, 11 May 2026 14:25:31 GMT Pragma: - no-cache Strict-Transport-Security: @@ -865,11 +865,11 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778165275087560000/object-list + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778509521223173000/object-list method: GET response: - body: '{"data": [{"name": "cloud-logs-test-connection-20260507T144802", "size": - 9, "last_modified": "2018-01-02T03:04:05.626Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", + body: '{"data": [{"name": "cloud-logs-test-connection-20260511T142528", "size": + 9, "last_modified": "2018-01-02T03:04:05.455Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}], "next_marker": null, "is_truncated": false}' headers: @@ -896,7 +896,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 07 May 2026 14:48:06 GMT + - Mon, 11 May 2026 14:25:34 GMT Pragma: - no-cache Strict-Transport-Security: @@ -921,7 +921,7 @@ interactions: code: 200 duration: "" - request: - body: '{"name":"cloud-logs-test-connection-20260507T144802","method":"DELETE","expires_in":360}' + body: '{"name":"cloud-logs-test-connection-20260511T142528","method":"DELETE","expires_in":360}' form: {} headers: Accept: @@ -930,10 +930,10 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778165275087560000/object-url + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778509521223173000/object-url method: POST response: - body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-destination-1778165275087560000/cloud-logs-test-connection-20260507T144802?Signature=yiWYIugoUTxIMmtXAZ1CtBDI1SE%3D&Expires=1778165649&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCjDD%2BLLyJASj0cZQJJoRy7Vi7W/wO4rFUvvPwy4riMn4QKC6xEs7jfJNRZq2/mtdvN%2BhvvqTbvo%2BWlgsNEOiDIe5cbRiA6M4A6o5/ScHnpedmR94er0H%2BJ3PvUsGi8Umzmbz3P6kz2NjHDHRx9PdJtDOTBQBgqyydDtaR3PkvkqUa0rUCTbBwM5RJdhO4iIGGD5TVXwYgjQnmuXaCMVvoPva7w8csGr4Fe7LbFhZg62I9dUWKb1r6W3Q9qwjVgD5TkebdAundFPZw9f4U5YQwz94z4TusiCOHoB9tYCVqvEmUIjcrjqEC5LbGcU4JzO5L5J3rX9rYtvX0ucQMB462liC6aOXKyn7dKQnbbNp1pRdnoMm3F/AE8swnZ1WXyyzFIWxlZuodHYY6tEk6jZaqZKTTmlD7GJ/N0Oahp9z6c8tvJkkHIl0kyxMiP%2B1uAGjXlTHNp92HSuNKOovN5ZOEVOvrSr1", + body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-monitoring-1778509521223173000/cloud-logs-test-connection-20260511T142528?Signature=NRGqXSEsSt6cAgMh32JZUp5jKxQ%3D&Expires=1778509898&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCosAD32CSNHHcdufrYP%2BeVxAi2Fc4FjJP7TwXpntNEA/6CIpmb3jIaJl4NjHhUDPkjHOUbwvVPjOtB96yI7PXCzupueDkTaSDoRhBmCORXnJL9RMogTgQ2EhDnJN042CFeqnW8BCNzyt6SisThbSQV0SAL6cDr8e8Th7j%2BxxE%2Blq4BsQEkx36n3uESB6RMz8RS1Iw8Fn9Xo3yDD1aB8p9W%2BPYBsKFIheM1MFbC5Bu08el9EFtTab6SvLoJBJAPqZXTZXI7/od0Vpa2ikkmAebiGG/Me8ix9S44ugwekzWQozguwYCRRWYpfOb6SUXrnNMk8rewTdhxgxjzzNcdN60LG%2BPzMlrfhOkTyqDlG%2Bfr5d5Jf24jWGGlfboiQbTn3R6fWbcQMxeAVPA9mc%2By3OnbTASeLD9jx6iC75mXp3OZUuZqg%2BIBXuoifo09YgjgeDaaxwm0bkUaYyEcLmW8kVwc4B7XsZ", "exists": true}' headers: Access-Control-Allow-Credentials: @@ -953,13 +953,13 @@ interactions: Connection: - keep-alive Content-Length: - - "845" + - "850" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Thu, 07 May 2026 14:48:09 GMT + - Mon, 11 May 2026 14:25:38 GMT Pragma: - no-cache Strict-Transport-Security: @@ -992,7 +992,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778165275087560000 + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778509521223173000 method: DELETE response: body: '{}' @@ -1020,7 +1020,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 07 May 2026 14:48:16 GMT + - Mon, 11 May 2026 14:25:44 GMT Pragma: - no-cache Strict-Transport-Security: diff --git a/test/integration/fixtures/TestLogsDestination_UpdateAndHistory.yaml b/test/integration/fixtures/TestLogsDestination_UpdateAndHistory.yaml index 3c1a38b6e..b7245d42f 100644 --- a/test/integration/fixtures/TestLogsDestination_UpdateAndHistory.yaml +++ b/test/integration/fixtures/TestLogsDestination_UpdateAndHistory.yaml @@ -376,7 +376,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 07 May 2026 14:54:11 GMT + - Mon, 11 May 2026 14:26:33 GMT Pragma: - no-cache Strict-Transport-Security: @@ -402,7 +402,7 @@ interactions: code: 200 duration: "" - request: - body: '{"region":"gb-lon","label":"go-test-logs-destination-1778165651886500000","acl":"private","cors_enabled":false}' + body: '{"region":"gb-lon","label":"go-test-logs-monitoring-1778509593540443000","acl":"private","cors_enabled":false}' form: {} headers: Accept: @@ -414,8 +414,8 @@ interactions: url: https://api.linode.com/v4beta/object-storage/buckets method: POST response: - body: '{"hostname": "go-test-logs-destination-1778165651886500000.gb-lon-1.linodeobjects.com", - "label": "go-test-logs-destination-1778165651886500000", "created": "2018-01-02T03:04:05", + body: '{"hostname": "go-test-logs-monitoring-1778509593540443000.gb-lon-1.linodeobjects.com", + "label": "go-test-logs-monitoring-1778509593540443000", "created": "2018-01-02T03:04:05", "region": "gb-lon", "cluster": "", "size": 0, "objects": 0, "endpoint_type": "E3", "s3_endpoint": "gb-lon-1.linodeobjects.com"}' headers: @@ -436,13 +436,13 @@ interactions: Connection: - keep-alive Content-Length: - - "306" + - "304" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Thu, 07 May 2026 14:54:17 GMT + - Mon, 11 May 2026 14:26:38 GMT Pragma: - no-cache Strict-Transport-Security: @@ -466,7 +466,7 @@ interactions: code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1778165657248030000","regions":["gb-lon"]}' + body: '{"label":"go-test-logs-monitoring-1778509598023806000","regions":["gb-lon"]}' form: {} headers: Accept: @@ -478,7 +478,7 @@ interactions: url: https://api.linode.com/v4beta/object-storage/keys method: POST response: - body: '{"id": 3600029, "label": "go-test-logs-destination-1778165657248030000", + body: '{"id": 3666544, "label": "go-test-logs-monitoring-1778509598023806000", "access_key": "[SANITIZED]", "secret_key": "[SANITIZED]", "limited": false, "bucket_access": null, "regions": [{"id": "gb-lon", "s3_endpoint": "gb-lon-1.linodeobjects.com", "endpoint_type": "E3"}]}' @@ -500,13 +500,13 @@ interactions: Connection: - keep-alive Content-Length: - - "308" + - "307" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Thu, 07 May 2026 14:54:18 GMT + - Mon, 11 May 2026 14:26:39 GMT Pragma: - no-cache Strict-Transport-Security: @@ -530,7 +530,7 @@ interactions: code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1778165658899049000","type":"akamai_object_storage","details":{"access_key_id":"NKZW2J4H3CKKXQDFTCL4","access_key_secret":"YhUiDCnyHBiGRNDfuyiWTZWdFFkfc0tLbS1iKMCc","bucket_name":"go-test-logs-destination-1778165651886500000","host":"go-test-logs-destination-1778165651886500000.gb-lon-1.linodeobjects.com"}}' + body: '{"label":"go-test-logs-monitoring-1778509599839570000","type":"akamai_object_storage","details":{"access_key_id":"OGRE82X2MKNINKEJSVXT","access_key_secret":"4OV8SnVLZRJcdpqyRrpgpbZAGUWQVWKfJN9xELOw","bucket_name":"go-test-logs-monitoring-1778509593540443000","host":"go-test-logs-monitoring-1778509593540443000.gb-lon-1.linodeobjects.com"}}' form: {} headers: Accept: @@ -542,10 +542,10 @@ interactions: url: https://api.linode.com/v4beta/monitor/streams/destinations method: POST response: - body: '{"id": 436, "label": "go-test-logs-destination-1778165658899049000", "type": - "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778165651886500000.gb-lon-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1778165651886500000", "access_key_id": - "NKZW2J4H3CKKXQDFTCL4"}, "version": 1, "status": "active", "created_by": "dola-klipensk", + body: '{"id": 477, "label": "go-test-logs-monitoring-1778509599839570000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-monitoring-1778509593540443000.gb-lon-1.linodeobjects.com", + "bucket_name": "go-test-logs-monitoring-1778509593540443000", "access_key_id": + "OGRE82X2MKNINKEJSVXT"}, "version": 1, "status": "active", "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": "2018-01-02T03:04:05"}' headers: @@ -566,13 +566,13 @@ interactions: Connection: - keep-alive Content-Length: - - "465" + - "462" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Thu, 07 May 2026 14:54:20 GMT + - Mon, 11 May 2026 14:26:41 GMT Pragma: - no-cache Strict-Transport-Security: @@ -596,7 +596,7 @@ interactions: code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1778165658899049000-upd","details":{"access_key_id":"NKZW2J4H3CKKXQDFTCL4","access_key_secret":"YhUiDCnyHBiGRNDfuyiWTZWdFFkfc0tLbS1iKMCc","bucket_name":"go-test-logs-destination-1778165651886500000","host":"go-test-logs-destination-1778165651886500000.gb-lon-1.linodeobjects.com","path":"updated/logs/path/"}}' + body: '{"label":"go-test-logs-monitoring-1778509599839570000-upd","details":{"access_key_id":"OGRE82X2MKNINKEJSVXT","access_key_secret":"4OV8SnVLZRJcdpqyRrpgpbZAGUWQVWKfJN9xELOw","bucket_name":"go-test-logs-monitoring-1778509593540443000","host":"go-test-logs-monitoring-1778509593540443000.gb-lon-1.linodeobjects.com","path":"updated/logs/path/"}}' form: {} headers: Accept: @@ -605,13 +605,13 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations/436 + url: https://api.linode.com/v4beta/monitor/streams/destinations/477 method: PUT response: - body: '{"id": 436, "label": "go-test-logs-destination-1778165658899049000-upd", - "type": "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778165651886500000.gb-lon-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1778165651886500000", "path": "updated/logs/path/", - "access_key_id": "NKZW2J4H3CKKXQDFTCL4"}, "version": 2, "status": "active", + body: '{"id": 477, "label": "go-test-logs-monitoring-1778509599839570000-upd", + "type": "akamai_object_storage", "details": {"host": "go-test-logs-monitoring-1778509593540443000.gb-lon-1.linodeobjects.com", + "bucket_name": "go-test-logs-monitoring-1778509593540443000", "path": "updated/logs/path/", + "access_key_id": "OGRE82X2MKNINKEJSVXT"}, "version": 2, "status": "active", "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": "2018-01-02T03:04:05"}' headers: @@ -632,13 +632,13 @@ interactions: Connection: - keep-alive Content-Length: - - "499" + - "496" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Thu, 07 May 2026 14:54:21 GMT + - Mon, 11 May 2026 14:26:42 GMT Pragma: - no-cache Strict-Transport-Security: @@ -671,18 +671,18 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations/436/history?page=1 + url: https://api.linode.com/v4beta/monitor/streams/destinations/477/history?page=1 method: GET response: - body: '{"pages": 1, "page": 1, "results": 2, "data": [{"id": 436, "label": "go-test-logs-destination-1778165658899049000-upd", - "type": "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778165651886500000.gb-lon-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1778165651886500000", "path": "updated/logs/path/", - "access_key_id": "NKZW2J4H3CKKXQDFTCL4"}, "version": 2, "status": "active", + body: '{"pages": 1, "page": 1, "results": 2, "data": [{"id": 477, "label": "go-test-logs-monitoring-1778509599839570000-upd", + "type": "akamai_object_storage", "details": {"host": "go-test-logs-monitoring-1778509593540443000.gb-lon-1.linodeobjects.com", + "bucket_name": "go-test-logs-monitoring-1778509593540443000", "path": "updated/logs/path/", + "access_key_id": "OGRE82X2MKNINKEJSVXT"}, "version": 2, "status": "active", "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05", "updated_by": - "dola-klipensk", "updated": "2018-01-02T03:04:05"}, {"id": 436, "label": "go-test-logs-destination-1778165658899049000", - "type": "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778165651886500000.gb-lon-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1778165651886500000", "access_key_id": - "NKZW2J4H3CKKXQDFTCL4"}, "version": 1, "status": "inactive", "created_by": "dola-klipensk", + "dola-klipensk", "updated": "2018-01-02T03:04:05"}, {"id": 477, "label": "go-test-logs-monitoring-1778509599839570000", + "type": "akamai_object_storage", "details": {"host": "go-test-logs-monitoring-1778509593540443000.gb-lon-1.linodeobjects.com", + "bucket_name": "go-test-logs-monitoring-1778509593540443000", "access_key_id": + "OGRE82X2MKNINKEJSVXT"}, "version": 1, "status": "inactive", "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": "2018-01-02T03:04:05"}]}' headers: @@ -707,7 +707,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 07 May 2026 14:54:22 GMT + - Mon, 11 May 2026 14:26:42 GMT Pragma: - no-cache Strict-Transport-Security: @@ -742,13 +742,13 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations/436 + url: https://api.linode.com/v4beta/monitor/streams/destinations/477 method: GET response: - body: '{"id": 436, "label": "go-test-logs-destination-1778165658899049000-upd", - "type": "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778165651886500000.gb-lon-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1778165651886500000", "path": "updated/logs/path/", - "access_key_id": "NKZW2J4H3CKKXQDFTCL4"}, "version": 2, "status": "active", + body: '{"id": 477, "label": "go-test-logs-monitoring-1778509599839570000-upd", + "type": "akamai_object_storage", "details": {"host": "go-test-logs-monitoring-1778509593540443000.gb-lon-1.linodeobjects.com", + "bucket_name": "go-test-logs-monitoring-1778509593540443000", "path": "updated/logs/path/", + "access_key_id": "OGRE82X2MKNINKEJSVXT"}, "version": 2, "status": "active", "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": "2018-01-02T03:04:05"}' headers: @@ -769,13 +769,13 @@ interactions: Connection: - keep-alive Content-Length: - - "499" + - "496" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Thu, 07 May 2026 14:54:22 GMT + - Mon, 11 May 2026 14:26:43 GMT Pragma: - no-cache Strict-Transport-Security: @@ -809,7 +809,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations/436 + url: https://api.linode.com/v4beta/monitor/streams/destinations/477 method: DELETE response: body: '{}' @@ -837,7 +837,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 07 May 2026 14:54:22 GMT + - Mon, 11 May 2026 14:26:43 GMT Pragma: - no-cache Strict-Transport-Security: @@ -870,7 +870,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/keys/3600029 + url: https://api.linode.com/v4beta/object-storage/keys/3666544 method: DELETE response: body: '{}' @@ -898,7 +898,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 07 May 2026 14:54:23 GMT + - Mon, 11 May 2026 14:26:44 GMT Pragma: - no-cache Strict-Transport-Security: @@ -931,15 +931,15 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778165651886500000/object-list + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778509593540443000/object-list method: GET response: - body: '{"data": [{"name": "cloud-logs-test-connection-20260507T145419", "size": - 9, "last_modified": "2018-01-02T03:04:05.780Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", + body: '{"data": [{"name": "cloud-logs-test-connection-20260511T142640", "size": + 9, "last_modified": "2018-01-02T03:04:05.760Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "updated/logs/path/", - "size": 0, "last_modified": "2018-01-02T03:04:05.123Z", "etag": "d41d8cd98f00b204e9800998ecf8427e", - "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "updated/logs/path/cloud-logs-test-connection-20260507T145421", - "size": 9, "last_modified": "2018-01-02T03:04:05.306Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", + "size": 0, "last_modified": "2018-01-02T03:04:05.073Z", "etag": "d41d8cd98f00b204e9800998ecf8427e", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "updated/logs/path/cloud-logs-test-connection-20260511T142642", + "size": 9, "last_modified": "2018-01-02T03:04:05.261Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}], "next_marker": null, "is_truncated": false}' headers: @@ -966,7 +966,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 07 May 2026 14:54:25 GMT + - Mon, 11 May 2026 14:26:46 GMT Pragma: - no-cache Strict-Transport-Security: @@ -991,7 +991,7 @@ interactions: code: 200 duration: "" - request: - body: '{"name":"cloud-logs-test-connection-20260507T145419","method":"DELETE","expires_in":360}' + body: '{"name":"cloud-logs-test-connection-20260511T142640","method":"DELETE","expires_in":360}' form: {} headers: Accept: @@ -1000,10 +1000,10 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778165651886500000/object-url + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778509593540443000/object-url method: POST response: - body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-destination-1778165651886500000/cloud-logs-test-connection-20260507T145419?Signature=FysLtt8gUpVK3EqkfCGm95xrUlc%3D&Expires=1778166028&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCgKpgwUVKod9RCq/XXQy/1N1PZE139tMoBcUZMuiC%2BTwuvFP1CoSCLaB2adMuAm2lTx1DNN8CoeqL9H1gMzFinJBl9U9rzItevZlLLDg5X2b%2Bn5uIgcbIxlBf70X24WUAdMTSqWpDRsUwkR42eEwcND4BkgtG3iok6zH67hc17ZHkMmOoD0MZV3t97BGw42/wHa09RSasZnGS6jhcnkQxTgqFdvfBjumw2/QIaPsc4CfCAxMFZuFg0164jtR8EW2UrvaG7qUeRYX2uIvoOWVmipHjAGcY3SeM9KUStULfH03N2DknS36GjprKPD1hfwaJ5X4Ro2TkvevKEQW5vWjLxPV1/0gZNlyx9p1FFpQBNXbhFiSDV%2BaH1ZSg%2Bc5gjX2I/s5WfXDJ1F2yXdepqZ7fS18dOAgO/Vr%2Bx8XcDanBrnmLtf9%2BVL1htwJCLD%2BtoI7fKI4S6O/WdQ9LOjIjv5c%2BoYmddgb", + body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-monitoring-1778509593540443000/cloud-logs-test-connection-20260511T142640?Signature=BqjMbd6DOLRT0LaQ54nPV89q40k%3D&Expires=1778509970&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCnV93tl%2BlllJAlEokngMgjdWAdpeeh4/6Rx8U2XV0D3hWk8KJvhI9Jc6UzxGcErQNN3XkTmSRBGRDUgOA5%2BNppOekJD0xEEh0SV0htz1pL/qOxXHlecPjDQh4A4k/HnVIQ9knJwmNY0QugJeebHMUZeNVnqfAJwmYG4F9zl0CmNkJeAHOcS9i3zTqbJbjG1rzBBx2DfeWNbxeVx0sB7j0kMprBPVUxVdRWJfYTXsxloV9AMKQ9oOr7iIgu96mqY5sn80uPtP6iYQ/Caig7oDcdLu8NYyqHWX3ZVukNDvx7Lql1/kS0bzaPeIrf8HNLyo4S6nKtZRTjAp991oR/RNhcG4iPPuubb8r/My23vttZEtuspzXXc7yhGEqSKVwqW/V%2BCvZxuFoBu%2BH9Add66N%2BNYcy5LHn9i%2B/LuLbceZkJFVo9uI%2BNLAytAS6UBXJ%2B%2BKtHaPJpQgRTBupw5IsuDjLm1CDsW0", "exists": true}' headers: Access-Control-Allow-Credentials: @@ -1023,13 +1023,13 @@ interactions: Connection: - keep-alive Content-Length: - - "851" + - "852" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Thu, 07 May 2026 14:54:28 GMT + - Mon, 11 May 2026 14:26:50 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1062,10 +1062,10 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778165651886500000/object-url + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778509593540443000/object-url method: POST response: - body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-destination-1778165651886500000/updated/logs/path/?Signature=37G7bWZYMEkDrj6D0jbzgB6E1es%3D&Expires=1778166032&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCrQj1lxNA8eTzVbulGnLAeZmVJTFfBku7WPayNEqCYUoFGcazR1DMk7hB9VP2trgHEXldos7UZk4XM65A6nu1t8QdfljhtU4nXdISEH2BhXm/iCeQODFV7glVRulG7cd6QSPg73ITU2HhD2TEYq1OTx7Ws7WmZGWVyUROaou3nSfi%2B8pPIP6tLpOULFSCmmeCD2oWQhO70QV5Mo3iow1oT9w/nkrFNHCiAeO4ya%2BxqkbRNu2W2SNlXi1%2Brh4EZNtbddpa/LJwPuA5j7CHp9kX44JHkV8V4b9Dgy6U1hTee8La/RlAV%2BNlxpYrQVmOm7fVwNgBuDgtYBRCx1QMbkRztU58O%2BiYLD4LOdYgdwULwLfDeHvIORB/qCNvCi4ofMbX%2BxiDwDmgJ9nLkCgQ%2BH29Okm8p96DSmlCGi%2BUSQtD03Wh3K77OrziDXytrqQ7v7bpqFBZ21tOx%2B4fko1L6K/S4KhIjvj", + body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-monitoring-1778509593540443000/updated/logs/path/?Signature=wxuUSGkrijDFg5A4yOTTAqv9ONs%3D&Expires=1778509974&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCv55jr1ru2zbZVwrvR8lkkSFaFgD1xu5fM2%2BdzeNrwlY61AscnJxauOkEqSMHSlryBVhMHKUDgbmx1s2AzBHvgesAyE0eyHWQuGuvM6AmyS1ta8rZCfWZtRjrh/UXQ1AFp3T3WL8aT1IEpIRv8yxxQrNah0R9nKQOowxtnNqjYlinzao00AOcq2TiyzhdYlsNAsHsnmzIo0OWKNcjK6%2B9PhPubPbNpNMMAXWOCzG6R7JDRDW4sm8kNDr7Gv7%2Bbe6GK2UE58NXAYm84uH3fM7nQ7qoeYuksfm9ndstQTQQO2FKDHCOnwmxY4keeQGhm3CyOXF43ijhWknedTAVvrQpk6Xl596OW4hIrpVydMLwAPHACeLKqErrVU1WmfoA5Wh43FfsgVhtkTpxdESZa3n5oCQEhn4Hpie2qF5evdCanoP7QlknXTFXX7GjQT9ZL01/MFEP2IlNPwyIEAs3CQWb18Svgi2", "exists": true}' headers: Access-Control-Allow-Credentials: @@ -1085,13 +1085,13 @@ interactions: Connection: - keep-alive Content-Length: - - "829" + - "816" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Thu, 07 May 2026 14:54:32 GMT + - Mon, 11 May 2026 14:26:54 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1115,7 +1115,7 @@ interactions: code: 200 duration: "" - request: - body: '{"name":"updated/logs/path/cloud-logs-test-connection-20260507T145421","method":"DELETE","expires_in":360}' + body: '{"name":"updated/logs/path/cloud-logs-test-connection-20260511T142642","method":"DELETE","expires_in":360}' form: {} headers: Accept: @@ -1124,10 +1124,10 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778165651886500000/object-url + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778509593540443000/object-url method: POST response: - body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-destination-1778165651886500000/updated/logs/path/cloud-logs-test-connection-20260507T145421?Signature=w1U2XLajcKbzHpxmKOh2aM8NZds%3D&Expires=1778166035&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCsUpd9RW6vK4yPe%2BHbn%2BYs0xD1VXfSkiq/I7dtIeSv9OScwTNrBM8xWz0KPE%2BI%2Bq7D8206cbXx6eKlvF1JW4hmRmCK0f6a8UEkqHACJnPWZnh6aJUpOIw4Anu2%2BOWFqqRxdVh18tZ4CofWuWfzJlzTewqoSdhO99fk4GeC0rEjpF7OiKo9C0idki1K%2BdrmMuf5QyiblVqTWva4fJ7Fe39u3GZWJWRlhKPGCgNSO/aHkoWliQmaGdcMQ80YSmiG/cdA27VMrvejlGirUJZ6XpFB/m1frVcQMmkAuc8prK7EuElC0iccFJJdoWJj%2B5VSFRPzex9D1jQvs/offGfKxhQlyJTqadgg4gv6XbCtFEe58eALddx9%2BObajxYmojT3JTZTXAx4D6ZIWlwVpjrik2/8DKyi3YrUvFzApY85BSfdsW0gEJXrPs1lTKzamQa%2BMOmTmZM6F2HzXHbKBqXlsoPFVHlvDo", + body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-monitoring-1778509593540443000/updated/logs/path/cloud-logs-test-connection-20260511T142642?Signature=vNmHzGrEhuZj%2BR%2B19cCAJ%2Bgb5Bo%3D&Expires=1778509978&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCh3QGJzwZhZDoslnwJ%2BTfJQ0MACUQwYJ3es7EDScRF46MWnZhysajSbBxNBNq5FTY4Yz3Xvbh/klK%2BIGLkPaKv2o6yodkPKGoLvKoU%2B24soyPwy1Fbeoa42gRklbPU7Yrv0boHk9r1IXcu7itlhMhPZMrFDdkDWWfYc3faMwi1XS6yu%2BHsg3THzSGu1AhLvSpE6R0qtzUyDvVRjKhMO3l5e/s2KtQPHGSBGSJwZAeOOXxcETufWMYsf2hwg1Q41lSY9tYcSZdkvwO8DcbySH6WiDn/B8DY8u9xe4/TEne%2BvfH4Yczdle6R/pkeXzJ8kGp8TO2yjGUPNItAAPqE2qsDPO8nYUx8rNVGmV5iFpY%2BbUXXl9luC5ZfYA6YiO2k8nrfy87BGLmJuxbZXYIDoiLWePYq030XPc7n6uf%2BBDfGBH0wsjJLaymTWFMIIBFdBZFbUffWaebWy8Ry%2Bp65ltUXjObb3g", "exists": true}' headers: Access-Control-Allow-Credentials: @@ -1151,7 +1151,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 07 May 2026 14:54:35 GMT + - Mon, 11 May 2026 14:26:58 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1185,7 +1185,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778165651886500000 + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778509593540443000 method: DELETE response: body: '{}' @@ -1213,7 +1213,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 07 May 2026 14:54:41 GMT + - Mon, 11 May 2026 14:27:04 GMT Pragma: - no-cache Strict-Transport-Security: diff --git a/test/integration/monitor_logs_test.go b/test/integration/monitor_logs_test.go index 2cb040f87..d91c79df3 100644 --- a/test/integration/monitor_logs_test.go +++ b/test/integration/monitor_logs_test.go @@ -150,7 +150,7 @@ func setupLogsDestination(t *testing.T, fixturesYaml string) (*linodego.Client, } func testLabel() string { - return "go-test-logs-destination-" + getUniqueText() + return "go-test-logs-monitoring-" + getUniqueText() } // setupLogStream creates a test client, Object Storage resources, a LogsDestination, @@ -159,6 +159,7 @@ func setupLogStream(t *testing.T, fixturesYaml string) (*linodego.Client, *linod t.Helper() client, dest, _, destTeardown := setupLogsDestination(t, fixturesYaml) + requireNoExistingStreams(t, client) stream, err := client.CreateLogStream(context.Background(), linodego.StreamCreateOptions{ Label: fmt.Sprintf("go-test-log-stream-%d", time.Now().UnixNano()), @@ -445,6 +446,7 @@ func TestLogStream_Create_InvalidDestination(t *testing.T) { apiErr, ok := err.(*linodego.Error) require.True(t, ok, "expected *linodego.Error") assert.Equal(t, 400, apiErr.Code) + assert.Contains(t, apiErr.Message, "[destination] Destination not found") } func TestLogStream_Create_EmptyDestinations(t *testing.T) { @@ -464,6 +466,7 @@ func TestLogStream_Create_EmptyDestinations(t *testing.T) { apiErr, ok := err.(*linodego.Error) require.True(t, ok, "expected *linodego.Error") assert.Equal(t, 400, apiErr.Code) + assert.Contains(t, apiErr.Message, "[destinations] Must contain one item") } func TestLogStream_Create_TwoDestinations(t *testing.T) { @@ -514,6 +517,7 @@ func TestLogStream_Create_TwoDestinations(t *testing.T) { apiErr, ok := err.(*linodego.Error) require.True(t, ok, "expected *linodego.Error") assert.Equal(t, 400, apiErr.Code) + assert.Contains(t, apiErr.Message, "[destinations] Must contain one item") } func TestLogStream_Delete(t *testing.T) { @@ -529,7 +533,11 @@ func TestLogStream_Delete(t *testing.T) { require.NoError(t, err) _, err = client.GetLogStream(context.Background(), provisioned.ID) - assert.Error(t, err, "expected error fetching deleted stream") + require.Error(t, err) + + apiErr, ok := err.(*linodego.Error) + require.True(t, ok, "expected *linodego.Error") + assert.Equal(t, 404, apiErr.Code) } func TestLogStream_List(t *testing.T) { @@ -598,11 +606,14 @@ func TestLogStream_Update_LabelAndStatus(t *testing.T) { expectedStatuses = []linodego.StreamStatus{linodego.StreamStatusInactive, linodego.StreamStatusDeactivating} } - updated, err := client.UpdateLogStream(context.Background(), provisioned.ID, linodego.StreamUpdateOptions{ + _, err = client.UpdateLogStream(context.Background(), provisioned.ID, linodego.StreamUpdateOptions{ Label: &newLabel, Status: &newStatus, }) require.NoError(t, err) + + updated, err := client.GetLogStream(context.Background(), provisioned.ID) + require.NoError(t, err) assert.Equal(t, newLabel, updated.Label) assert.Contains(t, expectedStatuses, updated.Status) From 82b9398a46379f9a04266a1fb0c5edeecd067496 Mon Sep 17 00:00:00 2001 From: Kajetan Date: Tue, 12 May 2026 13:14:55 +0200 Subject: [PATCH 14/21] [DPS-42654] [ACLP SDK][Go] ACLP Logs SDK Pull request - added github event input run_aclp_logs_stream_tests --- .github/workflows/ci.yml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 27b269810..03091cb7d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -3,6 +3,14 @@ name: Continuous Integration on: workflow_dispatch: inputs: + run_aclp_logs_stream_tests: + description: 'Set this parameter to "true" to run ACLP logs stream related test cases' + required: false + default: 'false' + type: choice + options: + - 'true' + - 'false' test_report_upload: description: 'Indicates whether to upload the test report to object storage. Defaults to "false"' type: choice @@ -105,6 +113,7 @@ jobs: make test | go-junit-report -set-exit-code -iocopy -out $REPORT_FILENAME env: SKIP_LINT: 1 + RUN_ACLP_LOGS_STREAM_TESTS: ${{ github.event.inputs.run_aclp_logs_stream_tests }} - name: Upload test results to bucket if: always() && github.repository == 'linode/linodego' && github.ref == 'refs/heads/main' && (github.event_name == 'push' || github.event_name == 'pull_request' || (github.event_name == 'workflow_dispatch' && inputs.test_report_upload == 'true')) From 7e529c3f3c5d9d321f58fd8e365b23891834ef23 Mon Sep 17 00:00:00 2001 From: Kajetan Date: Tue, 12 May 2026 13:26:02 +0200 Subject: [PATCH 15/21] [DPS-42654] [ACLP SDK][Go] ACLP Logs SDK Pull request - added github event input run_aclp_logs_stream_tests to integration tests pr yaml --- .github/workflows/integration_tests_pr.yml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/.github/workflows/integration_tests_pr.yml b/.github/workflows/integration_tests_pr.yml index f08c67e99..a7f37c083 100644 --- a/.github/workflows/integration_tests_pr.yml +++ b/.github/workflows/integration_tests_pr.yml @@ -2,6 +2,14 @@ on: pull_request: workflow_dispatch: inputs: + run_aclp_logs_stream_tests: + description: 'Set this parameter to "true" to run ACLP logs stream related test cases' + required: false + default: 'false' + type: choice + options: + - 'true' + - 'false' sha: description: 'The hash value of the commit.' required: true @@ -40,11 +48,13 @@ jobs: if: ${{ inputs.module != '' && steps.disallowed-char-check.outputs.match == '' }} env: LINODE_TOKEN: ${{ secrets.DX_LINODE_TOKEN }} + RUN_ACLP_LOGS_STREAM_TESTS: ${{ github.event.inputs.run_aclp_logs_stream_tests }} - run: make fixtures if: ${{ inputs.module == '' }} env: LINODE_TOKEN: ${{ secrets.DX_LINODE_TOKEN }} + RUN_ACLP_LOGS_STREAM_TESTS: ${{ github.event.inputs.run_aclp_logs_stream_tests }} - name: Get the hash value of the latest commit from the PR branch uses: octokit/graphql-action@v2.x From 5e877ef7419116780b7cfbb0ca9ccb5cc9764c9f Mon Sep 17 00:00:00 2001 From: Kajetan Date: Thu, 14 May 2026 11:32:38 +0200 Subject: [PATCH 16/21] [DPS-42654] [ACLP SDK][Go] ACLP Logs SDK Pull request - fixed issues from PR comments, regenerated sanitized fixtures --- ...estLogStream_Create_EmptyDestinations.yaml | 6 +- ...stLogStream_Create_InvalidDestination.yaml | 6 +- .../TestLogStream_Create_TwoDestinations.yaml | 118 +- .../fixtures/TestLogStream_Delete.yaml | 323 ++-- .../fixtures/TestLogStream_Get.yaml | 478 ++++-- .../fixtures/TestLogStream_List.yaml | 1433 +++++++++++++++-- .../TestLogStream_Update_Destinations.yaml | 794 ++++++--- .../TestLogStream_Update_LabelAndStatus.yaml | 600 +++++-- ...tLogsDestination_Create_InvalidSecret.yaml | 32 +- ...estLogsDestination_Create_InvalidType.yaml | 32 +- .../fixtures/TestLogsDestination_Delete.yaml | 64 +- .../fixtures/TestLogsDestination_Get.yaml | 82 +- .../fixtures/TestLogsDestination_List.yaml | 82 +- .../TestLogsDestination_UpdateAndHistory.yaml | 136 +- test/integration/integration_suite_test.go | 17 + test/integration/monitor_logs_test.go | 3 + 16 files changed, 3120 insertions(+), 1086 deletions(-) diff --git a/test/integration/fixtures/TestLogStream_Create_EmptyDestinations.yaml b/test/integration/fixtures/TestLogStream_Create_EmptyDestinations.yaml index 5ed2516e9..78ddf91e7 100644 --- a/test/integration/fixtures/TestLogStream_Create_EmptyDestinations.yaml +++ b/test/integration/fixtures/TestLogStream_Create_EmptyDestinations.yaml @@ -39,7 +39,7 @@ interactions: Content-Type: - application/json Expires: - - Mon, 11 May 2026 14:38:34 GMT + - Wed, 13 May 2026 11:14:29 GMT Pragma: - no-cache Strict-Transport-Security: @@ -64,7 +64,7 @@ interactions: code: 200 duration: "" - request: - body: '{"destinations":[],"label":"go-test-empty-dest-1778510314821955000","type":"audit_logs"}' + body: '{"destinations":[],"label":"go-test-empty-dest-1778670869600276000","type":"audit_logs"}' form: {} headers: Accept: @@ -93,7 +93,7 @@ interactions: Content-Type: - application/json Expires: - - Mon, 11 May 2026 14:38:35 GMT + - Wed, 13 May 2026 11:14:29 GMT Pragma: - no-cache Strict-Transport-Security: diff --git a/test/integration/fixtures/TestLogStream_Create_InvalidDestination.yaml b/test/integration/fixtures/TestLogStream_Create_InvalidDestination.yaml index fcc1135d5..2799b310b 100644 --- a/test/integration/fixtures/TestLogStream_Create_InvalidDestination.yaml +++ b/test/integration/fixtures/TestLogStream_Create_InvalidDestination.yaml @@ -39,7 +39,7 @@ interactions: Content-Type: - application/json Expires: - - Mon, 11 May 2026 14:37:10 GMT + - Wed, 13 May 2026 11:13:28 GMT Pragma: - no-cache Strict-Transport-Security: @@ -64,7 +64,7 @@ interactions: code: 200 duration: "" - request: - body: '{"destinations":[999999999],"label":"go-test-invalid-dest-1778510230561280000","type":"audit_logs"}' + body: '{"destinations":[999999999],"label":"go-test-invalid-dest-1778670808717128000","type":"audit_logs"}' form: {} headers: Accept: @@ -93,7 +93,7 @@ interactions: Content-Type: - application/json Expires: - - Mon, 11 May 2026 14:37:11 GMT + - Wed, 13 May 2026 11:13:29 GMT Pragma: - no-cache Strict-Transport-Security: diff --git a/test/integration/fixtures/TestLogStream_Create_TwoDestinations.yaml b/test/integration/fixtures/TestLogStream_Create_TwoDestinations.yaml index 1caed4a08..59a611e18 100644 --- a/test/integration/fixtures/TestLogStream_Create_TwoDestinations.yaml +++ b/test/integration/fixtures/TestLogStream_Create_TwoDestinations.yaml @@ -39,7 +39,7 @@ interactions: Content-Type: - application/json Expires: - - Mon, 11 May 2026 14:39:43 GMT + - Wed, 13 May 2026 11:15:33 GMT Pragma: - no-cache Strict-Transport-Security: @@ -438,7 +438,7 @@ interactions: Content-Type: - application/json Expires: - - Mon, 11 May 2026 14:39:44 GMT + - Wed, 13 May 2026 11:15:33 GMT Pragma: - no-cache Strict-Transport-Security: @@ -464,7 +464,7 @@ interactions: code: 200 duration: "" - request: - body: '{"region":"gb-lon","label":"go-test-logs-monitoring-1778510384270147000","acl":"private","cors_enabled":false}' + body: '{"region":"gb-lon","label":"go-test-logs-monitoring-1778670933771432000","acl":"private","cors_enabled":false}' form: {} headers: Accept: @@ -476,8 +476,8 @@ interactions: url: https://api.linode.com/v4beta/object-storage/buckets method: POST response: - body: '{"hostname": "go-test-logs-monitoring-1778510384270147000.gb-lon-1.linodeobjects.com", - "label": "go-test-logs-monitoring-1778510384270147000", "created": "2018-01-02T03:04:05", + body: '{"hostname": "go-test-logs-monitoring-1778670933771432000.gb-lon-1.linodeobjects.com", + "label": "go-test-logs-monitoring-1778670933771432000", "created": "2018-01-02T03:04:05", "region": "gb-lon", "cluster": "", "size": 0, "objects": 0, "endpoint_type": "E3", "s3_endpoint": "gb-lon-1.linodeobjects.com"}' headers: @@ -504,7 +504,7 @@ interactions: Content-Type: - application/json Expires: - - Mon, 11 May 2026 14:39:50 GMT + - Wed, 13 May 2026 11:15:39 GMT Pragma: - no-cache Strict-Transport-Security: @@ -528,7 +528,7 @@ interactions: code: 200 duration: "" - request: - body: '{"label":"go-test-logs-monitoring-1778510390289759000","regions":["gb-lon"]}' + body: '{"label":"go-test-logs-monitoring-1778670939512274000","regions":["gb-lon"]}' form: {} headers: Accept: @@ -540,7 +540,7 @@ interactions: url: https://api.linode.com/v4beta/object-storage/keys method: POST response: - body: '{"id": 3666686, "label": "go-test-logs-monitoring-1778510390289759000", + body: '{"id": 3687705, "label": "go-test-logs-monitoring-1778670939512274000", "access_key": "[SANITIZED]", "secret_key": "[SANITIZED]", "limited": false, "bucket_access": null, "regions": [{"id": "gb-lon", "s3_endpoint": "gb-lon-1.linodeobjects.com", "endpoint_type": "E3"}]}' @@ -568,7 +568,7 @@ interactions: Content-Type: - application/json Expires: - - Mon, 11 May 2026 14:39:51 GMT + - Wed, 13 May 2026 11:15:41 GMT Pragma: - no-cache Strict-Transport-Security: @@ -592,7 +592,7 @@ interactions: code: 200 duration: "" - request: - body: '{"region":"gb-lon","label":"go-test-logs-monitoring-1778510391926838000","acl":"private","cors_enabled":false}' + body: '{"region":"gb-lon","label":"go-test-logs-monitoring-1778670941396790000","acl":"private","cors_enabled":false}' form: {} headers: Accept: @@ -604,8 +604,8 @@ interactions: url: https://api.linode.com/v4beta/object-storage/buckets method: POST response: - body: '{"hostname": "go-test-logs-monitoring-1778510391926838000.gb-lon-1.linodeobjects.com", - "label": "go-test-logs-monitoring-1778510391926838000", "created": "2018-01-02T03:04:05", + body: '{"hostname": "go-test-logs-monitoring-1778670941396790000.gb-lon-1.linodeobjects.com", + "label": "go-test-logs-monitoring-1778670941396790000", "created": "2018-01-02T03:04:05", "region": "gb-lon", "cluster": "", "size": 0, "objects": 0, "endpoint_type": "E3", "s3_endpoint": "gb-lon-1.linodeobjects.com"}' headers: @@ -632,7 +632,7 @@ interactions: Content-Type: - application/json Expires: - - Mon, 11 May 2026 14:39:57 GMT + - Wed, 13 May 2026 11:15:46 GMT Pragma: - no-cache Strict-Transport-Security: @@ -656,7 +656,7 @@ interactions: code: 200 duration: "" - request: - body: '{"label":"go-test-logs-monitoring-1778510397373938000","regions":["gb-lon"]}' + body: '{"label":"go-test-logs-monitoring-1778670946262647000","regions":["gb-lon"]}' form: {} headers: Accept: @@ -668,7 +668,7 @@ interactions: url: https://api.linode.com/v4beta/object-storage/keys method: POST response: - body: '{"id": 3666689, "label": "go-test-logs-monitoring-1778510397373938000", + body: '{"id": 3687707, "label": "go-test-logs-monitoring-1778670946262647000", "access_key": "[SANITIZED]", "secret_key": "[SANITIZED]", "limited": false, "bucket_access": null, "regions": [{"id": "gb-lon", "s3_endpoint": "gb-lon-1.linodeobjects.com", "endpoint_type": "E3"}]}' @@ -696,7 +696,7 @@ interactions: Content-Type: - application/json Expires: - - Mon, 11 May 2026 14:40:02 GMT + - Wed, 13 May 2026 11:15:48 GMT Pragma: - no-cache Strict-Transport-Security: @@ -720,7 +720,7 @@ interactions: code: 200 duration: "" - request: - body: '{"label":"go-test-logs-monitoring-1778510402289583000","type":"akamai_object_storage","details":{"access_key_id":"QT1DIM287MYC3KDL74OH","access_key_secret":"ei3sE7kdRaja6z9qS0UMRD4J5fdyFBvoqU9Fxoat","bucket_name":"go-test-logs-monitoring-1778510384270147000","host":"go-test-logs-monitoring-1778510384270147000.gb-lon-1.linodeobjects.com"}}' + body: '{"label":"go-test-logs-monitoring-1778670948795870000","type":"akamai_object_storage","details":{"access_key_id":"[SANITIZED]","access_key_secret":"[SANITIZED]","bucket_name":"go-test-logs-monitoring-1778670933771432000","host":"go-test-logs-monitoring-1778670933771432000.gb-lon-1.linodeobjects.com"}}' form: {} headers: Accept: @@ -732,10 +732,10 @@ interactions: url: https://api.linode.com/v4beta/monitor/streams/destinations method: POST response: - body: '{"id": 478, "label": "go-test-logs-monitoring-1778510402289583000", "type": - "akamai_object_storage", "details": {"host": "go-test-logs-monitoring-1778510384270147000.gb-lon-1.linodeobjects.com", - "bucket_name": "go-test-logs-monitoring-1778510384270147000", "access_key_id": - "QT1DIM287MYC3KDL74OH"}, "version": 1, "status": "active", "created_by": "dola-klipensk", + body: '{"id": 500, "label": "go-test-logs-monitoring-1778670948795870000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-monitoring-1778670933771432000.gb-lon-1.linodeobjects.com", + "bucket_name": "go-test-logs-monitoring-1778670933771432000", "access_key_id": + "[SANITIZED]"}, "version": 1, "status": "active", "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": "2018-01-02T03:04:05"}' headers: @@ -762,7 +762,7 @@ interactions: Content-Type: - application/json Expires: - - Mon, 11 May 2026 14:40:03 GMT + - Wed, 13 May 2026 11:15:49 GMT Pragma: - no-cache Strict-Transport-Security: @@ -786,7 +786,7 @@ interactions: code: 200 duration: "" - request: - body: '{"label":"go-test-logs-monitoring-1778510403620675000","type":"akamai_object_storage","details":{"access_key_id":"V9YDWIL6S23TCDTUMZWV","access_key_secret":"nZWF0REwxgtzaWtYEg7FdJvy7oJ6rJXMY777HOho","bucket_name":"go-test-logs-monitoring-1778510391926838000","host":"go-test-logs-monitoring-1778510391926838000.gb-lon-1.linodeobjects.com"}}' + body: '{"label":"go-test-logs-monitoring-1778670950007439000","type":"akamai_object_storage","details":{"access_key_id":"[SANITIZED]","access_key_secret":"[SANITIZED]","bucket_name":"go-test-logs-monitoring-1778670941396790000","host":"go-test-logs-monitoring-1778670941396790000.gb-lon-1.linodeobjects.com"}}' form: {} headers: Accept: @@ -798,10 +798,10 @@ interactions: url: https://api.linode.com/v4beta/monitor/streams/destinations method: POST response: - body: '{"id": 479, "label": "go-test-logs-monitoring-1778510403620675000", "type": - "akamai_object_storage", "details": {"host": "go-test-logs-monitoring-1778510391926838000.gb-lon-1.linodeobjects.com", - "bucket_name": "go-test-logs-monitoring-1778510391926838000", "access_key_id": - "V9YDWIL6S23TCDTUMZWV"}, "version": 1, "status": "active", "created_by": "dola-klipensk", + body: '{"id": 501, "label": "go-test-logs-monitoring-1778670950007439000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-monitoring-1778670941396790000.gb-lon-1.linodeobjects.com", + "bucket_name": "go-test-logs-monitoring-1778670941396790000", "access_key_id": + "[SANITIZED]"}, "version": 1, "status": "active", "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": "2018-01-02T03:04:05"}' headers: @@ -828,7 +828,7 @@ interactions: Content-Type: - application/json Expires: - - Mon, 11 May 2026 14:40:04 GMT + - Wed, 13 May 2026 11:15:51 GMT Pragma: - no-cache Strict-Transport-Security: @@ -852,7 +852,7 @@ interactions: code: 200 duration: "" - request: - body: '{"destinations":[478,479],"label":"go-test-two-dest-1778510404854343000","type":"audit_logs"}' + body: '{"destinations":[500,501],"label":"go-test-two-dest-1778670951252933000","type":"audit_logs"}' form: {} headers: Accept: @@ -881,7 +881,7 @@ interactions: Content-Type: - application/json Expires: - - Mon, 11 May 2026 14:40:05 GMT + - Wed, 13 May 2026 11:15:51 GMT Pragma: - no-cache Strict-Transport-Security: @@ -907,7 +907,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations/479 + url: https://api.linode.com/v4beta/monitor/streams/destinations/501 method: DELETE response: body: '{}' @@ -935,7 +935,7 @@ interactions: Content-Type: - application/json Expires: - - Mon, 11 May 2026 14:40:05 GMT + - Wed, 13 May 2026 11:15:51 GMT Pragma: - no-cache Strict-Transport-Security: @@ -968,7 +968,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations/478 + url: https://api.linode.com/v4beta/monitor/streams/destinations/500 method: DELETE response: body: '{}' @@ -996,7 +996,7 @@ interactions: Content-Type: - application/json Expires: - - Mon, 11 May 2026 14:40:06 GMT + - Wed, 13 May 2026 11:15:52 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1029,7 +1029,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/keys/3666689 + url: https://api.linode.com/v4beta/object-storage/keys/3687707 method: DELETE response: body: '{}' @@ -1057,7 +1057,7 @@ interactions: Content-Type: - application/json Expires: - - Mon, 11 May 2026 14:40:06 GMT + - Wed, 13 May 2026 11:15:53 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1090,11 +1090,11 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778510391926838000/object-list + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778670941396790000/object-list method: GET response: - body: '{"data": [{"name": "cloud-logs-test-connection-20260511T144003", "size": - 9, "last_modified": "2018-01-02T03:04:05.545Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", + body: '{"data": [{"name": "cloud-logs-test-connection-20260513T111550", "size": + 9, "last_modified": "2018-01-02T03:04:05.828Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}], "next_marker": null, "is_truncated": false}' headers: @@ -1121,7 +1121,7 @@ interactions: Content-Type: - application/json Expires: - - Mon, 11 May 2026 14:40:08 GMT + - Wed, 13 May 2026 11:15:55 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1146,7 +1146,7 @@ interactions: code: 200 duration: "" - request: - body: '{"name":"cloud-logs-test-connection-20260511T144003","method":"DELETE","expires_in":360}' + body: '{"name":"cloud-logs-test-connection-20260513T111550","method":"DELETE","expires_in":360}' form: {} headers: Accept: @@ -1155,10 +1155,10 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778510391926838000/object-url + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778670941396790000/object-url method: POST response: - body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-monitoring-1778510391926838000/cloud-logs-test-connection-20260511T144003?Signature=QCdqtofgD7WetmfKTy%2FDfdt1Id8%3D&Expires=1778510773&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCoVyYaT37VvySUGZ%2BK4dTxbZIqxgaNOklAPpEVEUw8KnzSLKYcTS0/PUwAv3sxdhDcYeoNczQ%2Bv7/QLTzDMYpsPCR3y4yTsNCP5hUND9VMuo9jLBBbWlV3nDJsZFV6cyaZ8rSg7CyG4Ef%2Bp4qWxirgD%2B8O%2BzV2ddT80HMQ6Mkzt03qzPqdFzM6oyhHi0jk4lvaa7j1FJoo2gR6mvIp9uWvuJAo2B/ziwP0Oc5qE7Nr2%2BC2iLv6KcTADXU8cUKrumf1isDPadl0siAo%2Ba4pkQ9cqARoUE44KNUJ%2BN1uJedXvCuj3n9Ocwh6kjhwYCDNkYR8nIpcYaLk8qBeM6HE0HdpiiIDZFgKMuWSzKBcF8%2B122AnkF2rxUj3BiJ2YMlwK5j%2BKCmlnm5Zyl2Loj/x8Xh6BeFyj38faltpdTh2Q/QteyjdHy9CivreV8xtOlNzvyjPBvs65e4L5s/M1jYAXa9gope5m4", + body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-monitoring-1778670941396790000/cloud-logs-test-connection-20260513T111550?Signature=HYQjA0aBVmleg2nfSLpHArNN6qU%3D&Expires=1778671319&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCnzKxAcxE9e4dd0ahnP9p1bkmCdNdUpQfwJdbxYp2ebgCWA51k0YiYSzMWB1jMhxUmM4Z2o%2BdNg3CROZTxXRmwxWas0XsaGe6vdFneclsHz2hHkcyHlgETPMNBUSkHBS4KVb7N6uBtBMV%2ByZq6iJOlmJ%2BTmrQ1dFHkxcOEIlbc/gUM1ArwyjVuPHPj8yAAvGHjzYPj1%2BL1cUhrPUam9C4KZyQE4Gc6qqJ24EstQkMp8Tg1lIkl4jLCUfMS8fmtAIvXzxQglQFAcCRH66SWFuT%2B0nsm9k%2BiTJfRj82xj3yW1/ZNrYtj1HEhd3JKAxp0AZQqILMy1/8DC4SctqZsLACT/FsGUk9LMBf%2BRJy7BnbktkEfaC%2BrOvAcO5SsX76y16tRnWIC7j6plBGQig3AS/RTEyVpRvzVpnYzB8KKSd2Yyh/pbI3Ny0tZe/lnCk8g2wnpFGu7YJKQOOw%2BL3o0fGzD8%2BrIWw", "exists": true}' headers: Access-Control-Allow-Credentials: @@ -1178,13 +1178,13 @@ interactions: Connection: - keep-alive Content-Length: - - "856" + - "854" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Mon, 11 May 2026 14:40:13 GMT + - Wed, 13 May 2026 11:15:59 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1217,7 +1217,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778510391926838000 + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778670941396790000 method: DELETE response: body: '{}' @@ -1245,7 +1245,7 @@ interactions: Content-Type: - application/json Expires: - - Mon, 11 May 2026 14:40:19 GMT + - Wed, 13 May 2026 11:16:06 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1278,7 +1278,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/keys/3666686 + url: https://api.linode.com/v4beta/object-storage/keys/3687705 method: DELETE response: body: '{}' @@ -1306,7 +1306,7 @@ interactions: Content-Type: - application/json Expires: - - Mon, 11 May 2026 14:40:20 GMT + - Wed, 13 May 2026 11:16:06 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1339,11 +1339,11 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778510384270147000/object-list + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778670933771432000/object-list method: GET response: - body: '{"data": [{"name": "cloud-logs-test-connection-20260511T144002", "size": - 9, "last_modified": "2018-01-02T03:04:05.241Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", + body: '{"data": [{"name": "cloud-logs-test-connection-20260513T111549", "size": + 9, "last_modified": "2018-01-02T03:04:05.647Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}], "next_marker": null, "is_truncated": false}' headers: @@ -1370,7 +1370,7 @@ interactions: Content-Type: - application/json Expires: - - Mon, 11 May 2026 14:40:22 GMT + - Wed, 13 May 2026 11:16:09 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1395,7 +1395,7 @@ interactions: code: 200 duration: "" - request: - body: '{"name":"cloud-logs-test-connection-20260511T144002","method":"DELETE","expires_in":360}' + body: '{"name":"cloud-logs-test-connection-20260513T111549","method":"DELETE","expires_in":360}' form: {} headers: Accept: @@ -1404,10 +1404,10 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778510384270147000/object-url + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778670933771432000/object-url method: POST response: - body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-monitoring-1778510384270147000/cloud-logs-test-connection-20260511T144002?Signature=5uIkTiKRJ9P1yFQmOzW1C0uqJQg%3D&Expires=1778510786&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCpsQpY151Of5lRhPgszaROuVfu5kN/9B6xCZ8IwaGxDgyZUcjWz9ir%2BJ0wnUaPA05ucJO2C%2BVlJnf73obQuc5H/Vy520PksT8Km8bFNXBgIakJZqe5x7woTljP9PdPam1WpA8yEQP1yor%2B4/flA6ulyiatLWO/Uj%2B7E14PqIgaiEDKgOqcBzEd8YD97u5zskSIKnKoeK2JC6DNro5mbKLM9rzl114GgbCNFXDWiZVmByP4OGVNpNF8WLW85JjFPclqgkhINKUbX7GSgL0wWsuEEoZ5bHaTYkogMzoIZo%2BD5t9OKUtyZXhZgVa99eTpZ%2B89R/JB%2B0LIlD1Ifzsr3NJDeepF2o12h4iKzE4HFR42N2CJ%2Bn4QJ3ylteFJ%2BsEl5zfHAvCEFf8CSk5S4qXwTpghTa9hG5/NmU5fowSY8lwwAAFlp%2BDQoJtOcCasd/CZMLbmk3arETvW3UympCVVoglp6pJuzB", + body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-monitoring-1778670933771432000/cloud-logs-test-connection-20260513T111549?Signature=gGzmnX6ExZFWBjmW02AgwVELSdo%3D&Expires=1778671333&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCuqr30nEb%2B7bRvCRl7yBD5%2BCijkfAawy12%2BUlYNC%2BNz0SUYLpF9BnOEYyX%2B9OoCCHtDl%2BJPVD14TBfyJg2b9nVY1xKPAIG/FJ61Ra%2BBFDyTZSf4li65k8Ls8Hj9P6wMOLsYBIBjbEAnRSIiyMa6VErW3gNN/7EQODr8hO8eduiB%2B4hN3DL0qtks9Ja9y5Ycnr2AItQIK7chBItsDzGkHsufmPfqr6E7XmGWUelvwKSQYAQvo9w/4f1ILrQy9uw9VonTVJtw9d4bwzlZCGe/88Hq6giKin7syCxIwhl7iroIxL/boCobfmZQ38apxgt2dGNVeXfmLz6W8lNh2hItBSCkjb4KqoIsuhKNEIusnqmAKb3ILLSIJTUBDqlkAEUwhPi5Qq8y6dx36CaM1R0YACp7SA0/bCEdWnYAKLSEZbecRlJ1Qgd8K8EqeNGIaGJJhdX2U%2BvCkrd%2Bp8mXHMahbd6OZilBJ", "exists": true}' headers: Access-Control-Allow-Credentials: @@ -1433,7 +1433,7 @@ interactions: Content-Type: - application/json Expires: - - Mon, 11 May 2026 14:40:27 GMT + - Wed, 13 May 2026 11:16:13 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1466,7 +1466,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778510384270147000 + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778670933771432000 method: DELETE response: body: '{}' @@ -1494,7 +1494,7 @@ interactions: Content-Type: - application/json Expires: - - Mon, 11 May 2026 14:40:33 GMT + - Wed, 13 May 2026 11:16:20 GMT Pragma: - no-cache Strict-Transport-Security: diff --git a/test/integration/fixtures/TestLogStream_Delete.yaml b/test/integration/fixtures/TestLogStream_Delete.yaml index 79c02cecb..e27a8fbfe 100644 --- a/test/integration/fixtures/TestLogStream_Delete.yaml +++ b/test/integration/fixtures/TestLogStream_Delete.yaml @@ -1,68 +1,6 @@ --- 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/monitor/streams?page=1 - method: GET - response: - body: '{"pages": 0, "page": 1, "results": 0, "data": []}' - headers: - Access-Control-Allow-Credentials: - - "true" - Access-Control-Allow-Headers: - - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter - Access-Control-Allow-Methods: - - HEAD, GET, OPTIONS, POST, PUT, DELETE - Access-Control-Allow-Origin: - - '*' - Access-Control-Expose-Headers: - - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status - Akamai-Internal-Account: - - '*' - Cache-Control: - - max-age=0, no-cache, no-store - Connection: - - keep-alive - Content-Length: - - "49" - Content-Security-Policy: - - default-src 'none' - Content-Type: - - application/json - Expires: - - Mon, 11 May 2026 14:38:34 GMT - Pragma: - - no-cache - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization, X-Filter - - Authorization, X-Filter - X-Accepted-Oauth-Scopes: - - monitor: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: {} @@ -438,7 +376,7 @@ interactions: Content-Type: - application/json Expires: - - Fri, 08 May 2026 07:42:43 GMT + - Wed, 13 May 2026 11:18:13 GMT Pragma: - no-cache Strict-Transport-Security: @@ -464,7 +402,7 @@ interactions: code: 200 duration: "" - request: - body: '{"region":"gb-lon","label":"go-test-logs-destination-1778226163960971000","acl":"private","cors_enabled":false}' + body: '{"region":"gb-lon","label":"go-test-logs-monitoring-1778671093013274000","acl":"private","cors_enabled":false}' form: {} headers: Accept: @@ -476,8 +414,8 @@ interactions: url: https://api.linode.com/v4beta/object-storage/buckets method: POST response: - body: '{"hostname": "go-test-logs-destination-1778226163960971000.gb-lon-1.linodeobjects.com", - "label": "go-test-logs-destination-1778226163960971000", "created": "2018-01-02T03:04:05", + body: '{"hostname": "go-test-logs-monitoring-1778671093013274000.gb-lon-1.linodeobjects.com", + "label": "go-test-logs-monitoring-1778671093013274000", "created": "2018-01-02T03:04:05", "region": "gb-lon", "cluster": "", "size": 0, "objects": 0, "endpoint_type": "E3", "s3_endpoint": "gb-lon-1.linodeobjects.com"}' headers: @@ -498,13 +436,13 @@ interactions: Connection: - keep-alive Content-Length: - - "306" + - "304" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Fri, 08 May 2026 07:42:49 GMT + - Wed, 13 May 2026 11:18:18 GMT Pragma: - no-cache Strict-Transport-Security: @@ -528,7 +466,7 @@ interactions: code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1778226169014432000","regions":["gb-lon"]}' + body: '{"label":"go-test-logs-monitoring-1778671098806378000","regions":["gb-lon"]}' form: {} headers: Accept: @@ -540,7 +478,7 @@ interactions: url: https://api.linode.com/v4beta/object-storage/keys method: POST response: - body: '{"id": 3611787, "label": "go-test-logs-destination-1778226169014432000", + body: '{"id": 3687731, "label": "go-test-logs-monitoring-1778671098806378000", "access_key": "[SANITIZED]", "secret_key": "[SANITIZED]", "limited": false, "bucket_access": null, "regions": [{"id": "gb-lon", "s3_endpoint": "gb-lon-1.linodeobjects.com", "endpoint_type": "E3"}]}' @@ -562,13 +500,13 @@ interactions: Connection: - keep-alive Content-Length: - - "308" + - "307" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Fri, 08 May 2026 07:42:51 GMT + - Wed, 13 May 2026 11:18:20 GMT Pragma: - no-cache Strict-Transport-Security: @@ -592,7 +530,7 @@ interactions: code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1778226171258587000","type":"akamai_object_storage","details":{"access_key_id":"AVZO08HUC1HZD72SJGAI","access_key_secret":"qZqKu4to9a6Xa3ONrvS0imFI1RTqm8J5758yTim8","bucket_name":"go-test-logs-destination-1778226163960971000","host":"go-test-logs-destination-1778226163960971000.gb-lon-1.linodeobjects.com"}}' + body: '{"label":"go-test-logs-monitoring-1778671100746811000","type":"akamai_object_storage","details":{"access_key_id":"[SANITIZED]","access_key_secret":"[SANITIZED]","bucket_name":"go-test-logs-monitoring-1778671093013274000","host":"go-test-logs-monitoring-1778671093013274000.gb-lon-1.linodeobjects.com"}}' form: {} headers: Accept: @@ -604,10 +542,10 @@ interactions: url: https://api.linode.com/v4beta/monitor/streams/destinations method: POST response: - body: '{"id": 446, "label": "go-test-logs-destination-1778226171258587000", "type": - "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778226163960971000.gb-lon-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1778226163960971000", "access_key_id": - "AVZO08HUC1HZD72SJGAI"}, "version": 1, "status": "active", "created_by": "dola-klipensk", + body: '{"id": 502, "label": "go-test-logs-monitoring-1778671100746811000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-monitoring-1778671093013274000.gb-lon-1.linodeobjects.com", + "bucket_name": "go-test-logs-monitoring-1778671093013274000", "access_key_id": + "[SANITIZED]"}, "version": 1, "status": "active", "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": "2018-01-02T03:04:05"}' headers: @@ -628,13 +566,13 @@ interactions: Connection: - keep-alive Content-Length: - - "465" + - "462" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Fri, 08 May 2026 07:42:52 GMT + - Wed, 13 May 2026 11:18:21 GMT Pragma: - no-cache Strict-Transport-Security: @@ -658,7 +596,69 @@ interactions: code: 200 duration: "" - request: - body: '{"destinations":[446],"label":"go-test-log-stream-1778226172478846000","type":"audit_logs"}' + 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/monitor/streams?page=1 + method: GET + response: + body: '{"pages": 0, "page": 1, "results": 0, "data": []}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Length: + - "49" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 13 May 2026 11:18:22 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - monitor: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: '{"destinations":[502],"label":"go-test-log-stream-1778671102396381000","type":"audit_logs"}' form: {} headers: Accept: @@ -670,11 +670,11 @@ interactions: url: https://api.linode.com/v4beta/monitor/streams method: POST response: - body: '{"id": 189, "label": "go-test-log-stream-1778226172478846000", "type": - "audit_logs", "destinations": [{"id": 446, "type": "akamai_object_storage", - "label": "go-test-logs-destination-1778226171258587000", "details": {"host": - "go-test-logs-destination-1778226163960971000.gb-lon-1.linodeobjects.com", "bucket_name": - "go-test-logs-destination-1778226163960971000", "access_key_id": "AVZO08HUC1HZD72SJGAI"}}], + body: '{"id": 227, "label": "go-test-log-stream-1778671102396381000", "type": + "audit_logs", "destinations": [{"id": 502, "type": "akamai_object_storage", + "label": "go-test-logs-monitoring-1778671100746811000", "details": {"host": + "go-test-logs-monitoring-1778671093013274000.gb-lon-1.linodeobjects.com", "bucket_name": + "go-test-logs-monitoring-1778671093013274000", "access_key_id": "[SANITIZED]"}}], "details": null, "version": 1, "status": "provisioning", "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": "2018-01-02T03:04:05"}' @@ -696,13 +696,13 @@ interactions: Connection: - keep-alive Content-Length: - - "592" + - "589" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Fri, 08 May 2026 07:42:52 GMT + - Wed, 13 May 2026 11:18:22 GMT Pragma: - no-cache Strict-Transport-Security: @@ -735,14 +735,14 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/189 + url: https://api.linode.com/v4beta/monitor/streams/227 method: GET response: - body: '{"id": 189, "label": "go-test-log-stream-1778226172478846000", "type": - "audit_logs", "destinations": [{"id": 446, "type": "akamai_object_storage", - "label": "go-test-logs-destination-1778226171258587000", "details": {"host": - "go-test-logs-destination-1778226163960971000.gb-lon-1.linodeobjects.com", "bucket_name": - "go-test-logs-destination-1778226163960971000", "access_key_id": "AVZO08HUC1HZD72SJGAI"}}], + body: '{"id": 227, "label": "go-test-log-stream-1778671102396381000", "type": + "audit_logs", "destinations": [{"id": 502, "type": "akamai_object_storage", + "label": "go-test-logs-monitoring-1778671100746811000", "details": {"host": + "go-test-logs-monitoring-1778671093013274000.gb-lon-1.linodeobjects.com", "bucket_name": + "go-test-logs-monitoring-1778671093013274000", "access_key_id": "[SANITIZED]"}}], "details": null, "version": 1, "status": "active", "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": "2018-01-02T03:04:05"}' @@ -764,13 +764,13 @@ interactions: Connection: - keep-alive Content-Length: - - "592" + - "583" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Fri, 08 May 2026 07:42:53 GMT + - Wed, 13 May 2026 11:40:32 GMT Pragma: - no-cache Strict-Transport-Security: @@ -804,7 +804,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/189 + url: https://api.linode.com/v4beta/monitor/streams/227 method: DELETE response: body: '{}' @@ -832,7 +832,7 @@ interactions: Content-Type: - application/json Expires: - - Fri, 08 May 2026 08:17:08 GMT + - Wed, 13 May 2026 11:40:33 GMT Pragma: - no-cache Strict-Transport-Security: @@ -865,7 +865,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/189 + url: https://api.linode.com/v4beta/monitor/streams/227 method: GET response: body: '{"errors": [{"reason": "Stream not found"}]}' @@ -887,7 +887,7 @@ interactions: Content-Type: - application/json Expires: - - Fri, 08 May 2026 08:17:09 GMT + - Wed, 13 May 2026 11:40:33 GMT Pragma: - no-cache Strict-Transport-Security: @@ -915,7 +915,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/189 + url: https://api.linode.com/v4beta/monitor/streams/227 method: GET response: body: '{"errors": [{"reason": "Stream not found"}]}' @@ -937,7 +937,7 @@ interactions: Content-Type: - application/json Expires: - - Fri, 08 May 2026 08:17:09 GMT + - Wed, 13 May 2026 11:40:34 GMT Pragma: - no-cache Strict-Transport-Security: @@ -965,13 +965,13 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations/446 + url: https://api.linode.com/v4beta/monitor/streams/destinations/502 method: GET response: - body: '{"id": 446, "label": "go-test-logs-destination-1778226171258587000", "type": - "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778226163960971000.gb-lon-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1778226163960971000", "access_key_id": - "AVZO08HUC1HZD72SJGAI"}, "version": 1, "status": "active", "created_by": "dola-klipensk", + body: '{"id": 502, "label": "go-test-logs-monitoring-1778671100746811000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-monitoring-1778671093013274000.gb-lon-1.linodeobjects.com", + "bucket_name": "go-test-logs-monitoring-1778671093013274000", "access_key_id": + "[SANITIZED]"}, "version": 1, "status": "active", "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": "2018-01-02T03:04:05"}' headers: @@ -992,13 +992,13 @@ interactions: Connection: - keep-alive Content-Length: - - "465" + - "462" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Fri, 08 May 2026 08:17:09 GMT + - Wed, 13 May 2026 11:40:34 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1032,7 +1032,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations/446 + url: https://api.linode.com/v4beta/monitor/streams/destinations/502 method: DELETE response: body: '{}' @@ -1060,7 +1060,7 @@ interactions: Content-Type: - application/json Expires: - - Fri, 08 May 2026 08:17:09 GMT + - Wed, 13 May 2026 11:40:34 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1093,7 +1093,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/keys/3611787 + url: https://api.linode.com/v4beta/object-storage/keys/3687731 method: DELETE response: body: '{}' @@ -1121,7 +1121,7 @@ interactions: Content-Type: - application/json Expires: - - Fri, 08 May 2026 08:17:10 GMT + - Wed, 13 May 2026 11:40:35 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1154,13 +1154,15 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778226163960971000/object-list + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778671093013274000/object-list method: GET response: - body: '{"data": [{"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/08/akamai_log-413471-1778228079-728823-config.gz", - "size": 577, "last_modified": "2018-01-02T03:04:05.524Z", "etag": "f0800b07381589931479dd06450c6bea", - "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "cloud-logs-test-connection-20260508T074251", - "size": 9, "last_modified": "2018-01-02T03:04:05.115Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", + body: '{"data": [{"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-691746-1778672305-372420-config.gz", + "size": 1022, "last_modified": "2018-01-02T03:04:05.798Z", "etag": "234e378ca84aa699fd391c0181d3267c", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-931586-1778672312-535904-config.gz", + "size": 1282, "last_modified": "2018-01-02T03:04:05.946Z", "etag": "a6be76421ba53b15d5d0d20b61dc3749", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "cloud-logs-test-connection-20260513T111821", + "size": 9, "last_modified": "2018-01-02T03:04:05.633Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}], "next_marker": null, "is_truncated": false}' headers: @@ -1181,13 +1183,13 @@ interactions: Connection: - keep-alive Content-Length: - - "544" + - "831" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Fri, 08 May 2026 08:17:12 GMT + - Wed, 13 May 2026 11:40:37 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1212,7 +1214,68 @@ interactions: code: 200 duration: "" - request: - body: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/08/akamai_log-413471-1778228079-728823-config.gz","method":"DELETE","expires_in":360}' + body: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-691746-1778672305-372420-config.gz","method":"DELETE","expires_in":360}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778671093013274000/object-url + method: POST + response: + body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-monitoring-1778671093013274000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-691746-1778672305-372420-config.gz?Signature=tpvr6kkTcIOsUPZ5tlZvr6O2GUQ%3D&Expires=1778672800&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCqDtRLkGY2BhRpq7ybpVHHLutL2j5hsRabmoEu%2BYZbZBDqB6cHOVxt8lhVYJVb3c3JJqVgGbLkUTGNayFOIEo9iYIJcUBMF3ktxO9N2iiWdBKxOzCK4tpFZ8IHZaa4vKx60ySYQkaiZ8FEPAV2jCzRe7bYl4Zh0OZZFof8rNIeBAhkgZif4rD8wp/d5pc4Kx6e%2Bk6UtceTWI2p2pDUqaMs/MZmdicPJ6UXpNueBdCt57KQwPkrjfglAbuI0zfQh8vjHhu98zbFeslFs6NCTuZPlKWy5mJ10y/6NRBdzKBqMZno/w/54v43K23vKx3mWLLkIkTOYcR0vj79nVv68pNR1lItVErLoX1Qrfk1rJQMoNPhxdV8oUtU2s4LByvMKrY8Ldat1CLA5gpkqcTfTXLjCsmER8fhwd%2BHTzIUdHzCbTDYvX0QkH4KNd%2BQwdOZYxwoeooiveoCauEqB%2BA%2Bung7nDArNx", + "exists": true}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 13 May 2026 11:40:41 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - object_storage: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: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-931586-1778672312-535904-config.gz","method":"DELETE","expires_in":360}' form: {} headers: Accept: @@ -1221,10 +1284,10 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778226163960971000/object-url + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778671093013274000/object-url method: POST response: - body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-destination-1778226163960971000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/08/akamai_log-413471-1778228079-728823-config.gz?Signature=mbp0dBYJoVQHXOXGHQIjEp%2FJsAQ%3D&Expires=1778228597&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCgp/RzgGMYwmQJxYDzYtP48xDtAbnSc19gmGAsj0JNo8IMEr1XBBr0OD1pkkyDKtecbHL9wgwmRKQO9ZMA0Tnk8JCkMDc73/xxEWydqqaHHPM7kfPxo7qJ4P34nVYMIWM7cKXHks5/GEbEjAhL5jASTcpntXj7kS0wAVOILOu/ZB2uSZ41aDft6c8C1gvIXYKnRZvwMyZPltVXIwVeBac6aJG9Xg0Itc6PPPteU0bZt63lOZy9QfvATLfvBIwgUymtQG5abt1fhgfoSHQJB7tbLsm8w8HJG5JuEdBcBNj2XcPYk/qWcVkKJYKdaVw87jTzeUAq%2B8L0IBu60702OrE601SRNSU7/alPEmMMYwHkmnfEEpRdZsPeRhVRjHmOumgf60yoaK6o3Ep7CgQAI0WRNUYutL5ZgXBBKbFvxnaKu2S6kS5Qi5E0%2Bu0b/BU4ttpgAvcSO1vKNyH56BMxxvs4sL1pyP", + body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-monitoring-1778671093013274000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-931586-1778672312-535904-config.gz?Signature=u1t%2FKYSu2OjFKSxqmbRT30i04Ro%3D&Expires=1778672805&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCuUmDf4Nl6MxRJp7O3rEs5ojrjDR2n0YJ75/w9h5Dcwnh1yJ/r8cys07kYZy0Tar0f5HjVQLX/MkRIfaWLnYlmdXJuQPKcF3JnLxmsSpgvLA1%2BGUPrOcIQHTCUuhy8WMZlh5MaCg/kCsif%2By38cM5bzU7O1LbiPDYDirQKgx7YhV0tbDzk6N2mkmJSgTWQripLzqPq6zneaxcktw/I/DrIWYoWfrx0j9tN0YWYnoOsWdtm62D4AtfdnlCNkdlq8cb/bxwBs4t9aOspiuSz/tn3P9NdYoDTl1ayBuQfa2GyUexSnaOd3vX83dH9f8bIEtZgYA6ds4kF4GzwkS2OgVA/JgU8kn/p9puai5cRasWpFRyXnfwpsgVYlqwKE4ncODAPnNMt%2BYwgL7ui%2Bpd%2B%2BYxnT6jzWCw5Qk62ovtc1ZqMyx5oVrsAYqdnelZ95O4h/AU7npxXRN745fYipfzcYtdiAjNFXm", "exists": true}' headers: Access-Control-Allow-Credentials: @@ -1248,7 +1311,7 @@ interactions: Content-Type: - application/json Expires: - - Fri, 08 May 2026 08:17:17 GMT + - Wed, 13 May 2026 11:40:45 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1273,7 +1336,7 @@ interactions: code: 200 duration: "" - request: - body: '{"name":"cloud-logs-test-connection-20260508T074251","method":"DELETE","expires_in":360}' + body: '{"name":"cloud-logs-test-connection-20260513T111821","method":"DELETE","expires_in":360}' form: {} headers: Accept: @@ -1282,10 +1345,10 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778226163960971000/object-url + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778671093013274000/object-url method: POST response: - body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-destination-1778226163960971000/cloud-logs-test-connection-20260508T074251?Signature=Xt8OmNryklURsDz%2BHrSGnGnQqsI%3D&Expires=1778228601&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCmQNXdhL2O4910vxxTVPNn785eDlWUomW/Cj8KBeFkvgfzL9MOXmfk6Y3o7LSmV/JrM8KtPI/kZZ20WmlHCJacZtH0MXE5hPq4KtgqSVNEf4ox00eueVhASjwnzVg4PoGHAN0MRFaStNkBf4cydaxrvX9RxbQmIg8eSS4QLkuHnAP//k%2BABgZNwJU/zY/h5ycDhwMcElb9xIolx%2BRqBFb0HTABwZrKAblRIFoaOgdIYcTFwlzZW2hq6lFI%2BrD7UkJ82nbeXW%2B9fs169UnyxRAr0bcsuTbxXLmb8pfs0R591joXb5OhwxC6DvGJb7YnuFIF2yatsS%2BXZEzgqPiEnQ7h1OecK3lSpxpqeHhUg77Zl1rWsGAPEVn52WAsOwMrSW2bQ5r/ePvWorCD4Vpy22hjPQM9BKPMP9v8jMGZXzy6KJMXoYhVdM6SfHiRYHfjqp66wFZ8jTCNit4RMFQVShelNQ1Hwz", + body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-monitoring-1778671093013274000/cloud-logs-test-connection-20260513T111821?Signature=wW7ZV3DpaM15W8tHtveCISvHihk%3D&Expires=1778672808&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCl9CIkV6x/b7ZF4GMuRABmkOUdb6HmV1tDhUnh6JBwTPRf6f0WqNIKji%2BFWZde66%2BQbNkF/hnogn9KTGtCRjBIDBEuMwXbnMblDQv/flj%2BZClTBWcs3AJhb7pU4RGsVIgnT0M1PA%2BP9Au4aCd6nmNugw4OCZRPpErkdTHf9DnchFWh04inCghrWOzizQGVmTOwKIFiAUjTXV1a51ydlqukbpLJOBsV9ivqhbOfpmfXFuA0z8CYNu8gOVw6LLJF38fIOby89z0fNNc5kXiQtGcKLb/5CIeu2D16siGCJuEiycbKbuZ7SpcXgSHzQ1RzlpAFlE/dfAJw01H8wYRl6yy/e/rMGOHR0T7c4SNLm9ksPAFF5fDaH7yZ1I5eWTW3rPOgbll7dIwEqrtYLcnrNpLo78ptgSPV7ZulV8CF7FG7Px0oiflzOfdQ6rNAakYVdCUFiwajgqgNuil8ISndHvquXggOyh", "exists": true}' headers: Access-Control-Allow-Credentials: @@ -1305,13 +1368,13 @@ interactions: Connection: - keep-alive Content-Length: - - "847" + - "842" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Fri, 08 May 2026 08:17:21 GMT + - Wed, 13 May 2026 11:40:48 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1344,7 +1407,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778226163960971000 + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778671093013274000 method: DELETE response: body: '{}' @@ -1372,7 +1435,7 @@ interactions: Content-Type: - application/json Expires: - - Fri, 08 May 2026 08:17:28 GMT + - Wed, 13 May 2026 11:40:54 GMT Pragma: - no-cache Strict-Transport-Security: diff --git a/test/integration/fixtures/TestLogStream_Get.yaml b/test/integration/fixtures/TestLogStream_Get.yaml index bd90f6181..c15a0579a 100644 --- a/test/integration/fixtures/TestLogStream_Get.yaml +++ b/test/integration/fixtures/TestLogStream_Get.yaml @@ -1,68 +1,6 @@ --- 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/monitor/streams?page=1 - method: GET - response: - body: '{"pages": 0, "page": 1, "results": 0, "data": []}' - headers: - Access-Control-Allow-Credentials: - - "true" - Access-Control-Allow-Headers: - - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter - Access-Control-Allow-Methods: - - HEAD, GET, OPTIONS, POST, PUT, DELETE - Access-Control-Allow-Origin: - - '*' - Access-Control-Expose-Headers: - - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status - Akamai-Internal-Account: - - '*' - Cache-Control: - - max-age=0, no-cache, no-store - Connection: - - keep-alive - Content-Length: - - "49" - Content-Security-Policy: - - default-src 'none' - Content-Type: - - application/json - Expires: - - Mon, 11 May 2026 14:38:34 GMT - Pragma: - - no-cache - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization, X-Filter - - Authorization, X-Filter - X-Accepted-Oauth-Scopes: - - monitor: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: {} @@ -438,7 +376,7 @@ interactions: Content-Type: - application/json Expires: - - Fri, 08 May 2026 10:12:51 GMT + - Wed, 13 May 2026 12:37:52 GMT Pragma: - no-cache Strict-Transport-Security: @@ -464,7 +402,7 @@ interactions: code: 200 duration: "" - request: - body: '{"region":"gb-lon","label":"go-test-logs-destination-1778235171706060000","acl":"private","cors_enabled":false}' + body: '{"region":"gb-lon","label":"go-test-logs-monitoring-1778675872118286000","acl":"private","cors_enabled":false}' form: {} headers: Accept: @@ -476,8 +414,8 @@ interactions: url: https://api.linode.com/v4beta/object-storage/buckets method: POST response: - body: '{"hostname": "go-test-logs-destination-1778235171706060000.gb-lon-1.linodeobjects.com", - "label": "go-test-logs-destination-1778235171706060000", "created": "2018-01-02T03:04:05", + body: '{"hostname": "go-test-logs-monitoring-1778675872118286000.gb-lon-1.linodeobjects.com", + "label": "go-test-logs-monitoring-1778675872118286000", "created": "2018-01-02T03:04:05", "region": "gb-lon", "cluster": "", "size": 0, "objects": 0, "endpoint_type": "E3", "s3_endpoint": "gb-lon-1.linodeobjects.com"}' headers: @@ -498,13 +436,13 @@ interactions: Connection: - keep-alive Content-Length: - - "306" + - "304" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Fri, 08 May 2026 10:12:55 GMT + - Wed, 13 May 2026 12:37:56 GMT Pragma: - no-cache Strict-Transport-Security: @@ -528,7 +466,7 @@ interactions: code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1778235175701451000","regions":["gb-lon"]}' + body: '{"label":"go-test-logs-monitoring-1778675876813828000","regions":["gb-lon"]}' form: {} headers: Accept: @@ -540,7 +478,7 @@ interactions: url: https://api.linode.com/v4beta/object-storage/keys method: POST response: - body: '{"id": 3613668, "label": "go-test-logs-destination-1778235175701451000", + body: '{"id": 3688131, "label": "go-test-logs-monitoring-1778675876813828000", "access_key": "[SANITIZED]", "secret_key": "[SANITIZED]", "limited": false, "bucket_access": null, "regions": [{"id": "gb-lon", "s3_endpoint": "gb-lon-1.linodeobjects.com", "endpoint_type": "E3"}]}' @@ -562,13 +500,13 @@ interactions: Connection: - keep-alive Content-Length: - - "308" + - "307" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Fri, 08 May 2026 10:12:57 GMT + - Wed, 13 May 2026 12:37:58 GMT Pragma: - no-cache Strict-Transport-Security: @@ -592,7 +530,7 @@ interactions: code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1778235177676694000","type":"akamai_object_storage","details":{"access_key_id":"VGZIU2RGOJJFOA0B7CVI","access_key_secret":"mIs0q1pfOOFFprjtzKGUL5YaUiFT8AK7dYW5ByUC","bucket_name":"go-test-logs-destination-1778235171706060000","host":"go-test-logs-destination-1778235171706060000.gb-lon-1.linodeobjects.com"}}' + body: '{"label":"go-test-logs-monitoring-1778675878525257000","type":"akamai_object_storage","details":{"access_key_id":"[SANITIZED]","access_key_secret":"[SANITIZED]","bucket_name":"go-test-logs-monitoring-1778675872118286000","host":"go-test-logs-monitoring-1778675872118286000.gb-lon-1.linodeobjects.com"}}' form: {} headers: Accept: @@ -604,10 +542,10 @@ interactions: url: https://api.linode.com/v4beta/monitor/streams/destinations method: POST response: - body: '{"id": 450, "label": "go-test-logs-destination-1778235177676694000", "type": - "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778235171706060000.gb-lon-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1778235171706060000", "access_key_id": - "VGZIU2RGOJJFOA0B7CVI"}, "version": 1, "status": "active", "created_by": "dola-klipensk", + body: '{"id": 506, "label": "go-test-logs-monitoring-1778675878525257000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-monitoring-1778675872118286000.gb-lon-1.linodeobjects.com", + "bucket_name": "go-test-logs-monitoring-1778675872118286000", "access_key_id": + "[SANITIZED]"}, "version": 1, "status": "active", "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": "2018-01-02T03:04:05"}' headers: @@ -628,13 +566,13 @@ interactions: Connection: - keep-alive Content-Length: - - "465" + - "462" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Fri, 08 May 2026 10:12:58 GMT + - Wed, 13 May 2026 12:37:59 GMT Pragma: - no-cache Strict-Transport-Security: @@ -658,7 +596,69 @@ interactions: code: 200 duration: "" - request: - body: '{"destinations":[450],"label":"go-test-log-stream-1778235178909904000","type":"audit_logs"}' + 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/monitor/streams?page=1 + method: GET + response: + body: '{"pages": 0, "page": 1, "results": 0, "data": []}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Length: + - "49" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 13 May 2026 12:38:00 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - monitor: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: '{"destinations":[506],"label":"go-test-log-stream-1778675880197685000","type":"audit_logs"}' form: {} headers: Accept: @@ -670,11 +670,11 @@ interactions: url: https://api.linode.com/v4beta/monitor/streams method: POST response: - body: '{"id": 192, "label": "go-test-log-stream-1778235178909904000", "type": - "audit_logs", "destinations": [{"id": 450, "type": "akamai_object_storage", - "label": "go-test-logs-destination-1778235177676694000", "details": {"host": - "go-test-logs-destination-1778235171706060000.gb-lon-1.linodeobjects.com", "bucket_name": - "go-test-logs-destination-1778235171706060000", "access_key_id": "VGZIU2RGOJJFOA0B7CVI"}}], + body: '{"id": 229, "label": "go-test-log-stream-1778675880197685000", "type": + "audit_logs", "destinations": [{"id": 506, "type": "akamai_object_storage", + "label": "go-test-logs-monitoring-1778675878525257000", "details": {"host": + "go-test-logs-monitoring-1778675872118286000.gb-lon-1.linodeobjects.com", "bucket_name": + "go-test-logs-monitoring-1778675872118286000", "access_key_id": "[SANITIZED]"}}], "details": null, "version": 1, "status": "provisioning", "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": "2018-01-02T03:04:05"}' @@ -696,13 +696,13 @@ interactions: Connection: - keep-alive Content-Length: - - "592" + - "589" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Fri, 08 May 2026 10:12:59 GMT + - Wed, 13 May 2026 12:38:00 GMT Pragma: - no-cache Strict-Transport-Security: @@ -735,14 +735,14 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/192 + url: https://api.linode.com/v4beta/monitor/streams/229 method: GET response: - body: '{"id": 192, "label": "go-test-log-stream-1778235178909904000", "type": - "audit_logs", "destinations": [{"id": 450, "type": "akamai_object_storage", - "label": "go-test-logs-destination-1778235177676694000", "details": {"host": - "go-test-logs-destination-1778235171706060000.gb-lon-1.linodeobjects.com", "bucket_name": - "go-test-logs-destination-1778235171706060000", "access_key_id": "VGZIU2RGOJJFOA0B7CVI"}}], + body: '{"id": 229, "label": "go-test-log-stream-1778675880197685000", "type": + "audit_logs", "destinations": [{"id": 506, "type": "akamai_object_storage", + "label": "go-test-logs-monitoring-1778675878525257000", "details": {"host": + "go-test-logs-monitoring-1778675872118286000.gb-lon-1.linodeobjects.com", "bucket_name": + "go-test-logs-monitoring-1778675872118286000", "access_key_id": "[SANITIZED]"}}], "details": null, "version": 1, "status": "active", "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": "2018-01-02T03:04:05"}' @@ -764,13 +764,13 @@ interactions: Connection: - keep-alive Content-Length: - - "592" + - "583" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Fri, 08 May 2026 10:12:59 GMT + - Wed, 13 May 2026 13:13:17 GMT Pragma: - no-cache Strict-Transport-Security: @@ -804,14 +804,14 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/192 + url: https://api.linode.com/v4beta/monitor/streams/229 method: GET response: - body: '{"id": 192, "label": "go-test-log-stream-1778235178909904000", "type": - "audit_logs", "destinations": [{"id": 450, "type": "akamai_object_storage", - "label": "go-test-logs-destination-1778235177676694000", "details": {"host": - "go-test-logs-destination-1778235171706060000.gb-lon-1.linodeobjects.com", "bucket_name": - "go-test-logs-destination-1778235171706060000", "access_key_id": "VGZIU2RGOJJFOA0B7CVI"}}], + body: '{"id": 229, "label": "go-test-log-stream-1778675880197685000", "type": + "audit_logs", "destinations": [{"id": 506, "type": "akamai_object_storage", + "label": "go-test-logs-monitoring-1778675878525257000", "details": {"host": + "go-test-logs-monitoring-1778675872118286000.gb-lon-1.linodeobjects.com", "bucket_name": + "go-test-logs-monitoring-1778675872118286000", "access_key_id": "[SANITIZED]"}}], "details": null, "version": 1, "status": "active", "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": "2018-01-02T03:04:05"}' @@ -833,13 +833,13 @@ interactions: Connection: - keep-alive Content-Length: - - "592" + - "583" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Fri, 08 May 2026 10:12:59 GMT + - Wed, 13 May 2026 13:13:17 GMT Pragma: - no-cache Strict-Transport-Security: @@ -873,14 +873,14 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/192 + url: https://api.linode.com/v4beta/monitor/streams/229 method: GET response: - body: '{"id": 192, "label": "go-test-log-stream-1778235178909904000", "type": - "audit_logs", "destinations": [{"id": 450, "type": "akamai_object_storage", - "label": "go-test-logs-destination-1778235177676694000", "details": {"host": - "go-test-logs-destination-1778235171706060000.gb-lon-1.linodeobjects.com", "bucket_name": - "go-test-logs-destination-1778235171706060000", "access_key_id": "VGZIU2RGOJJFOA0B7CVI"}}], + body: '{"id": 229, "label": "go-test-log-stream-1778675880197685000", "type": + "audit_logs", "destinations": [{"id": 506, "type": "akamai_object_storage", + "label": "go-test-logs-monitoring-1778675878525257000", "details": {"host": + "go-test-logs-monitoring-1778675872118286000.gb-lon-1.linodeobjects.com", "bucket_name": + "go-test-logs-monitoring-1778675872118286000", "access_key_id": "[SANITIZED]"}}], "details": null, "version": 1, "status": "active", "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": "2018-01-02T03:04:05"}' @@ -902,13 +902,13 @@ interactions: Connection: - keep-alive Content-Length: - - "592" + - "583" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Fri, 08 May 2026 10:12:59 GMT + - Wed, 13 May 2026 13:13:17 GMT Pragma: - no-cache Strict-Transport-Security: @@ -942,7 +942,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/192 + url: https://api.linode.com/v4beta/monitor/streams/229 method: DELETE response: body: '{}' @@ -970,7 +970,7 @@ interactions: Content-Type: - application/json Expires: - - Fri, 08 May 2026 10:37:15 GMT + - Wed, 13 May 2026 13:13:18 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1003,7 +1003,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/192 + url: https://api.linode.com/v4beta/monitor/streams/229 method: GET response: body: '{"errors": [{"reason": "Stream not found"}]}' @@ -1025,7 +1025,7 @@ interactions: Content-Type: - application/json Expires: - - Fri, 08 May 2026 10:37:15 GMT + - Wed, 13 May 2026 13:13:18 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1053,13 +1053,13 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations/450 + url: https://api.linode.com/v4beta/monitor/streams/destinations/506 method: GET response: - body: '{"id": 450, "label": "go-test-logs-destination-1778235177676694000", "type": - "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778235171706060000.gb-lon-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1778235171706060000", "access_key_id": - "VGZIU2RGOJJFOA0B7CVI"}, "version": 1, "status": "active", "created_by": "dola-klipensk", + body: '{"id": 506, "label": "go-test-logs-monitoring-1778675878525257000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-monitoring-1778675872118286000.gb-lon-1.linodeobjects.com", + "bucket_name": "go-test-logs-monitoring-1778675872118286000", "access_key_id": + "[SANITIZED]"}, "version": 1, "status": "active", "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": "2018-01-02T03:04:05"}' headers: @@ -1080,13 +1080,13 @@ interactions: Connection: - keep-alive Content-Length: - - "465" + - "462" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Fri, 08 May 2026 10:37:16 GMT + - Wed, 13 May 2026 13:13:19 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1120,7 +1120,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations/450 + url: https://api.linode.com/v4beta/monitor/streams/destinations/506 method: DELETE response: body: '{}' @@ -1148,7 +1148,7 @@ interactions: Content-Type: - application/json Expires: - - Fri, 08 May 2026 10:37:16 GMT + - Wed, 13 May 2026 13:13:19 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1181,7 +1181,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/keys/3613668 + url: https://api.linode.com/v4beta/object-storage/keys/3688131 method: DELETE response: body: '{}' @@ -1209,7 +1209,7 @@ interactions: Content-Type: - application/json Expires: - - Fri, 08 May 2026 10:37:17 GMT + - Wed, 13 May 2026 13:13:20 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1242,13 +1242,19 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778235171706060000/object-list + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778675872118286000/object-list method: GET response: - body: '{"data": [{"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/08/akamai_log-123432-1778236085-322081-config.gz", - "size": 574, "last_modified": "2018-01-02T03:04:05.388Z", "etag": "f4bb7599147adde4652d69905e9efeb7", - "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "cloud-logs-test-connection-20260508T101258", - "size": 9, "last_modified": "2018-01-02T03:04:05.626Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", + body: '{"data": [{"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-071313-1778677950-627866-config.gz", + "size": 1108, "last_modified": "2018-01-02T03:04:05.496Z", "etag": "cd592d588d3305e8f6f0b12919abe88c", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-203562-1778677736-178718-config.gz", + "size": 574, "last_modified": "2018-01-02T03:04:05.503Z", "etag": "2596617bacd393455f30f19f22829145", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-824842-1778677348-675747-config.gz", + "size": 656, "last_modified": "2018-01-02T03:04:05.890Z", "etag": "b9d1c2d1cc757308bbef6b7283522ba9", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-827277-1778677930-013301-config.gz", + "size": 1748, "last_modified": "2018-01-02T03:04:05.328Z", "etag": "493d3f989828629f51a8da95257e33d4", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "cloud-logs-test-connection-20260513T123758", + "size": 9, "last_modified": "2018-01-02T03:04:05.376Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}], "next_marker": null, "is_truncated": false}' headers: @@ -1268,14 +1274,12 @@ interactions: - max-age=0, no-cache, no-store Connection: - keep-alive - Content-Length: - - "544" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Fri, 08 May 2026 10:37:19 GMT + - Wed, 13 May 2026 13:13:23 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1283,6 +1287,7 @@ interactions: Vary: - Authorization, X-Filter - Authorization, X-Filter + - Accept-Encoding X-Accepted-Oauth-Scopes: - object_storage:read_only X-Content-Type-Options: @@ -1300,7 +1305,190 @@ interactions: code: 200 duration: "" - request: - body: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/08/akamai_log-123432-1778236085-322081-config.gz","method":"DELETE","expires_in":360}' + body: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-071313-1778677950-627866-config.gz","method":"DELETE","expires_in":360}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778675872118286000/object-url + method: POST + response: + body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-monitoring-1778675872118286000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-071313-1778677950-627866-config.gz?Signature=QJ84X%2Bj0JFeQJr0PHl%2BXXeAbvHk%3D&Expires=1778678366&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCiu9dL26tpDAO79X0RnPb23p3MuybTFOXkyJtlm6ZjN01QRtMUlb1htCuzQqslRDtNt/0xQz9nVkNy/9uvpg7%2BBeIbj7LABWExYiZXK5J0gAmrEC77VndD1HWp71NCyt9XV5ERoS38TSi6H5PGXXyWxNNuNbSjIclj7sz4FqoNd7qkYRvI1laQRcK/QRtlypcoQtKfOc9vQ36kp4InTFEeoy3nZPipa4DeaqbN1YoKl5JEpuoJ1nJzuEYzaUxetjnZZe4iFxFzKeuUjxKgdFLrcJWVN/Gze4iEq%2B/hSAtUFL1ZeglqdpirP5eZU3iCFTTGQbDmqxq6r/UD4n9EABofERZaLfD12461pbcCaCK0J6xtxZGp2bC%2BgEn9q15Hb%2B3ZeROIs3HoIsfvNVVIesce0sJ4Mat9q3xMEn3dcvmsFHQPJsoU46LpVH/u/eqBS8tCzEe0aXvHM6%2BRq3Rt7etzN9jgK4", + "exists": true}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 13 May 2026 13:13:27 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - object_storage: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: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-203562-1778677736-178718-config.gz","method":"DELETE","expires_in":360}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778675872118286000/object-url + method: POST + response: + body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-monitoring-1778675872118286000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-203562-1778677736-178718-config.gz?Signature=y2vEtLjsH1dLKT6AJsLiFD0KrFQ%3D&Expires=1778678371&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjClyHL6P%2BGwXoVB%2Br/QRdSiK/3Gj9d3cTZOZmzKBTxQmsPI0AyR9bgDrNSUnOs5N8RtwMvAZUuLkh3zYtyVlR4%2BUs43Du4tpmJqKWwgNfrQMr9oUeDUwtrEkVUe7DjR0LD9oZD3JrH/MSr77jyUyWgWE2ALRERdUndRaKzxMtex1TNd74NbDE/Cufg%2BtO6VJS5/v7Z6dCViCNjcI6xkO32RvcTnxRjxWY/sFkUXvVfVSFHizFwPbbXABtPJ4y0phhXbaR/EAQiINCKU6YAarQhHBgVussX/7SLzU5fZpUtM9lyQMyOpYo3YVN5fH4GspzietIFcZPqRJu22wtJPhigJLi1/XSeo1zrxovctENR1dBmGt0NVw1EuDl1aD8f0RezbSFdazjAc2C2ugvsd9Mxwn5EjdYCgF%2BXfRUxyDHsf%2BvSo610iIk0azCAQ6aG9Hl7bjJBt5pg%2BbulAqmYD01va/M36qC", + "exists": true}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 13 May 2026 13:13:31 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - object_storage: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: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-824842-1778677348-675747-config.gz","method":"DELETE","expires_in":360}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778675872118286000/object-url + method: POST + response: + body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-monitoring-1778675872118286000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-824842-1778677348-675747-config.gz?Signature=5An6JhA126sVZETdtWh%2Bp3spsOM%3D&Expires=1778678374&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCmsJBLcWteC32%2BsbYyDB75EtbSXxEH8volWuB2qoUYJZbQieGrMQt8uiAuvhULJAm7X4TwExG9FYOpO%2BqZOCJZojDWMRQtl3MO6RqSXCXmrLwsCvvHgbbZyydUaD%2BGuh/LjqI0ZPQjZA7Pd77jvzidCCEkHjhy492yWZHslbcQexw5VKfmv7NxHYvIvlcnAlTzL8/AWmcvPhQNu/UNAdpECpqMoE2U3V8nifFvcs42VA9oxCfcS3KfA5410RZB5RSWtPqBjutOpdqmeMO3JVrDkWnbikg0Stdd4Fu%2BqR8Et76bx71Amm9cuezfscG20ColFDZcyhCdpW2oPRbBFjFvvuNlbSw%2B%2BeAd07jluVVHDLZpMlrVTJE0zX/7Ct3/F3j0Auc%2BOh0AkU/BaRl/3bTX4IISJI5DdZ1p6n13%2B5GKC/xp%2BeOSDPhtP2TUKVZgEGeG6O8Z828Vc%2BHXi1Iq9Ie1FFEluz", + "exists": true}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 13 May 2026 13:13:34 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - object_storage: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: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-827277-1778677930-013301-config.gz","method":"DELETE","expires_in":360}' form: {} headers: Accept: @@ -1309,10 +1497,10 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778235171706060000/object-url + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778675872118286000/object-url method: POST response: - body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-destination-1778235171706060000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/08/akamai_log-123432-1778236085-322081-config.gz?Signature=FyF4ppil%2FRZKW2FvfTrfwIiUkfU%3D&Expires=1778237003&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCgrkoyFJpQy9H5GxRrsO4GjcW93Jd7F4SSPM3i%2BF9TIiZs7mNszilgBc67R40LhZw1AfIWLC6v8ofidhrg34e/h91SQ/s6N8j8z7uqE3jmky0rRubD7ruYLIzDrnchm3oX0bet4q9gorBnNAfGRSlLFqn9Otb1dck7mSpNxFSPDp2XooUdea%2B953Jr5BgRhVaz70Ksj9uVA7AapyQuy4xPgGf2x0XHocnMwguNOiHv5VC82G7cA85BGHTbvkdDwXX4G1hsaN5jOjSBukJ0xO1/pTUqSE7ny5IYN0nnir1msexM2FNy4MpCf71BIfUqq38igQlpiQo1ketLVfFd31t0s5eHxJWTCMB%2BwVJqziO2zQN3RPH5CZ2cI4aOsT/fjCUO2EFMr0RprvMTez0dX7Unm5xNPK042z4IG9U8WQI2DeIPrWxCn4ZUcmhIuQio00xLU%2BOauzz8VIpLK1xVTYN04dUrWn", + body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-monitoring-1778675872118286000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-827277-1778677930-013301-config.gz?Signature=cL26KXCZbhqkmCbdyKUEdCp39%2BM%3D&Expires=1778678378&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCvlvdM6GVyHdBadYbdhDNTJnen%2B/SrS3w4zRfSaGbrzLNFRVDiaBlS/RlygvLTgcm7RlK5R1/p3Ly47LTDhJg3vvXXk8UBh3PYW3UmDx1Gw22jOXf2d5WG0ebc61Duyx65x78MOufbV5j6FpG%2BNIl9tM8EXoKr1Iv5UB2h8vlfmLO2yVEs8KIRxosVRhRG0WgG/jUpbSUglrwRalxPs8Y6/BDR4nADdsxAZU8UHzg3VmfVE00upgcqahPtZmsMiGs1b28oQSSWytP3g6u1%2Bgjsve/N1UOu9FqraeSbZEQebnVY39bcaGe1tFEppP2rRkh0g4uLpj161eMmsXGPJOqCbZkIyraG1gxIjBnxXA4UhiW5voYMTiFSFUDWlJyI%2BPau3e/qQdMgsCjuAuOi3AuO9ZJey2y%2BTZdMIGNVTTh1Yh9uyFeaQZvf%2BfXcN9Kj%2BXFoZ2eiL5eikRCCtYQSD1es0xW9jj", "exists": true}' headers: Access-Control-Allow-Credentials: @@ -1336,7 +1524,7 @@ interactions: Content-Type: - application/json Expires: - - Fri, 08 May 2026 10:37:23 GMT + - Wed, 13 May 2026 13:13:38 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1361,7 +1549,7 @@ interactions: code: 200 duration: "" - request: - body: '{"name":"cloud-logs-test-connection-20260508T101258","method":"DELETE","expires_in":360}' + body: '{"name":"cloud-logs-test-connection-20260513T123758","method":"DELETE","expires_in":360}' form: {} headers: Accept: @@ -1370,10 +1558,10 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778235171706060000/object-url + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778675872118286000/object-url method: POST response: - body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-destination-1778235171706060000/cloud-logs-test-connection-20260508T101258?Signature=uP4h8AGg5M4pxaefEWmOEaS4ksk%3D&Expires=1778237007&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCrhIS/QDnTn3pghxMaIAQzyWYnj1sg0FCwP1%2B%2B4EDnoR5Crov5v%2BoknK4PzcmqZphWUJ5oZ6sYF%2BQrZKYgWjHv2YhcIES9rwfLHsBkYNZ0nFarQXEsDIsVINJk7jsH3ph4Il5zh9ygpguOMVpit8OE2MnRfxK9CrKnVYKnrcc603rGm3HrKhiTq%2BQdcwffZxTvtWfYrFbrhDGXJGSf4GDe7zKTY5lCLY8necQCjGaiZnmp/na17c1lbPgtYSQFSLUaKCVuWf6ORUxmYzXnjzL8dq9TRAptzt7BvKJC6cOrbJihifTU6mLneB52OHJGf/QQeFJZf17%2BaMtbMgNsugJDCN0nPAynameQWxQpWf/Bgr7rFu5xpoVq1o41IecHcnwyX6Rb/L/jN4eTX6noWmNghHVkzb7jYEi8eqjHpyvTM%2BucuRRydfyFNO8ErPJAoz0JdXK16ryO%2BcEf/5XnE0vl%2BeBT/t", + body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-monitoring-1778675872118286000/cloud-logs-test-connection-20260513T123758?Signature=FxzIcgWAFwasQt4M3LluO6ZbnBI%3D&Expires=1778678382&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCjCoSs3JGLRiwrTpof9haQWTHW%2BzoLs8pJAhOdFBzruo30lzVvbtClwxzu2fFCLcc32ek/b15VR8XEne3x99dG10dQVyllxVO4vqVire07rWwiXmBrTIvYQUnnE7ue8w66Em5CAwMlvEnyp6kyob8NA9a3udm5pHPVXkuAOrUbV2DFOHMZWPibYPRCWtVdqW8Yww1EozBJ/rfouKzQTJ4t22q8Rcz765xkZO0KUjK77VIzRIu7zc6feuLDVT%2BcQu8x7kYAVPM5VQaHLsLDJWsJaH2xWiPMCoMAYKmnAIa%2BIZ9X3Ii6BsIqZ3qAKr4Ni1lQwV6%2BfgQf3ipCCbdlTB9mBeGzjTyzW/LXyd%2BowVWDlSmSgJS9iuhjjB5i64K4KikoVjhd/dKwQuz43SO6jpnJiL%2Bdk3LounZRZyA1EGALEmb3SRbkYbxyir7p/TV%2BXIVspP2hjlrJJZciWJopABml3XNp82", "exists": true}' headers: Access-Control-Allow-Credentials: @@ -1393,13 +1581,13 @@ interactions: Connection: - keep-alive Content-Length: - - "853" + - "848" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Fri, 08 May 2026 10:37:28 GMT + - Wed, 13 May 2026 13:13:42 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1432,7 +1620,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778235171706060000 + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778675872118286000 method: DELETE response: body: '{}' @@ -1460,7 +1648,7 @@ interactions: Content-Type: - application/json Expires: - - Fri, 08 May 2026 10:37:34 GMT + - Wed, 13 May 2026 13:13:48 GMT Pragma: - no-cache Strict-Transport-Security: diff --git a/test/integration/fixtures/TestLogStream_List.yaml b/test/integration/fixtures/TestLogStream_List.yaml index beeb49f4b..1f703f5d5 100644 --- a/test/integration/fixtures/TestLogStream_List.yaml +++ b/test/integration/fixtures/TestLogStream_List.yaml @@ -1,68 +1,6 @@ --- 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/monitor/streams?page=1 - method: GET - response: - body: '{"pages": 0, "page": 1, "results": 0, "data": []}' - headers: - Access-Control-Allow-Credentials: - - "true" - Access-Control-Allow-Headers: - - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter - Access-Control-Allow-Methods: - - HEAD, GET, OPTIONS, POST, PUT, DELETE - Access-Control-Allow-Origin: - - '*' - Access-Control-Expose-Headers: - - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status - Akamai-Internal-Account: - - '*' - Cache-Control: - - max-age=0, no-cache, no-store - Connection: - - keep-alive - Content-Length: - - "49" - Content-Security-Policy: - - default-src 'none' - Content-Type: - - application/json - Expires: - - Mon, 11 May 2026 14:38:34 GMT - Pragma: - - no-cache - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization, X-Filter - - Authorization, X-Filter - X-Accepted-Oauth-Scopes: - - monitor: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: {} @@ -438,7 +376,7 @@ interactions: Content-Type: - application/json Expires: - - Fri, 08 May 2026 08:22:16 GMT + - Wed, 13 May 2026 12:03:29 GMT Pragma: - no-cache Strict-Transport-Security: @@ -464,7 +402,7 @@ interactions: code: 200 duration: "" - request: - body: '{"region":"gb-lon","label":"go-test-logs-destination-1778228536181337000","acl":"private","cors_enabled":false}' + body: '{"region":"gb-lon","label":"go-test-logs-monitoring-1778673809872719000","acl":"private","cors_enabled":false}' form: {} headers: Accept: @@ -476,8 +414,8 @@ interactions: url: https://api.linode.com/v4beta/object-storage/buckets method: POST response: - body: '{"hostname": "go-test-logs-destination-1778228536181337000.gb-lon-1.linodeobjects.com", - "label": "go-test-logs-destination-1778228536181337000", "created": "2018-01-02T03:04:05", + body: '{"hostname": "go-test-logs-monitoring-1778673809872719000.gb-lon-1.linodeobjects.com", + "label": "go-test-logs-monitoring-1778673809872719000", "created": "2018-01-02T03:04:05", "region": "gb-lon", "cluster": "", "size": 0, "objects": 0, "endpoint_type": "E3", "s3_endpoint": "gb-lon-1.linodeobjects.com"}' headers: @@ -498,13 +436,13 @@ interactions: Connection: - keep-alive Content-Length: - - "306" + - "304" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Fri, 08 May 2026 08:22:21 GMT + - Wed, 13 May 2026 12:03:34 GMT Pragma: - no-cache Strict-Transport-Security: @@ -528,7 +466,7 @@ interactions: code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1778228541793958000","regions":["gb-lon"]}' + body: '{"label":"go-test-logs-monitoring-1778673814018227000","regions":["gb-lon"]}' form: {} headers: Accept: @@ -540,7 +478,7 @@ interactions: url: https://api.linode.com/v4beta/object-storage/keys method: POST response: - body: '{"id": 3612270, "label": "go-test-logs-destination-1778228541793958000", + body: '{"id": 3687956, "label": "go-test-logs-monitoring-1778673814018227000", "access_key": "[SANITIZED]", "secret_key": "[SANITIZED]", "limited": false, "bucket_access": null, "regions": [{"id": "gb-lon", "s3_endpoint": "gb-lon-1.linodeobjects.com", "endpoint_type": "E3"}]}' @@ -562,13 +500,13 @@ interactions: Connection: - keep-alive Content-Length: - - "308" + - "307" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Fri, 08 May 2026 08:22:24 GMT + - Wed, 13 May 2026 12:03:35 GMT Pragma: - no-cache Strict-Transport-Security: @@ -592,7 +530,7 @@ interactions: code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1778228543905989000","type":"akamai_object_storage","details":{"access_key_id":"YVTTU3YQQ3N3ZHCJJ632","access_key_secret":"0qiLjidJONQzlV7jRh4kdd4k5ezMX2ctvw8fq0FE","bucket_name":"go-test-logs-destination-1778228536181337000","host":"go-test-logs-destination-1778228536181337000.gb-lon-1.linodeobjects.com"}}' + body: '{"label":"go-test-logs-monitoring-1778673815866646000","type":"akamai_object_storage","details":{"access_key_id":"[SANITIZED]","access_key_secret":"[SANITIZED]","bucket_name":"go-test-logs-monitoring-1778673809872719000","host":"go-test-logs-monitoring-1778673809872719000.gb-lon-1.linodeobjects.com"}}' form: {} headers: Accept: @@ -604,10 +542,10 @@ interactions: url: https://api.linode.com/v4beta/monitor/streams/destinations method: POST response: - body: '{"id": 447, "label": "go-test-logs-destination-1778228543905989000", "type": - "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778228536181337000.gb-lon-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1778228536181337000", "access_key_id": - "YVTTU3YQQ3N3ZHCJJ632"}, "version": 1, "status": "active", "created_by": "dola-klipensk", + body: '{"id": 503, "label": "go-test-logs-monitoring-1778673815866646000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-monitoring-1778673809872719000.gb-lon-1.linodeobjects.com", + "bucket_name": "go-test-logs-monitoring-1778673809872719000", "access_key_id": + "[SANITIZED]"}, "version": 1, "status": "active", "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": "2018-01-02T03:04:05"}' headers: @@ -628,13 +566,13 @@ interactions: Connection: - keep-alive Content-Length: - - "465" + - "462" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Fri, 08 May 2026 08:22:25 GMT + - Wed, 13 May 2026 12:03:37 GMT Pragma: - no-cache Strict-Transport-Security: @@ -658,7 +596,69 @@ interactions: code: 200 duration: "" - request: - body: '{"destinations":[447],"label":"go-test-log-stream-1778228545091106000","type":"audit_logs"}' + 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/monitor/streams?page=1 + method: GET + response: + body: '{"pages": 0, "page": 1, "results": 0, "data": []}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Length: + - "49" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 13 May 2026 12:03:37 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - monitor: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: '{"destinations":[503],"label":"go-test-log-stream-1778673817548386000","type":"audit_logs"}' form: {} headers: Accept: @@ -670,11 +670,11 @@ interactions: url: https://api.linode.com/v4beta/monitor/streams method: POST response: - body: '{"id": 190, "label": "go-test-log-stream-1778228545091106000", "type": - "audit_logs", "destinations": [{"id": 447, "type": "akamai_object_storage", - "label": "go-test-logs-destination-1778228543905989000", "details": {"host": - "go-test-logs-destination-1778228536181337000.gb-lon-1.linodeobjects.com", "bucket_name": - "go-test-logs-destination-1778228536181337000", "access_key_id": "YVTTU3YQQ3N3ZHCJJ632"}}], + body: '{"id": 228, "label": "go-test-log-stream-1778673817548386000", "type": + "audit_logs", "destinations": [{"id": 503, "type": "akamai_object_storage", + "label": "go-test-logs-monitoring-1778673815866646000", "details": {"host": + "go-test-logs-monitoring-1778673809872719000.gb-lon-1.linodeobjects.com", "bucket_name": + "go-test-logs-monitoring-1778673809872719000", "access_key_id": "[SANITIZED]"}}], "details": null, "version": 1, "status": "provisioning", "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": "2018-01-02T03:04:05"}' @@ -696,13 +696,13 @@ interactions: Connection: - keep-alive Content-Length: - - "592" + - "589" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Fri, 08 May 2026 08:22:25 GMT + - Wed, 13 May 2026 12:03:37 GMT Pragma: - no-cache Strict-Transport-Security: @@ -735,14 +735,14 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/190 + url: https://api.linode.com/v4beta/monitor/streams/228 method: GET response: - body: '{"id": 190, "label": "go-test-log-stream-1778228545091106000", "type": - "audit_logs", "destinations": [{"id": 447, "type": "akamai_object_storage", - "label": "go-test-logs-destination-1778228543905989000", "details": {"host": - "go-test-logs-destination-1778228536181337000.gb-lon-1.linodeobjects.com", "bucket_name": - "go-test-logs-destination-1778228536181337000", "access_key_id": "YVTTU3YQQ3N3ZHCJJ632"}}], + body: '{"id": 228, "label": "go-test-log-stream-1778673817548386000", "type": + "audit_logs", "destinations": [{"id": 503, "type": "akamai_object_storage", + "label": "go-test-logs-monitoring-1778673815866646000", "details": {"host": + "go-test-logs-monitoring-1778673809872719000.gb-lon-1.linodeobjects.com", "bucket_name": + "go-test-logs-monitoring-1778673809872719000", "access_key_id": "[SANITIZED]"}}], "details": null, "version": 1, "status": "active", "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": "2018-01-02T03:04:05"}' @@ -764,13 +764,13 @@ interactions: Connection: - keep-alive Content-Length: - - "592" + - "583" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Fri, 08 May 2026 08:22:25 GMT + - Wed, 13 May 2026 12:29:50 GMT Pragma: - no-cache Strict-Transport-Security: @@ -807,11 +807,11 @@ interactions: url: https://api.linode.com/v4beta/monitor/streams?page=1 method: GET response: - body: '{"pages": 1, "page": 1, "results": 1, "data": [{"id": 190, "label": "go-test-log-stream-1778228545091106000", - "type": "audit_logs", "destinations": [{"id": 447, "type": "akamai_object_storage", - "label": "go-test-logs-destination-1778228543905989000", "details": {"host": - "go-test-logs-destination-1778228536181337000.gb-lon-1.linodeobjects.com", "bucket_name": - "go-test-logs-destination-1778228536181337000", "access_key_id": "YVTTU3YQQ3N3ZHCJJ632"}}], + body: '{"pages": 1, "page": 1, "results": 1, "data": [{"id": 228, "label": "go-test-log-stream-1778673817548386000", + "type": "audit_logs", "destinations": [{"id": 503, "type": "akamai_object_storage", + "label": "go-test-logs-monitoring-1778673815866646000", "details": {"host": + "go-test-logs-monitoring-1778673809872719000.gb-lon-1.linodeobjects.com", "bucket_name": + "go-test-logs-monitoring-1778673809872719000", "access_key_id": "[SANITIZED]"}}], "details": null, "version": 1, "status": "active", "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": "2018-01-02T03:04:05"}]}' @@ -833,13 +833,13 @@ interactions: Connection: - keep-alive Content-Length: - - "635" + - "632" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Fri, 08 May 2026 09:00:41 GMT + - Wed, 13 May 2026 12:29:50 GMT Pragma: - no-cache Strict-Transport-Security: @@ -873,14 +873,14 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/190 + url: https://api.linode.com/v4beta/monitor/streams/228 method: GET response: - body: '{"id": 190, "label": "go-test-log-stream-1778228545091106000", "type": - "audit_logs", "destinations": [{"id": 447, "type": "akamai_object_storage", - "label": "go-test-logs-destination-1778228543905989000", "details": {"host": - "go-test-logs-destination-1778228536181337000.gb-lon-1.linodeobjects.com", "bucket_name": - "go-test-logs-destination-1778228536181337000", "access_key_id": "YVTTU3YQQ3N3ZHCJJ632"}}], + body: '{"id": 228, "label": "go-test-log-stream-1778673817548386000", "type": + "audit_logs", "destinations": [{"id": 503, "type": "akamai_object_storage", + "label": "go-test-logs-monitoring-1778673815866646000", "details": {"host": + "go-test-logs-monitoring-1778673809872719000.gb-lon-1.linodeobjects.com", "bucket_name": + "go-test-logs-monitoring-1778673809872719000", "access_key_id": "[SANITIZED]"}}], "details": null, "version": 1, "status": "active", "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": "2018-01-02T03:04:05"}' @@ -902,13 +902,13 @@ interactions: Connection: - keep-alive Content-Length: - - "586" + - "583" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Fri, 08 May 2026 09:00:42 GMT + - Wed, 13 May 2026 12:29:50 GMT Pragma: - no-cache Strict-Transport-Security: @@ -942,7 +942,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/190 + url: https://api.linode.com/v4beta/monitor/streams/228 method: DELETE response: body: '{}' @@ -970,7 +970,7 @@ interactions: Content-Type: - application/json Expires: - - Fri, 08 May 2026 09:00:42 GMT + - Wed, 13 May 2026 12:29:51 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1003,7 +1003,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/190 + url: https://api.linode.com/v4beta/monitor/streams/228 method: GET response: body: '{"errors": [{"reason": "Stream not found"}]}' @@ -1025,7 +1025,7 @@ interactions: Content-Type: - application/json Expires: - - Fri, 08 May 2026 09:00:42 GMT + - Wed, 13 May 2026 12:29:51 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1053,13 +1053,13 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations/447 + url: https://api.linode.com/v4beta/monitor/streams/destinations/503 method: GET response: - body: '{"id": 447, "label": "go-test-logs-destination-1778228543905989000", "type": - "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778228536181337000.gb-lon-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1778228536181337000", "access_key_id": - "YVTTU3YQQ3N3ZHCJJ632"}, "version": 1, "status": "active", "created_by": "dola-klipensk", + body: '{"id": 503, "label": "go-test-logs-monitoring-1778673815866646000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-monitoring-1778673809872719000.gb-lon-1.linodeobjects.com", + "bucket_name": "go-test-logs-monitoring-1778673809872719000", "access_key_id": + "[SANITIZED]"}, "version": 1, "status": "active", "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": "2018-01-02T03:04:05"}' headers: @@ -1080,13 +1080,13 @@ interactions: Connection: - keep-alive Content-Length: - - "465" + - "462" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Fri, 08 May 2026 09:00:43 GMT + - Wed, 13 May 2026 12:29:51 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1120,7 +1120,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations/447 + url: https://api.linode.com/v4beta/monitor/streams/destinations/503 method: DELETE response: body: '{}' @@ -1148,7 +1148,7 @@ interactions: Content-Type: - application/json Expires: - - Fri, 08 May 2026 09:00:43 GMT + - Wed, 13 May 2026 12:29:52 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1181,7 +1181,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/keys/3612270 + url: https://api.linode.com/v4beta/object-storage/keys/3687956 method: DELETE response: body: '{}' @@ -1209,7 +1209,7 @@ interactions: Content-Type: - application/json Expires: - - Fri, 08 May 2026 09:00:44 GMT + - Wed, 13 May 2026 12:29:53 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1242,15 +1242,51 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778228536181337000/object-list + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778673809872719000/object-list method: GET response: - body: '{"data": [{"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/08/akamai_log-168834-1778230096-574655-config.gz", - "size": 579, "last_modified": "2018-01-02T03:04:05.509Z", "etag": "d813902fc882bd45f7fde05f3f31c180", - "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/08/akamai_log-736574-1778230734-994568-config.gz", - "size": 576, "last_modified": "2018-01-02T03:04:05.895Z", "etag": "e207b8c8bec0f0625afdb6af551e866c", - "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "cloud-logs-test-connection-20260508T082224", - "size": 9, "last_modified": "2018-01-02T03:04:05.831Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", + body: '{"data": [{"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-006346-1778675096-541384-config.gz", + "size": 937, "last_modified": "2018-01-02T03:04:05.137Z", "etag": "dc2d7fb2b25df390fd4fea8728a30d48", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-011125-1778675186-265637-config.gz", + "size": 557, "last_modified": "2018-01-02T03:04:05.315Z", "etag": "b6ed960761a2919e39d6a7190d1fba86", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-013414-1778675161-799444-config.gz", + "size": 941, "last_modified": "2018-01-02T03:04:05.434Z", "etag": "67f8579915fda5b50c6615e478a9c65b", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-035060-1778674930-175074-config.gz", + "size": 1010, "last_modified": "2018-01-02T03:04:05.539Z", "etag": "ddce66c713986b25b1271600cd1d9a15", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-105912-1778675004-599304-config.gz", + "size": 5182, "last_modified": "2018-01-02T03:04:05.125Z", "etag": "70ab186e7f88c46f39a8b40c44d1df09", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-308185-1778675225-115697-config.gz", + "size": 487, "last_modified": "2018-01-02T03:04:05.733Z", "etag": "a55a4d3e71a264f2d8974f7fa18a3917", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-323695-1778675004-816833-config.gz", + "size": 1214, "last_modified": "2018-01-02T03:04:05.235Z", "etag": "e4b4d7128c4b6f3a7cdf8e8997a8b30d", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-419568-1778675235-950783-config.gz", + "size": 795, "last_modified": "2018-01-02T03:04:05.876Z", "etag": "dabf2d22aff3ad65a8f8c9c26676c7af", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-458683-1778675290-737341-config.gz", + "size": 487, "last_modified": "2018-01-02T03:04:05.963Z", "etag": "97d01c6375521765d0009a06d62fdc04", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-469065-1778675356-345017-config.gz", + "size": 959, "last_modified": "2018-01-02T03:04:05.877Z", "etag": "f7f311d44a73231af161c83fdf57f917", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-474128-1778675068-486979-config.gz", + "size": 958, "last_modified": "2018-01-02T03:04:05.773Z", "etag": "529788bcd5526711176ed416cc04753c", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-479737-1778675193-061392-config.gz", + "size": 698, "last_modified": "2018-01-02T03:04:05.112Z", "etag": "640c95154da901ffb0631ab8c2178169", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-496065-1778674830-216583-config.gz", + "size": 1736, "last_modified": "2018-01-02T03:04:05.375Z", "etag": "e1b1a10151e03cd1fadcfa381b421f55", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-508251-1778674750-124460-config.gz", + "size": 669, "last_modified": "2018-01-02T03:04:05.488Z", "etag": "97c275987f593f226c66b4e3a27032dd", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-586165-1778675053-094187-config.gz", + "size": 793, "last_modified": "2018-01-02T03:04:05.159Z", "etag": "8c186f0677428747dac9f592b463a804", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-690971-1778675305-009169-config.gz", + "size": 698, "last_modified": "2018-01-02T03:04:05.005Z", "etag": "44b1b1b98b6fcbbfb304e00b1529f7cf", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-779982-1778674997-551258-config.gz", + "size": 2944, "last_modified": "2018-01-02T03:04:05.937Z", "etag": "fbffdb30925aa787f338e14e28b33868", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-936343-1778674982-275775-config.gz", + "size": 2481, "last_modified": "2018-01-02T03:04:05.649Z", "etag": "efa889dd5fd7185ed1617c646559b86b", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-944681-1778675145-996597-config.gz", + "size": 590, "last_modified": "2018-01-02T03:04:05.490Z", "etag": "92bbcea08ac12cf0f3e5eee980aaa614", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-988431-1778675026-321392-config.gz", + "size": 487, "last_modified": "2018-01-02T03:04:05.960Z", "etag": "1523e180a90dea2ba7eefae60195aa7b", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "cloud-logs-test-connection-20260513T120336", + "size": 9, "last_modified": "2018-01-02T03:04:05.726Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}], "next_marker": null, "is_truncated": false}' headers: @@ -1270,14 +1306,12 @@ interactions: - max-age=0, no-cache, no-store Connection: - keep-alive - Content-Length: - - "829" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Fri, 08 May 2026 09:00:46 GMT + - Wed, 13 May 2026 12:29:55 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1285,6 +1319,7 @@ interactions: Vary: - Authorization, X-Filter - Authorization, X-Filter + - Accept-Encoding X-Accepted-Oauth-Scopes: - object_storage:read_only X-Content-Type-Options: @@ -1302,7 +1337,1105 @@ interactions: code: 200 duration: "" - request: - body: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/08/akamai_log-168834-1778230096-574655-config.gz","method":"DELETE","expires_in":360}' + body: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-006346-1778675096-541384-config.gz","method":"DELETE","expires_in":360}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778673809872719000/object-url + method: POST + response: + body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-monitoring-1778673809872719000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-006346-1778675096-541384-config.gz?Signature=4kWT%2FUU9ORlmnh6QBj7OZulciHc%3D&Expires=1778675758&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCghzSOf6zO3BCHH5qTmyC9AIWg84q4Wstg8Vn6czLndundU1GOxHGWbRMKjpHVnbuvdQgHdphQKL/pOMZBEZLssXS/qZ89mOqH%2BD5Q41rxKjLm578aOMrUvSfVgUNk%2BLObwg/WeYEWU21VMOsbK3d9hnt1bA2P0%2B5EsOy50rAtSJJoj0EkfiFcKERcn1oCvF5m31FtL8Gsr1SCpbe3M7Kp0HDEvs03tftf3EFrfLf/WUZJX3p5Rxh%2BSztxRtDNw8nFcpvwoXz64IHy0ugbV3oifA83QDn2BZpvWJKSr5A5A1vNaOa8G6jEQ7/Bhw8mS1uXGVFrE8OJ531XSioAvlUonnmzKLUI3g7jgdczlZkGWKuio9WIUP8dmOA6lzmWNIZOpeWrvWzcrGO1%2BI5I9KqHjCxa%2BVxzbG210xggU8nI7QnOllRgDNjYu/0LfqVdKRmcI8NPBucMZV1bEq35htIsNPt2jO", + "exists": true}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 13 May 2026 12:29:58 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - object_storage: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: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-011125-1778675186-265637-config.gz","method":"DELETE","expires_in":360}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778673809872719000/object-url + method: POST + response: + body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-monitoring-1778673809872719000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-011125-1778675186-265637-config.gz?Signature=VAOmyT9r3HWZIpxQq7sphL2Kp5E%3D&Expires=1778675764&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCsgEBJuadw8QIcXa1lGq4sSQnaOA6kHp6DoQ7Qg6tkLYcORF%2BLH1%2BCvGqc9blv6erUByETldPEKX1mTITREhTYtPaAgg/nLJVvpPw91C9SVMa9%2BYaZ6ObrDTyB1N9LXLhw1JOiudYgdCr7iqvAl5FPd%2Bbj8f5Blbxz%2BWTnZHAdouPjxxEbzp5K1BkYINWR5Lew7QJhVequiIFfcgs65FzXKaNuMRKiapeIw6kd5/%2BkZMP/nqhHEa62SaWnjGNomttR%2B7za7E6KXUtIsHfInh5raepE1qbgJcOdZ9M%2BfX3j06N9HLCX8fUsYlDsCpzElmt9axGnfonUZ72dBb%2B3NNdQ%2BnY4lNsn/dJqD5/m4F37Vj0xQZLyYkauyM7fm8Xi0615zZeyu0qgKe7mGYvJStSDTE3bYMArLGrWYj1Y%2B%2BZrMnwOUjsJ6QU6rGZ323UGk2WCIGyX7WQSaXr8lwW3NTrPfdB2NV", + "exists": true}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 13 May 2026 12:30:04 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - object_storage: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: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-013414-1778675161-799444-config.gz","method":"DELETE","expires_in":360}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778673809872719000/object-url + method: POST + response: + body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-monitoring-1778673809872719000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-013414-1778675161-799444-config.gz?Signature=YtbjxVoUBL9zLsYsTQ2uc2O0L%2B8%3D&Expires=1778675768&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCmtpNuSM1nWIJLY5jCR5%2Bd89he6pTpCAMrHcGhI/lQTVIWiG3/u6rUSxH6uykKuTfbkyRxGdcQLrkrftPHPmR2TcdDIUpTJ8Y97in/YZ3gzHs1ZjYO5D5N4%2BVwoDn%2BXlMrxovQrgQhb/MtRk3ocKlHTWHs6zIzGd9g61XEK8fVnMjsQ5R6YV4t1C3TObAleDsEMPfKhXL4MhypdbRYPHJK3Sm7HWz0PSSyfzOHbgLzXJWZPCO59YgFuiJYNzC%2B8A%2BoMX%2BNhoTCDpZKhYhqaf%2BJRHHLvSL3H4y6YtqVvg%2Bsef64LEqSyuayRGOF0nNW%2BUtlXdgckKx1CCn2grMo4VP9B8W7v4A2ilvu8tN5dliYSf%2BF6I4ceSQToS37p3ShWDn7VY2YnYKKQvUs0gCvIvMHricn4D/F1TdbdrsjrngjWiGeFZEGSwgCLaxMIjbOI%2BC5m4kA0UkVw0LNSfrYc87576JNDo", + "exists": true}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 13 May 2026 12:30:08 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - object_storage: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: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-035060-1778674930-175074-config.gz","method":"DELETE","expires_in":360}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778673809872719000/object-url + method: POST + response: + body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-monitoring-1778673809872719000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-035060-1778674930-175074-config.gz?Signature=Ilfubq1BtJHZhiH148wW3kHDZuU%3D&Expires=1778675773&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCg16p17PteTMJbyNBanNNUPJFLIolPxKWrf1eLWliVDsCy7wLmrTjZyPpIfkriwr2pc31V3up46xqdkykylBDS60Lq3MlPG2HhdQLewnSbjyqfUhZDGZZD%2BONUAsiTUIbX/mPYVRFhQL5w49DYNqkiJFzlbKriZVYVA/3kefM1laC66kKDvQTonHUpQcVuZU7RE5mZhljEhIp2mIO7eUtzE1ht1RuKWbP2wn%2BhtBFQBB/sKTgVx6%2BRUI7zWDt0SZwOocXGMg%2B%2BslAR8anadH2TAG/hbpCQMdWghlMpwewJ2/ONzlUeQqbHk8opNaxWwvjq16QsTlg0XnPK9ocWb0DXT0Y80beZe9%2BS51iDSHQW4ZaECTfkU%2BsZ6X6MdgsqCTbQifPH8BgXcjjuPUIm/HNLeHUe0qwWX8QFTPVsGEecrtplAf%2BzMQwNNy9GheO6Qkm5/2fLSmwdhdYaxW3FfhB0LGcm%2BN", + "exists": true}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 13 May 2026 12:30:13 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - object_storage: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: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-105912-1778675004-599304-config.gz","method":"DELETE","expires_in":360}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778673809872719000/object-url + method: POST + response: + body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-monitoring-1778673809872719000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-105912-1778675004-599304-config.gz?Signature=K4vgb8go9oz9u%2F5%2BhHHc%2FDTfBA8%3D&Expires=1778675776&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjClG8mBBbeJT975HbGkoo%2B5/QkWYcH4JsUoVDNHckam18kKT169icaLgLTMfRiIMMnhbMVK/1JQCCdePcEu5Czw8Mf3wdq4VKfnO73FVcJNfjPAhwlfGQhg3ScXdiDjNLPUKiwrrtciDbcNCC6nZktjoXCl29NLXcZOsFbHJMnA3xAgO7QJtcJgF8BAs6yN0ZmW8S5%2BJs4G2CZQnuGK3xVBtkPeS%2B52p7yk14m/NV5Ndodjml%2BzT1vJt5MZg32zlMW7keHsDsHH2bQwtXryMTPCdTAnGL0FAVBL2bmon%2BvGTlZ80phpwyusjhAKy6fSTHXkbMoX6e6fRMqHAV/lTnOwsXH9eb/Rp0Gr6V6ADwC4JrjyjMuAyrQRwzm50M02YjcT64d3sCOz5wmW8Jl5C2OKKravOKijrQ5hBxpfSiGiw6f30UhWbhv8y9YEKhoSgtxT92SVBQU1sVQbNrC9aUf8/ebjQs", + "exists": true}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 13 May 2026 12:30:17 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - object_storage: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: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-308185-1778675225-115697-config.gz","method":"DELETE","expires_in":360}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778673809872719000/object-url + method: POST + response: + body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-monitoring-1778673809872719000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-308185-1778675225-115697-config.gz?Signature=CzgLrJeFojFbAESeHzd70GGJiKE%3D&Expires=1778675780&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjClqIekzr%2BLohpCt0gIo7fMjNiyrxi47PlWknb/6rKqTYe5WINqyHQIhRdEKiyJZXdGvAHdFvcgdGRz3oZMLACZ6LCa3Z28HBVcaU1iXHICoRz5%2BmF6J7uuB7BR/rD5FAMI5xDT0x5RAS0OZT9r7acbjczVTuDUQGmtbE0QdeFVDc2hvMhpB7YwXA8KA8QrTvwIili/%2BwUJvc/5zgvrIjotLjKgWHTogQz/qn2XtU/a%2B0PFhW5B9L0uLrS1o8avx3f%2BDo3xS3SjVqG6lRN6kkUT4yu7JU7JcOQwlq1OgXpFpyDbeW53%2BKkg49XuL04cZXJ778A1rvhQW/XTpbLE1cd50DA7Ue1YW9Ya1ZLOqfjGS9X%2Br9ubtVGD2PmtMHVH4cGqdDWFRC1uJNvKtn5CiDftsww6FbJewWGq25LbWoBmxhq0b7RqDDyczRiw%3D%3D", + "exists": true}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 13 May 2026 12:30:20 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - object_storage: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: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-323695-1778675004-816833-config.gz","method":"DELETE","expires_in":360}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778673809872719000/object-url + method: POST + response: + body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-monitoring-1778673809872719000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-323695-1778675004-816833-config.gz?Signature=Yr%2By%2BrwRGdMXthROk0M5fFDyOlY%3D&Expires=1778675783&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCiu9dL26tpDAO79X0RnPb23p3MuybTFOXkyJtlm6ZjN01QRtMUlb1htCuzQqslRDtNt/0xQz9nVkNy/9uvpg7%2BBeIbj7LABWExYiZXK5J0gAmrEC77VndD1HWp71NCyt9XV5ERoS38TSi6H5PGXXyWxNNuNbSjIclj7sz4FqoNd7qkYRvI1laQRcK/QRtlypcoQtKfOc9vQ36kp4InTFEeoy3nZPipa4DeaqbN1YoKl5JEpuoJ1nJzuEYzaUxetjnZZe4iFxFzKeuUjxKgdFLrcJWVN/Gze4iEq%2B/hSAtUFL1ZeglqdpirP5eZU3iCFTTGQbDmqxq6r/UD4n9EABofERZaLfD12461pbcCaCK0J6xtxZGp2bC%2BgEn9q15Hb%2B3ZeROIs3HoIsfvNVVIesce0sJ4Mat9q3xMEn3dcvmsFHQPJsoU46LpVH/u/eqBS8tCzEe0aXvHM6%2BRq3Rt7etzN9jgK4", + "exists": true}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 13 May 2026 12:30:23 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - object_storage: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: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-419568-1778675235-950783-config.gz","method":"DELETE","expires_in":360}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778673809872719000/object-url + method: POST + response: + body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-monitoring-1778673809872719000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-419568-1778675235-950783-config.gz?Signature=D7QJ4W4ZkoW2siaNlcsHbZ50YB4%3D&Expires=1778675788&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCnlW1KSkiKFD7HFEgGZ996Mwr0hus01F16k1XL3AO/H9IhCdMAgHBDj9VWFQvY49Ie/uocgrS%2Bgkm00d8uW8iThoJFyLrS52DuUwBDVoQ7G%2Bw5k/AC0fKKGAdeWjkwA1YEyzyFtftJxQi5AB0PedYW2RjF0baNWj7ga%2Bp2Bjb7oZLcEBGj9r9PbDWRCGoIWWeLbWhA9gOYx2LKWms0dQOrp33Byfe012PmOkVig17L7nbXkns3Oo%2B1mETnwr6oy6huIEI7gj%2BxWuzjIxWdCeDa%2BNM5RUnF9FFva7KBR3NNvdbNcPznTxGxQewCBZJu7b4s/9OBvbLpl/6Wa1wIR3GewzFg6D2E4lwYa9eQs3CzaQ/Dj/rpiJAUhcAtOiqxXQooFgHvgYGE4SFdizg9c0s5F4bfn7MxsyHrH9kw3SUcNplRC92hmNW0ZWEiRUIHOmxpCmxXl%2BP5FJQn0EsHYib7W4Kjln", + "exists": true}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 13 May 2026 12:30:28 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - object_storage: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: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-458683-1778675290-737341-config.gz","method":"DELETE","expires_in":360}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778673809872719000/object-url + method: POST + response: + body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-monitoring-1778673809872719000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-458683-1778675290-737341-config.gz?Signature=uqMsB3DbYyQcKP9TBlFSztlA5ng%3D&Expires=1778675792&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCthg5VU3luSfPMW964RmsU5bFlDZG2BCN2Ch63H%2BqQt3V1XiHdLvnNgwBCKxuWEg3WnLCthGgWXBRcA39bZKMMwsSVuWoCoyf8XZEGrSm4SmbfXFeQ3YCA%2BvPk0rqJX7WQId%2BulhXJzplFpXibdo3Z%2BvQCfBf4zbqwV0xbxUE77KQ38c7TiJFU14b%2BsdFji78Vap45IqCQX4Z5FuRjMztZLJJ%2BwXxaNRxsOOC%2BVLhK94uEzsWtoReGjGgyvS5kWzM%2BEwuFqPtyWjc//PoFfQlEzunUYDMi1dWh8IJGFvMaSZ4J3HnLSlbIMOSz1v5uelvGGofLvaSX3GuLeDZsMOXyycF/dOr2klkoTwKeDgS6oA7cxIaJUQUNUTiOVm5wtaBjndkDVPlZMD1z7UAfGmubpk1R0v3dKNwdWXukqGCUUEKuJ8TRYmMrwr%2BsdQvbG3zgf/kDWQqo3fytDjFdUm2A%2BQJbRw", + "exists": true}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 13 May 2026 12:30:32 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - object_storage: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: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-469065-1778675356-345017-config.gz","method":"DELETE","expires_in":360}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778673809872719000/object-url + method: POST + response: + body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-monitoring-1778673809872719000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-469065-1778675356-345017-config.gz?Signature=3Ut1IlJddD4uuw7HoX835nlens0%3D&Expires=1778675795&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCvlvdM6GVyHdBadYbdhDNTJnen%2B/SrS3w4zRfSaGbrzLNFRVDiaBlS/RlygvLTgcm7RlK5R1/p3Ly47LTDhJg3vvXXk8UBh3PYW3UmDx1Gw22jOXf2d5WG0ebc61Duyx65x78MOufbV5j6FpG%2BNIl9tM8EXoKr1Iv5UB2h8vlfmLO2yVEs8KIRxosVRhRG0WgG/jUpbSUglrwRalxPs8Y6/BDR4nADdsxAZU8UHzg3VmfVE00upgcqahPtZmsMiGs1b28oQSSWytP3g6u1%2Bgjsve/N1UOu9FqraeSbZEQebnVY39bcaGe1tFEppP2rRkh0g4uLpj161eMmsXGPJOqCbZkIyraG1gxIjBnxXA4UhiW5voYMTiFSFUDWlJyI%2BPau3e/qQdMgsCjuAuOi3AuO9ZJey2y%2BTZdMIGNVTTh1Yh9uyFeaQZvf%2BfXcN9Kj%2BXFoZ2eiL5eikRCCtYQSD1es0xW9jj", + "exists": true}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 13 May 2026 12:30:35 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - object_storage: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: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-474128-1778675068-486979-config.gz","method":"DELETE","expires_in":360}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778673809872719000/object-url + method: POST + response: + body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-monitoring-1778673809872719000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-474128-1778675068-486979-config.gz?Signature=DHsnZi3xe694BO4ZbyI41rzrhzA%3D&Expires=1778675799&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjClmAX9%2ByGFkKWJxS81l8K7AP4wD/7O6Cn%2B3xFUeZJVib67FCZFiihvg7Yt/M%2BWb3fGWUEJxqbscVVSgz74pPE32bso/tzgw7QcCyj0iQWdZHcDabuKvQf065Q33D3U8TofO14MtHPQ33Vy8%2BOMiYBwB8e2NRZyMOxV7iOgeIJesZH8or%2BTzr8uFC4jlWVoGMYNhdDcG3rRjfGaEnMkrc3r%2Bz5baBuV7PxP2PFTIherFD9%2B7Z4naQ2p/jzusx2RGTB73AxUubNX5bXXOuwjgN5ttMf1Obu0HUvjHEAbepkdwmW6qMkqobpjXEFkwvQp7yjgF7ZLsZ/U22d08E8G8RwS8H69k6BLcknC0OHrmInCKk/LeYZIS11KikiaQHByiWYuG4W%2Ba/fmpjCKxbKyooj%2BH1UVDt8LMdmfPlpdUm6e3L%2Bmn/uT0DtWkh%2BUk5SpC3en8aX/Bp4/EL7HifwEV3xsOdaZaA", + "exists": true}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 13 May 2026 12:30:39 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - object_storage: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: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-479737-1778675193-061392-config.gz","method":"DELETE","expires_in":360}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778673809872719000/object-url + method: POST + response: + body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-monitoring-1778673809872719000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-479737-1778675193-061392-config.gz?Signature=0RKRAo960fJP7kVK31WcdnWfc9U%3D&Expires=1778675803&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjChikQlUtAMyHeHoq/O4tzDJnCpONmPLNESDHcDl031z/EpNoXpRdKBj/Xpr9sL1906VR/bVze7kmAxG%2BrvdwXdFEjBe2jE4Fi1qHnskD7lVK0ILUtFSWIRSndiN6JUuIRkw/yJyXgZ2JXIKWl3g9piPhCJWFknAQ5p4%2BfVK3bg7Jh8HlXsfTZTaP2qesBAjpGXBLoxehMtrZTAK9EvFN8daPHvAql9y2poIicFt1Xs3EuGboGWduv4GVN5592UdX5SyRj0y06957OF5LgbjqwRPsSxE4YJmGLYVqYb/D3nnTy5T47ay/7Uv7j7QFT2XLAyKMfT7vQ6FaVA1n0atXsmf1/lZHA5WGRoxLHcryfFtiMEHH%2Bj0UgtvCUSeHzMz%2BD3TzpRgxYQe50gPqw6I9JmlOgHk9H8F8kYbiimp/MGAoD1PbtLZE1giBixtK0bYkt1bkmSl7fQbRsypwF%2BeS8aSlPIUI", + "exists": true}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 13 May 2026 12:30:43 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - object_storage: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: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-496065-1778674830-216583-config.gz","method":"DELETE","expires_in":360}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778673809872719000/object-url + method: POST + response: + body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-monitoring-1778673809872719000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-496065-1778674830-216583-config.gz?Signature=d9RAQj%2BuVcHeyNCjSh3s4i%2B6DZY%3D&Expires=1778675806&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjClmAX9%2ByGFkKWJxS81l8K7AP4wD/7O6Cn%2B3xFUeZJVib67FCZFiihvg7Yt/M%2BWb3fGWUEJxqbscVVSgz74pPE32bso/tzgw7QcCyj0iQWdZHcDabuKvQf065Q33D3U8TofO14MtHPQ33Vy8%2BOMiYBwB8e2NRZyMOxV7iOgeIJesZH8or%2BTzr8uFC4jlWVoGMYNhdDcG3rRjfGaEnMkrc3r%2Bz5baBuV7PxP2PFTIherFD9%2B7Z4naQ2p/jzusx2RGTB73AxUubNX5bXXOuwjgN5ttMf1Obu0HUvjHEAbepkdwmW6qMkqobpjXEFkwvQp7yjgF7ZLsZ/U22d08E8G8RwS8H69k6BLcknC0OHrmInCKk/LeYZIS11KikiaQHByiWYuG4W%2Ba/fmpjCKxbKyooj%2BH1UVDt8LMdmfPlpdUm6e3L%2Bmn/uT0DtWkh%2BUk5SpC3en8aX/Bp4/EL7HifwEV3xsOdaZaA", + "exists": true}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 13 May 2026 12:30:46 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - object_storage: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: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-508251-1778674750-124460-config.gz","method":"DELETE","expires_in":360}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778673809872719000/object-url + method: POST + response: + body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-monitoring-1778673809872719000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-508251-1778674750-124460-config.gz?Signature=jmlQGWir3gP%2BGj87b60ZbBRsLDk%3D&Expires=1778675810&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCmFwLIDk1002t1JzytrAAqh3NH7Ya/5BXsbthrYfLx0hzx1Hvp1i9wzUDJnVpXNrshDabfWW1oqUwd1Ku7Ynoh00uJmGFKgIxGo7RqzlE38DPa4xDcjGku1QSx3W/kEzOhzI470g874SJB7/5d0l02p5g5rBoBxwLMQe0lmhiQ6EWo%2BvgNTXLdCiM30X4QQPDkgP%2BXSj8u4DoMo7qAx5wIUyPxunRygoqmYZjP/CFr%2BptKGnO%2BDD9aoeeAVwbox52byrjgeRA/Pr53ISnAvIZ1N44GGcJiNZ7GV277Sw49ZFwxm0q8Ybs9GTMsSwtNpqaWbNyXRuke9aKOraumE1rH/auQlunAY3omLXPwKD3TB7bCEVdRyahD/oyb66CmFEqAUGejs2gHrqiqqC7aWPHGWTNbYyvwUPrerrJAfbFlZ0Izf2mz%2BwaIkjasiFjwLlHEJUHDn9Kqt0kgLvYB9bk1oICHid", + "exists": true}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 13 May 2026 12:30:50 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - object_storage: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: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-586165-1778675053-094187-config.gz","method":"DELETE","expires_in":360}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778673809872719000/object-url + method: POST + response: + body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-monitoring-1778673809872719000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-586165-1778675053-094187-config.gz?Signature=wj8h2mHjni3TIecQxUBQHSislNQ%3D&Expires=1778675813&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCr4TAkua6lvtDa350ElSAhSLZb3gHbKPP3E5oK/FKUlRRFuLFGe1gTBRfpwnS7bV4VbZ7SS3QOjcYP4eprU8Wb4u7osrWoNJd1/wEWHkmdSgt6oCsrMuDYk67MXNpng3hnbkVcyoYiu6NP/p5DeSaKewQ4fL7zKnRpsMNNS/jc6kmnXvEW3lhlZ3i3aP2wM/Vnut3TIWOoWRd3Cu8mc/DlXfoM1a%2Bs7ZfvZ07vFucZmozkwlwHJ4KUvUQ/FeElSYMtIpidQEvYL9HUbjdmR22gSBcDi96NxDNh8Mjiv6CuOdBDoSejxwuVyLItRfpqXybSopjXmN0Hi%2BduUtia8YEGad6om9Llv9YEodz9WFufG%2BG68hpQALtqK2s8Tmm1DkZTaa8ldbzNiRoham2Ho0drNZa1GvEkcUv6Xs0OgW%2BKVrr1eqDTiR3KRQXyjuGUu94k8O597XQjE1J2/p4ZhD1QpvK7Mh", + "exists": true}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 13 May 2026 12:30:54 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - object_storage: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: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-690971-1778675305-009169-config.gz","method":"DELETE","expires_in":360}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778673809872719000/object-url + method: POST + response: + body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-monitoring-1778673809872719000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-690971-1778675305-009169-config.gz?Signature=AcgEUwruifXFHYka5FBlYXLJVhQ%3D&Expires=1778675817&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCkcFVG1OtYRJvThxBqjlOhNTXRoPtz59c8uThmbq/JdBAsogiCpjYbAT/625Thha/D7SjpXC226rhW4HwJdxtnEI1EhYGjH5GS64ybb%2BbH9/o8%2B4ENCbZfPki8VHGCsyY/N78HMz9FFLIlno1eZ%2Bp4%2BCyBlBYR5rfi4Ze8cx1kkmG%2BNgxAv1VqldWU61NYWeWp3yH57pyMQVy3kWrQ3QeeVZvQsgnILEPGzfiSc26yYXy1WIcXUOpvS5kgMSO%2B7DqS6TkCKyONQ6kv5QpjOKzI8MLTLgRKa07eUhdEgiLh32OrdLtx8lF4p9poeaMMG7VCsVu20NzkDXIL3EZOdx2QODExvhYnr3ncQf5%2BPx9pM/%2Bjxk8dHke5M2%2BlRF66bjilxza15EqB7WVvMfLHIDbm/Z7VlTwiSn9jIksdsKD8sppDP4/99LgfKld2KmQSPHSvJGCNh1RMgzQj3KtwmtFewl9Fg0", + "exists": true}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 13 May 2026 12:30:57 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - object_storage: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: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-779982-1778674997-551258-config.gz","method":"DELETE","expires_in":360}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778673809872719000/object-url + method: POST + response: + body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-monitoring-1778673809872719000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-779982-1778674997-551258-config.gz?Signature=8sIKOfjUW7x1G9r5Wvd6IlJbD70%3D&Expires=1778675820&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCsaaRinoeMCEE5APouOWjPurkpj8m2Pw4w9VkPaTlkNKr5DlP7ePxlsGicHrSBDsOlMWOhHxFfEGzjgq8U7kfSfnF8Fz8WKZlgrfkBrVYkIW0ka342BQgjqJUklhLhievlOMaKs65m2WgwbznH06Of9OxJlNHQpI7iXLsyCreO/Gi4lONdakQAzEoiMbmDmc4aOXOFqzxwXvsdaxsCSwWnIA5oVMvp6BT1GGw6K8ymfDtpi18DZsd4VLUjD4blHGKkNFALtW0WCpQCwRBIungHzd/MIMMugAu4UkCQk70sEDekrVUYhzkQAcNBQp7Z023/vhTf6g1h66wawavDbNVC15NufyWSiUCh%2B0kLJuZ9FIDcJP48c/j/YlbE6k5ONeDUoPyrNhAnj46hpzIzZQCO2vH9NnF0C1Ahoy23agzqvg70NWrsVr7hNT8f%2BurXF2IXNAm%2BKiPUrTSwCUcHcmDghGpXSF", + "exists": true}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 13 May 2026 12:31:00 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - object_storage: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: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-936343-1778674982-275775-config.gz","method":"DELETE","expires_in":360}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778673809872719000/object-url + method: POST + response: + body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-monitoring-1778673809872719000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-936343-1778674982-275775-config.gz?Signature=bkvxiMhKxAEXFcOBngathwBJ7cE%3D&Expires=1778675822&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjClmAX9%2ByGFkKWJxS81l8K7AP4wD/7O6Cn%2B3xFUeZJVib67FCZFiihvg7Yt/M%2BWb3fGWUEJxqbscVVSgz74pPE32bso/tzgw7QcCyj0iQWdZHcDabuKvQf065Q33D3U8TofO14MtHPQ33Vy8%2BOMiYBwB8e2NRZyMOxV7iOgeIJesZH8or%2BTzr8uFC4jlWVoGMYNhdDcG3rRjfGaEnMkrc3r%2Bz5baBuV7PxP2PFTIherFD9%2B7Z4naQ2p/jzusx2RGTB73AxUubNX5bXXOuwjgN5ttMf1Obu0HUvjHEAbepkdwmW6qMkqobpjXEFkwvQp7yjgF7ZLsZ/U22d08E8G8RwS8H69k6BLcknC0OHrmInCKk/LeYZIS11KikiaQHByiWYuG4W%2Ba/fmpjCKxbKyooj%2BH1UVDt8LMdmfPlpdUm6e3L%2Bmn/uT0DtWkh%2BUk5SpC3en8aX/Bp4/EL7HifwEV3xsOdaZaA", + "exists": true}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 13 May 2026 12:31:02 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - object_storage: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: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-944681-1778675145-996597-config.gz","method":"DELETE","expires_in":360}' form: {} headers: Accept: @@ -1311,10 +2444,10 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778228536181337000/object-url + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778673809872719000/object-url method: POST response: - body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-destination-1778228536181337000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/08/akamai_log-168834-1778230096-574655-config.gz?Signature=eGiD9RrnaNQMseeEkmczIFkCvi4%3D&Expires=1778231209&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCsRrH6m0ZwYhYaXqC8lUitmdqDP5/Zg3yQc8%2BcVdll%2Bfj8Xtd67owGW3esAQbhEvI/8/miNkMARuWqUKv8RauR5WuezfVzohSPfJpwZmi2mMDILCHSi3sQGCTFMwgHvgWaKgGE7QY6ESk2IyF479q%2BkFfhgP44yGeyQ%2B1TnD/bSskfsNHyrhENyxiPG6riXxC2lUu45SXpbwEyGcXgZREqktLELGJ3JezAVzPJmdUFP1YVdFuWUfjbv/ZNI2qpxjPOebbyZeCBpOkg3TgGrmWZ9HUZ0NEBBXSgFbRMcyEjV6xVi6/XGC7EC3wM%2B6x3NgWSb1R8Xr14sg7BSGcaJ9k15Bec8YYOev4b5XxApK7oecWEacyMzhycPGrDKySDt2hKOPnUeajWsS7AwIHS8o8Wmt2UC%2BEx9lXsEYxUYKq1OQExYMaFlX8MmBH/n1YYW13kKgjkcNF%2BshGaGEU3lPG4c2%2BhNi", + body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-monitoring-1778673809872719000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-944681-1778675145-996597-config.gz?Signature=4ieD7o9jPjAZ%2BzdQPOd3HAeP2LM%3D&Expires=1778675826&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCmFwLIDk1002t1JzytrAAqh3NH7Ya/5BXsbthrYfLx0hzx1Hvp1i9wzUDJnVpXNrshDabfWW1oqUwd1Ku7Ynoh00uJmGFKgIxGo7RqzlE38DPa4xDcjGku1QSx3W/kEzOhzI470g874SJB7/5d0l02p5g5rBoBxwLMQe0lmhiQ6EWo%2BvgNTXLdCiM30X4QQPDkgP%2BXSj8u4DoMo7qAx5wIUyPxunRygoqmYZjP/CFr%2BptKGnO%2BDD9aoeeAVwbox52byrjgeRA/Pr53ISnAvIZ1N44GGcJiNZ7GV277Sw49ZFwxm0q8Ybs9GTMsSwtNpqaWbNyXRuke9aKOraumE1rH/auQlunAY3omLXPwKD3TB7bCEVdRyahD/oyb66CmFEqAUGejs2gHrqiqqC7aWPHGWTNbYyvwUPrerrJAfbFlZ0Izf2mz%2BwaIkjasiFjwLlHEJUHDn9Kqt0kgLvYB9bk1oICHid", "exists": true}' headers: Access-Control-Allow-Credentials: @@ -1338,7 +2471,7 @@ interactions: Content-Type: - application/json Expires: - - Fri, 08 May 2026 09:00:49 GMT + - Wed, 13 May 2026 12:31:06 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1363,7 +2496,7 @@ interactions: code: 200 duration: "" - request: - body: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/08/akamai_log-736574-1778230734-994568-config.gz","method":"DELETE","expires_in":360}' + body: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-988431-1778675026-321392-config.gz","method":"DELETE","expires_in":360}' form: {} headers: Accept: @@ -1372,10 +2505,10 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778228536181337000/object-url + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778673809872719000/object-url method: POST response: - body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-destination-1778228536181337000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/08/akamai_log-736574-1778230734-994568-config.gz?Signature=A2W3p9tGALKMn1W5HhWBASYjRfQ%3D&Expires=1778231214&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCpNtUroB9hJycHjjX30%2BbwY2FKX4BgxIGdvL5ZUbWf6Uh/EUV0A06jlR9/vw/IlEOwoOpolFU2QJx8Z7330i34Kt6nqR47SVk8aTMBHrJwvT%2BvYxJ2Qorg/xy171NEPgqoyjYY1Vx7qE%2BJ8e1KqiXtSnZTnGXasFZfCi4zfuVxn4gKg48xB1ZyUTdXeruyvE8Pi3XHPsuyeWVW1uVFtcAyLu5NYq2oa0IuEcD0A3MAJMkVoo1veXyBGv/39WjJvwKWgBedhEko0NXsKPhGthy%2B5NxSmsBAnx036IUakBPvjv8dhXP1GhXKXsTfDARvt9aBFe1kNQlZgUOkagt1dzZ/4mEPWxuSFA23/PEPRpZr2PRbouH8Hu0pa959znPc18mShOUs0kRafTjM96W4k05rti4eufJut%2BTSqWYmfHwraJb9VZ8D81Z9tMUx5Od9lw4zPWp%2Bgn4M5Si2KBif4mEywRSgsL", + body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-monitoring-1778673809872719000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-988431-1778675026-321392-config.gz?Signature=cVGBk68KawRFUyI8fv%2FvavJqzAI%3D&Expires=1778675831&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCuSIg2D80v4%2BoPAI1wEh3f0iNUKnVvEDH/CbTJsEMI1cIveLQAaRpXE76sbMBWVQMLMt9H9KNdkXaQSVKbe2heZuu2iT1kWnzn2Lzezd5rNyBf%2B0TkBm/IKKt0mkWpUzNdtbcafzOTIMBbyw1QbHHdxq2kJxmoQC0ReQ8VDrNproKisZZcC7Cn7GlLwQlznzl%2BnnkBaZTGsXKtwifR4I4NtDl0tCri8Ts7VY7gbk7nt%2BsFIWWgJW4NImGS1a1GnpWFOgtoaSflCps2A53q01JtE1AotVkCHZn6B7/Yfn%2BjXdPGHnG8ZZuEtygYKWxlQDZ/4GH9biHxrH26zuEaQ8T5flKcEQEwBOIvCBRAyF3jVVRdETEnxL1WMv52AQlFwjlIqtRH8fnXRM5eKqrqwbRd3JR/RJYda2HbKILCfCKBsNSgCUnDVciMARQy6lOlTIYJf%2Bt05z9qsHUg2kdIb35cn0Ozxo", "exists": true}' headers: Access-Control-Allow-Credentials: @@ -1399,7 +2532,7 @@ interactions: Content-Type: - application/json Expires: - - Fri, 08 May 2026 09:00:54 GMT + - Wed, 13 May 2026 12:31:11 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1424,7 +2557,7 @@ interactions: code: 200 duration: "" - request: - body: '{"name":"cloud-logs-test-connection-20260508T082224","method":"DELETE","expires_in":360}' + body: '{"name":"cloud-logs-test-connection-20260513T120336","method":"DELETE","expires_in":360}' form: {} headers: Accept: @@ -1433,10 +2566,10 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778228536181337000/object-url + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778673809872719000/object-url method: POST response: - body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-destination-1778228536181337000/cloud-logs-test-connection-20260508T082224?Signature=6jw4hhgnDwpouxNzxtDLpeEl894%3D&Expires=1778231218&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCpiBVrvzXxUhuB5f7Hp7iBSwGN0/pIn3YbxcGwWSjPgrHHDT2M6iMT6nTpJGDo5b/cmP/4EsMKpnynP3rKM7gizs8SemFxAw01C/ANGIU9po5XDiWZBiLJk7DxP0Q9IWJEG43EsBkoztZdqiugC2WVME0VFZ1oeImLmTPOobSvYhryg1VKx3h7KnPVXNcj4Jq4OREpiTZEEEAeuff3AWEVHBt59GfH17HGSuyOq/gXAjTKLVMuRH63S1LV91/2jYsPA8ZiyiGXZ0M019L73oth6t64rwZCo%2BpgZyi5EC9TxTnFC/qI/CXJ/jKILK7Vw946NUmC64kMzmxQVkUDIccBBNbaMDt1dRxVFIMWkwL6NyszFl7P8alJRT4tyaZdgyvzwZ7PhKRh9tZJ5hKb9znPcZN2aV8iIfLeR7JclIv60ADUR7KPBKnZZCsenQGHmYgLJL35lyf1PpU79/CVWaed4qKDGW", + body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-monitoring-1778673809872719000/cloud-logs-test-connection-20260513T120336?Signature=wuueYrkqltxZWucY5VcxlSWwzNE%3D&Expires=1778675845&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCjCoSs3JGLRiwrTpof9haQWTHW%2BzoLs8pJAhOdFBzruo30lzVvbtClwxzu2fFCLcc32ek/b15VR8XEne3x99dG10dQVyllxVO4vqVire07rWwiXmBrTIvYQUnnE7ue8w66Em5CAwMlvEnyp6kyob8NA9a3udm5pHPVXkuAOrUbV2DFOHMZWPibYPRCWtVdqW8Yww1EozBJ/rfouKzQTJ4t22q8Rcz765xkZO0KUjK77VIzRIu7zc6feuLDVT%2BcQu8x7kYAVPM5VQaHLsLDJWsJaH2xWiPMCoMAYKmnAIa%2BIZ9X3Ii6BsIqZ3qAKr4Ni1lQwV6%2BfgQf3ipCCbdlTB9mBeGzjTyzW/LXyd%2BowVWDlSmSgJS9iuhjjB5i64K4KikoVjhd/dKwQuz43SO6jpnJiL%2Bdk3LounZRZyA1EGALEmb3SRbkYbxyir7p/TV%2BXIVspP2hjlrJJZciWJopABml3XNp82", "exists": true}' headers: Access-Control-Allow-Credentials: @@ -1456,13 +2589,13 @@ interactions: Connection: - keep-alive Content-Length: - - "837" + - "848" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Fri, 08 May 2026 09:00:58 GMT + - Wed, 13 May 2026 12:31:25 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1495,7 +2628,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778228536181337000 + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778673809872719000 method: DELETE response: body: '{}' @@ -1523,7 +2656,7 @@ interactions: Content-Type: - application/json Expires: - - Fri, 08 May 2026 09:01:05 GMT + - Wed, 13 May 2026 12:31:31 GMT Pragma: - no-cache Strict-Transport-Security: diff --git a/test/integration/fixtures/TestLogStream_Update_Destinations.yaml b/test/integration/fixtures/TestLogStream_Update_Destinations.yaml index 49dc4cd50..f4db97d1f 100644 --- a/test/integration/fixtures/TestLogStream_Update_Destinations.yaml +++ b/test/integration/fixtures/TestLogStream_Update_Destinations.yaml @@ -1,68 +1,6 @@ --- 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/monitor/streams?page=1 - method: GET - response: - body: '{"pages": 0, "page": 1, "results": 0, "data": []}' - headers: - Access-Control-Allow-Credentials: - - "true" - Access-Control-Allow-Headers: - - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter - Access-Control-Allow-Methods: - - HEAD, GET, OPTIONS, POST, PUT, DELETE - Access-Control-Allow-Origin: - - '*' - Access-Control-Expose-Headers: - - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status - Akamai-Internal-Account: - - '*' - Cache-Control: - - max-age=0, no-cache, no-store - Connection: - - keep-alive - Content-Length: - - "49" - Content-Security-Policy: - - default-src 'none' - Content-Type: - - application/json - Expires: - - Mon, 11 May 2026 14:38:34 GMT - Pragma: - - no-cache - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization, X-Filter - - Authorization, X-Filter - X-Accepted-Oauth-Scopes: - - monitor: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: {} @@ -438,7 +376,7 @@ interactions: Content-Type: - application/json Expires: - - Fri, 08 May 2026 18:40:53 GMT + - Wed, 13 May 2026 16:16:10 GMT Pragma: - no-cache Strict-Transport-Security: @@ -464,7 +402,7 @@ interactions: code: 200 duration: "" - request: - body: '{"region":"gb-lon","label":"go-test-logs-destination-1778265653315370000","acl":"private","cors_enabled":false}' + body: '{"region":"gb-lon","label":"go-test-logs-monitoring-1778688970264733000","acl":"private","cors_enabled":false}' form: {} headers: Accept: @@ -476,8 +414,8 @@ interactions: url: https://api.linode.com/v4beta/object-storage/buckets method: POST response: - body: '{"hostname": "go-test-logs-destination-1778265653315370000.gb-lon-1.linodeobjects.com", - "label": "go-test-logs-destination-1778265653315370000", "created": "2018-01-02T03:04:05", + body: '{"hostname": "go-test-logs-monitoring-1778688970264733000.gb-lon-1.linodeobjects.com", + "label": "go-test-logs-monitoring-1778688970264733000", "created": "2018-01-02T03:04:05", "region": "gb-lon", "cluster": "", "size": 0, "objects": 0, "endpoint_type": "E3", "s3_endpoint": "gb-lon-1.linodeobjects.com"}' headers: @@ -498,13 +436,13 @@ interactions: Connection: - keep-alive Content-Length: - - "306" + - "304" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Fri, 08 May 2026 18:40:58 GMT + - Wed, 13 May 2026 16:16:15 GMT Pragma: - no-cache Strict-Transport-Security: @@ -528,7 +466,7 @@ interactions: code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1778265658233890000","regions":["gb-lon"]}' + body: '{"label":"go-test-logs-monitoring-1778688975091870000","regions":["gb-lon"]}' form: {} headers: Accept: @@ -540,7 +478,7 @@ interactions: url: https://api.linode.com/v4beta/object-storage/keys method: POST response: - body: '{"id": 3619846, "label": "go-test-logs-destination-1778265658233890000", + body: '{"id": 3689156, "label": "go-test-logs-monitoring-1778688975091870000", "access_key": "[SANITIZED]", "secret_key": "[SANITIZED]", "limited": false, "bucket_access": null, "regions": [{"id": "gb-lon", "s3_endpoint": "gb-lon-1.linodeobjects.com", "endpoint_type": "E3"}]}' @@ -562,13 +500,13 @@ interactions: Connection: - keep-alive Content-Length: - - "308" + - "307" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Fri, 08 May 2026 18:41:00 GMT + - Wed, 13 May 2026 16:16:17 GMT Pragma: - no-cache Strict-Transport-Security: @@ -592,7 +530,7 @@ interactions: code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1778265660497988000","type":"akamai_object_storage","details":{"access_key_id":"G3NCAR5F3LRSJ3VLGZ6A","access_key_secret":"BtJr15UO62Xh1KEnmlgtXyDBxizQ5Xko8q7bMPY0","bucket_name":"go-test-logs-destination-1778265653315370000","host":"go-test-logs-destination-1778265653315370000.gb-lon-1.linodeobjects.com"}}' + body: '{"label":"go-test-logs-monitoring-1778688977716854000","type":"akamai_object_storage","details":{"access_key_id":"[SANITIZED]","access_key_secret":"[SANITIZED]","bucket_name":"go-test-logs-monitoring-1778688970264733000","host":"go-test-logs-monitoring-1778688970264733000.gb-lon-1.linodeobjects.com"}}' form: {} headers: Accept: @@ -604,10 +542,10 @@ interactions: url: https://api.linode.com/v4beta/monitor/streams/destinations method: POST response: - body: '{"id": 459, "label": "go-test-logs-destination-1778265660497988000", "type": - "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778265653315370000.gb-lon-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1778265653315370000", "access_key_id": - "G3NCAR5F3LRSJ3VLGZ6A"}, "version": 1, "status": "active", "created_by": "dola-klipensk", + body: '{"id": 511, "label": "go-test-logs-monitoring-1778688977716854000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-monitoring-1778688970264733000.gb-lon-1.linodeobjects.com", + "bucket_name": "go-test-logs-monitoring-1778688970264733000", "access_key_id": + "[SANITIZED]"}, "version": 1, "status": "active", "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": "2018-01-02T03:04:05"}' headers: @@ -628,13 +566,13 @@ interactions: Connection: - keep-alive Content-Length: - - "465" + - "462" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Fri, 08 May 2026 18:41:01 GMT + - Wed, 13 May 2026 16:16:18 GMT Pragma: - no-cache Strict-Transport-Security: @@ -658,7 +596,69 @@ interactions: code: 200 duration: "" - request: - body: '{"destinations":[459],"label":"go-test-log-stream-1778265661693801000","type":"audit_logs"}' + 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/monitor/streams?page=1 + method: GET + response: + body: '{"pages": 0, "page": 1, "results": 0, "data": []}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Length: + - "49" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 13 May 2026 16:16:19 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - monitor: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: '{"destinations":[511],"label":"go-test-log-stream-1778688979331199000","type":"audit_logs"}' form: {} headers: Accept: @@ -670,11 +670,11 @@ interactions: url: https://api.linode.com/v4beta/monitor/streams method: POST response: - body: '{"id": 203, "label": "go-test-log-stream-1778265661693801000", "type": - "audit_logs", "destinations": [{"id": 459, "type": "akamai_object_storage", - "label": "go-test-logs-destination-1778265660497988000", "details": {"host": - "go-test-logs-destination-1778265653315370000.gb-lon-1.linodeobjects.com", "bucket_name": - "go-test-logs-destination-1778265653315370000", "access_key_id": "G3NCAR5F3LRSJ3VLGZ6A"}}], + body: '{"id": 232, "label": "go-test-log-stream-1778688979331199000", "type": + "audit_logs", "destinations": [{"id": 511, "type": "akamai_object_storage", + "label": "go-test-logs-monitoring-1778688977716854000", "details": {"host": + "go-test-logs-monitoring-1778688970264733000.gb-lon-1.linodeobjects.com", "bucket_name": + "go-test-logs-monitoring-1778688970264733000", "access_key_id": "[SANITIZED]"}}], "details": null, "version": 1, "status": "provisioning", "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": "2018-01-02T03:04:05"}' @@ -696,13 +696,13 @@ interactions: Connection: - keep-alive Content-Length: - - "592" + - "589" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Fri, 08 May 2026 18:41:02 GMT + - Wed, 13 May 2026 16:16:19 GMT Pragma: - no-cache Strict-Transport-Security: @@ -726,7 +726,7 @@ interactions: code: 200 duration: "" - request: - body: '{"region":"gb-lon","label":"go-test-logs-destination-1778265662063843000","acl":"private","cors_enabled":false}' + body: '{"region":"gb-lon","label":"go-test-logs-monitoring-1778688979750096000","acl":"private","cors_enabled":false}' form: {} headers: Accept: @@ -738,8 +738,8 @@ interactions: url: https://api.linode.com/v4beta/object-storage/buckets method: POST response: - body: '{"hostname": "go-test-logs-destination-1778265662063843000.gb-lon-1.linodeobjects.com", - "label": "go-test-logs-destination-1778265662063843000", "created": "2018-01-02T03:04:05", + body: '{"hostname": "go-test-logs-monitoring-1778688979750096000.gb-lon-1.linodeobjects.com", + "label": "go-test-logs-monitoring-1778688979750096000", "created": "2018-01-02T03:04:05", "region": "gb-lon", "cluster": "", "size": 0, "objects": 0, "endpoint_type": "E3", "s3_endpoint": "gb-lon-1.linodeobjects.com"}' headers: @@ -760,13 +760,13 @@ interactions: Connection: - keep-alive Content-Length: - - "306" + - "304" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Fri, 08 May 2026 18:41:06 GMT + - Wed, 13 May 2026 16:16:24 GMT Pragma: - no-cache Strict-Transport-Security: @@ -790,7 +790,7 @@ interactions: code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1778265666938925000","regions":["gb-lon"]}' + body: '{"label":"go-test-logs-monitoring-1778688984872576000","regions":["gb-lon"]}' form: {} headers: Accept: @@ -802,7 +802,7 @@ interactions: url: https://api.linode.com/v4beta/object-storage/keys method: POST response: - body: '{"id": 3619848, "label": "go-test-logs-destination-1778265666938925000", + body: '{"id": 3689157, "label": "go-test-logs-monitoring-1778688984872576000", "access_key": "[SANITIZED]", "secret_key": "[SANITIZED]", "limited": false, "bucket_access": null, "regions": [{"id": "gb-lon", "s3_endpoint": "gb-lon-1.linodeobjects.com", "endpoint_type": "E3"}]}' @@ -824,13 +824,13 @@ interactions: Connection: - keep-alive Content-Length: - - "308" + - "307" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Fri, 08 May 2026 18:41:09 GMT + - Wed, 13 May 2026 16:16:27 GMT Pragma: - no-cache Strict-Transport-Security: @@ -854,7 +854,7 @@ interactions: code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1778265669839923000","type":"akamai_object_storage","details":{"access_key_id":"E8JO4A3NSB4MZS25FBX6","access_key_secret":"ysjG2BVjev4AcLYafUxx1rrMRe1JqTEHHhm3eiyW","bucket_name":"go-test-logs-destination-1778265662063843000","host":"go-test-logs-destination-1778265662063843000.gb-lon-1.linodeobjects.com"}}' + body: '{"label":"go-test-logs-monitoring-1778688987162176000","type":"akamai_object_storage","details":{"access_key_id":"[SANITIZED]","access_key_secret":"[SANITIZED]","bucket_name":"go-test-logs-monitoring-1778688979750096000","host":"go-test-logs-monitoring-1778688979750096000.gb-lon-1.linodeobjects.com"}}' form: {} headers: Accept: @@ -866,10 +866,10 @@ interactions: url: https://api.linode.com/v4beta/monitor/streams/destinations method: POST response: - body: '{"id": 460, "label": "go-test-logs-destination-1778265669839923000", "type": - "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778265662063843000.gb-lon-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1778265662063843000", "access_key_id": - "E8JO4A3NSB4MZS25FBX6"}, "version": 1, "status": "active", "created_by": "dola-klipensk", + body: '{"id": 512, "label": "go-test-logs-monitoring-1778688987162176000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-monitoring-1778688979750096000.gb-lon-1.linodeobjects.com", + "bucket_name": "go-test-logs-monitoring-1778688979750096000", "access_key_id": + "[SANITIZED]"}, "version": 1, "status": "active", "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": "2018-01-02T03:04:05"}' headers: @@ -890,13 +890,13 @@ interactions: Connection: - keep-alive Content-Length: - - "465" + - "462" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Fri, 08 May 2026 18:41:11 GMT + - Wed, 13 May 2026 16:16:28 GMT Pragma: - no-cache Strict-Transport-Security: @@ -929,14 +929,14 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/203 + url: https://api.linode.com/v4beta/monitor/streams/232 method: GET response: - body: '{"id": 203, "label": "go-test-log-stream-1778265661693801000", "type": - "audit_logs", "destinations": [{"id": 459, "type": "akamai_object_storage", - "label": "go-test-logs-destination-1778265660497988000", "details": {"host": - "go-test-logs-destination-1778265653315370000.gb-lon-1.linodeobjects.com", "bucket_name": - "go-test-logs-destination-1778265653315370000", "access_key_id": "G3NCAR5F3LRSJ3VLGZ6A"}}], + body: '{"id": 232, "label": "go-test-log-stream-1778688979331199000", "type": + "audit_logs", "destinations": [{"id": 511, "type": "akamai_object_storage", + "label": "go-test-logs-monitoring-1778688977716854000", "details": {"host": + "go-test-logs-monitoring-1778688970264733000.gb-lon-1.linodeobjects.com", "bucket_name": + "go-test-logs-monitoring-1778688970264733000", "access_key_id": "[SANITIZED]"}}], "details": null, "version": 1, "status": "active", "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": "2018-01-02T03:04:05"}' @@ -958,13 +958,13 @@ interactions: Connection: - keep-alive Content-Length: - - "586" + - "583" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Fri, 08 May 2026 19:06:23 GMT + - Wed, 13 May 2026 17:33:35 GMT Pragma: - no-cache Strict-Transport-Security: @@ -989,7 +989,7 @@ interactions: code: 200 duration: "" - request: - body: '{"destinations":[460]}' + body: '{"destinations":[512]}' form: {} headers: Accept: @@ -998,14 +998,14 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/203 + url: https://api.linode.com/v4beta/monitor/streams/232 method: PUT response: - body: '{"id": 203, "label": "go-test-log-stream-1778265661693801000", "type": - "audit_logs", "destinations": [{"id": 460, "type": "akamai_object_storage", - "label": "go-test-logs-destination-1778265669839923000", "details": {"host": - "go-test-logs-destination-1778265662063843000.gb-lon-1.linodeobjects.com", "bucket_name": - "go-test-logs-destination-1778265662063843000", "access_key_id": "E8JO4A3NSB4MZS25FBX6"}}], + body: '{"id": 232, "label": "go-test-log-stream-1778688979331199000", "type": + "audit_logs", "destinations": [{"id": 512, "type": "akamai_object_storage", + "label": "go-test-logs-monitoring-1778688987162176000", "details": {"host": + "go-test-logs-monitoring-1778688979750096000.gb-lon-1.linodeobjects.com", "bucket_name": + "go-test-logs-monitoring-1778688979750096000", "access_key_id": "[SANITIZED]"}}], "details": null, "version": 2, "status": "provisioning", "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": "2018-01-02T03:04:05"}' @@ -1027,13 +1027,13 @@ interactions: Connection: - keep-alive Content-Length: - - "592" + - "589" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Fri, 08 May 2026 19:06:23 GMT + - Wed, 13 May 2026 17:33:36 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1066,21 +1066,21 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/203/history?page=1 + url: https://api.linode.com/v4beta/monitor/streams/232/history?page=1 method: GET response: - body: '{"pages": 1, "page": 1, "results": 2, "data": [{"id": 203, "label": "go-test-log-stream-1778265661693801000", - "type": "audit_logs", "destinations": [{"id": 460, "type": "akamai_object_storage", - "label": "go-test-logs-destination-1778265669839923000", "details": {"host": - "go-test-logs-destination-1778265662063843000.gb-lon-1.linodeobjects.com", "bucket_name": - "go-test-logs-destination-1778265662063843000", "access_key_id": "E8JO4A3NSB4MZS25FBX6"}}], + body: '{"pages": 1, "page": 1, "results": 2, "data": [{"id": 232, "label": "go-test-log-stream-1778688979331199000", + "type": "audit_logs", "destinations": [{"id": 512, "type": "akamai_object_storage", + "label": "go-test-logs-monitoring-1778688987162176000", "details": {"host": + "go-test-logs-monitoring-1778688979750096000.gb-lon-1.linodeobjects.com", "bucket_name": + "go-test-logs-monitoring-1778688979750096000", "access_key_id": "[SANITIZED]"}}], "details": null, "version": 2, "status": "provisioning", "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": - "2018-01-02T03:04:05"}, {"id": 203, "label": "go-test-log-stream-1778265661693801000", - "type": "audit_logs", "destinations": [{"id": 459, "type": "akamai_object_storage", - "label": "go-test-logs-destination-1778265660497988000", "details": {"host": - "go-test-logs-destination-1778265653315370000.gb-lon-1.linodeobjects.com", "bucket_name": - "go-test-logs-destination-1778265653315370000", "access_key_id": "G3NCAR5F3LRSJ3VLGZ6A"}}], + "2018-01-02T03:04:05"}, {"id": 232, "label": "go-test-log-stream-1778688979331199000", + "type": "audit_logs", "destinations": [{"id": 511, "type": "akamai_object_storage", + "label": "go-test-logs-monitoring-1778688977716854000", "details": {"host": + "go-test-logs-monitoring-1778688970264733000.gb-lon-1.linodeobjects.com", "bucket_name": + "go-test-logs-monitoring-1778688970264733000", "access_key_id": "[SANITIZED]"}}], "details": null, "version": 1, "status": "inactive", "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": "2018-01-02T03:04:05"}]}' @@ -1106,7 +1106,7 @@ interactions: Content-Type: - application/json Expires: - - Fri, 08 May 2026 19:06:24 GMT + - Wed, 13 May 2026 17:33:36 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1132,7 +1132,7 @@ interactions: code: 200 duration: "" - request: - body: '{"destinations":[459]}' + body: '{"destinations":[511]}' form: {} headers: Accept: @@ -1141,7 +1141,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/203 + url: https://api.linode.com/v4beta/monitor/streams/232 method: PUT response: body: '{"errors": [{"reason": "Unable to edit Stream at this time"}]}' @@ -1161,7 +1161,7 @@ interactions: Content-Type: - application/json Expires: - - Fri, 08 May 2026 19:06:24 GMT + - Wed, 13 May 2026 17:33:37 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1187,7 +1187,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations/460 + url: https://api.linode.com/v4beta/monitor/streams/destinations/512 method: DELETE response: body: '{"errors": [{"reason": "Unable to delete Destination attached to active @@ -1210,7 +1210,7 @@ interactions: Content-Type: - application/json Expires: - - Fri, 08 May 2026 19:06:25 GMT + - Wed, 13 May 2026 17:33:38 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1236,7 +1236,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/keys/3619848 + url: https://api.linode.com/v4beta/object-storage/keys/3689157 method: DELETE response: body: '{}' @@ -1264,7 +1264,7 @@ interactions: Content-Type: - application/json Expires: - - Fri, 08 May 2026 19:06:26 GMT + - Wed, 13 May 2026 17:33:39 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1297,11 +1297,11 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778265662063843000/object-list + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778688979750096000/object-list method: GET response: - body: '{"data": [{"name": "cloud-logs-test-connection-20260508T184110", "size": - 9, "last_modified": "2018-01-02T03:04:05.714Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", + body: '{"data": [{"name": "cloud-logs-test-connection-20260513T161627", "size": + 9, "last_modified": "2018-01-02T03:04:05.057Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}], "next_marker": null, "is_truncated": false}' headers: @@ -1328,7 +1328,7 @@ interactions: Content-Type: - application/json Expires: - - Fri, 08 May 2026 19:06:28 GMT + - Wed, 13 May 2026 17:33:41 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1353,7 +1353,7 @@ interactions: code: 200 duration: "" - request: - body: '{"name":"cloud-logs-test-connection-20260508T184110","method":"DELETE","expires_in":360}' + body: '{"name":"cloud-logs-test-connection-20260513T161627","method":"DELETE","expires_in":360}' form: {} headers: Accept: @@ -1362,10 +1362,10 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778265662063843000/object-url + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778688979750096000/object-url method: POST response: - body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-destination-1778265662063843000/cloud-logs-test-connection-20260508T184110?Signature=2%2BWpUdBKQCeoncVVwJ8pThN7xi8%3D&Expires=1778267552&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCsWYWN1qEqeVEdhpgAl3G5Ln6CsdLCGe0B7eeQet8y0TX9asCy7/ILdcdXYJFQmJrOKZcPWbzGUVqQ9vSvKxZmPY05lICYhWtlXjPa3maJoL4dMuGYuVv4o4yeIt3znZ0VDY2VxPl3%2BemFxIABzWy/EQ6OAH4b2i3x00giLo09o96XALQVuVaFIAMd6tQ%2BkAWyKXa5tDb%2B79SynrZxbdJqSouyNnMX1v0OZS1fTjFMeaCe/2MLHDXYthoDWyyidRWTISyC2DBHvEaCmpNh8BviuWQoM4sHBx4wlrb7mgdCSU2L3QoZyHs%2BqtVndXx5PUAxlMxqIy8Sl9ryXpTB3XNN%2Bh53gRqO62no46APppQq1Ec9yqG9Ku%2BoW/cCOxTktBU3BbjdYKtoYxZ2vlhqs5C6eJrqwW1635nFal5vARfveHxbcTYknYh0Wtrz0BG7gg8vtNHENnT0V%2BA2Tjan1O5QguLn5K", + body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-monitoring-1778688979750096000/cloud-logs-test-connection-20260513T161627?Signature=4YKRQprPJXeK2SKfY0x%2Fsrxahnc%3D&Expires=1778693985&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCtCDzi3tBOnjUamqC7w3Pza%2BPIyJhhaEKuz9HNQonOe/Jl6I2oppn6JAsH9FiwnU2iJfvJIkl0mOdfGUwENb/HUZ5r4hLMp23eU7Pv9ZgAlxKnCeVjuXxTz6uRGXNoOomJF1TxnvySWDPV4OCZdd7kbC9GVN5zVNcdRKKY7jAmkeys/ex/CNvLSO%2BdZC6%2BeDgFfs4RNQK2E4hY1uVycCKgRe0Yip08%2Bo9mzp7DFdBY3nJydjBBnpgESW3TdFvqkw0w7LoR0HY4uzwz09LqDBseuzW/slCsFiN9O9Y9MxKjW%2Bpc62as/5WaxHT6BM/rf0tg7sfka6QlliuRRrqhBRc33bkvlCb9jMr2GlkTANVE2DaaJL%2Bh0r2DBk/vyINLIg2iYTs3R5dp9UINVxiYu7FfsC11lQSsTVeLTKENiIcwOs18RyWfP3vkxnaj8/Pk5WEWy11WTZs5/APEiUvc48odaQDDPG", "exists": true}' headers: Access-Control-Allow-Credentials: @@ -1385,13 +1385,13 @@ interactions: Connection: - keep-alive Content-Length: - - "851" + - "848" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Fri, 08 May 2026 19:06:32 GMT + - Wed, 13 May 2026 17:33:45 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1424,7 +1424,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778265662063843000 + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778688979750096000 method: DELETE response: body: '{}' @@ -1452,7 +1452,7 @@ interactions: Content-Type: - application/json Expires: - - Fri, 08 May 2026 19:06:40 GMT + - Wed, 13 May 2026 17:33:52 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1485,14 +1485,14 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/203 + url: https://api.linode.com/v4beta/monitor/streams/232 method: GET response: - body: '{"id": 203, "label": "go-test-log-stream-1778265661693801000", "type": - "audit_logs", "destinations": [{"id": 460, "type": "akamai_object_storage", - "label": "go-test-logs-destination-1778265669839923000", "details": {"host": - "go-test-logs-destination-1778265662063843000.gb-lon-1.linodeobjects.com", "bucket_name": - "go-test-logs-destination-1778265662063843000", "access_key_id": "E8JO4A3NSB4MZS25FBX6"}}], + body: '{"id": 232, "label": "go-test-log-stream-1778688979331199000", "type": + "audit_logs", "destinations": [{"id": 512, "type": "akamai_object_storage", + "label": "go-test-logs-monitoring-1778688987162176000", "details": {"host": + "go-test-logs-monitoring-1778688979750096000.gb-lon-1.linodeobjects.com", "bucket_name": + "go-test-logs-monitoring-1778688979750096000", "access_key_id": "[SANITIZED]"}}], "details": null, "version": 2, "status": "active", "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": "2018-01-02T03:04:05"}' @@ -1514,13 +1514,13 @@ interactions: Connection: - keep-alive Content-Length: - - "586" + - "583" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Fri, 08 May 2026 19:32:52 GMT + - Wed, 13 May 2026 17:57:03 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1554,7 +1554,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/203 + url: https://api.linode.com/v4beta/monitor/streams/232 method: DELETE response: body: '{}' @@ -1582,7 +1582,7 @@ interactions: Content-Type: - application/json Expires: - - Fri, 08 May 2026 19:32:52 GMT + - Wed, 13 May 2026 17:57:03 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1615,7 +1615,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/203 + url: https://api.linode.com/v4beta/monitor/streams/232 method: GET response: body: '{"errors": [{"reason": "Stream not found"}]}' @@ -1637,7 +1637,7 @@ interactions: Content-Type: - application/json Expires: - - Fri, 08 May 2026 19:32:52 GMT + - Wed, 13 May 2026 17:57:04 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1665,13 +1665,13 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations/459 + url: https://api.linode.com/v4beta/monitor/streams/destinations/511 method: GET response: - body: '{"id": 459, "label": "go-test-logs-destination-1778265660497988000", "type": - "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778265653315370000.gb-lon-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1778265653315370000", "access_key_id": - "G3NCAR5F3LRSJ3VLGZ6A"}, "version": 1, "status": "active", "created_by": "dola-klipensk", + body: '{"id": 511, "label": "go-test-logs-monitoring-1778688977716854000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-monitoring-1778688970264733000.gb-lon-1.linodeobjects.com", + "bucket_name": "go-test-logs-monitoring-1778688970264733000", "access_key_id": + "[SANITIZED]"}, "version": 1, "status": "active", "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": "2018-01-02T03:04:05"}' headers: @@ -1692,13 +1692,13 @@ interactions: Connection: - keep-alive Content-Length: - - "465" + - "462" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Fri, 08 May 2026 19:32:53 GMT + - Wed, 13 May 2026 17:57:04 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1732,7 +1732,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations/459 + url: https://api.linode.com/v4beta/monitor/streams/destinations/511 method: DELETE response: body: '{}' @@ -1760,7 +1760,7 @@ interactions: Content-Type: - application/json Expires: - - Fri, 08 May 2026 19:32:53 GMT + - Wed, 13 May 2026 17:57:05 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1793,7 +1793,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/keys/3619846 + url: https://api.linode.com/v4beta/object-storage/keys/3689156 method: DELETE response: body: '{}' @@ -1821,7 +1821,7 @@ interactions: Content-Type: - application/json Expires: - - Fri, 08 May 2026 19:32:54 GMT + - Wed, 13 May 2026 17:57:05 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1854,19 +1854,31 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778265653315370000/object-list + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778688970264733000/object-list method: GET response: - body: '{"data": [{"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/08/akamai_log-094968-1778267278-775570-config.gz", - "size": 592, "last_modified": "2018-01-02T03:04:05.391Z", "etag": "2ca2f803d804dab7db0542bad470f57a", - "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/08/akamai_log-125075-1778267274-876655-config.gz", - "size": 1148, "last_modified": "2018-01-02T03:04:05.662Z", "etag": "c5b43694818887d546b111ca0edac09b", - "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/08/akamai_log-225211-1778267892-219672-config.gz", - "size": 577, "last_modified": "2018-01-02T03:04:05.973Z", "etag": "6766a6fccdeb39dc25af8644dc4a15db", - "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/08/akamai_log-797880-1778267720-174822-config.gz", - "size": 577, "last_modified": "2018-01-02T03:04:05.497Z", "etag": "b7d00daa5ad94f63eea861900fb9fba4", - "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "cloud-logs-test-connection-20260508T184100", - "size": 9, "last_modified": "2018-01-02T03:04:05.383Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", + body: '{"data": [{"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-197232-1778692104-963329-config.gz", + "size": 577, "last_modified": "2018-01-02T03:04:05.056Z", "etag": "a44785bed3c7b2e75d62804be8108a22", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-277313-1778694046-575915-config.gz", + "size": 578, "last_modified": "2018-01-02T03:04:05.660Z", "etag": "56ba7525966e92834cddfb6aefad9fa3", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-303195-1778693738-480474-config.gz", + "size": 532, "last_modified": "2018-01-02T03:04:05.660Z", "etag": "25098f968f638fe4a7c1b4e5558b4c38", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-352028-1778693698-253569-config.gz", + "size": 832, "last_modified": "2018-01-02T03:04:05.327Z", "etag": "dd3121684ffca053831d97dec1c13b59", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-513793-1778692719-730202-config.gz", + "size": 577, "last_modified": "2018-01-02T03:04:05.474Z", "etag": "2fdfb7e0c981969e086b0af5502ee36c", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-607448-1778693767-814677-config.gz", + "size": 592, "last_modified": "2018-01-02T03:04:05.434Z", "etag": "eb71f008d852aea5290b2a006f6edaa6", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-680392-1778693730-123553-config.gz", + "size": 576, "last_modified": "2018-01-02T03:04:05.946Z", "etag": "9dbebbf20eda966839445d9742a38939", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-739067-1778693034-305706-config.gz", + "size": 577, "last_modified": "2018-01-02T03:04:05.115Z", "etag": "c15b56ea18897939f99035e5eabb7419", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-964874-1778693710-665883-config.gz", + "size": 637, "last_modified": "2018-01-02T03:04:05.266Z", "etag": "2043e5c87058d9145e8b408d48af231b", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-981397-1778691751-017085-config.gz", + "size": 576, "last_modified": "2018-01-02T03:04:05.980Z", "etag": "5d79d311fd1eea26b88bd4c5ba381948", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "cloud-logs-test-connection-20260513T161618", + "size": 9, "last_modified": "2018-01-02T03:04:05.646Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}], "next_marker": null, "is_truncated": false}' headers: @@ -1891,7 +1903,7 @@ interactions: Content-Type: - application/json Expires: - - Fri, 08 May 2026 19:32:56 GMT + - Wed, 13 May 2026 17:57:07 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1917,7 +1929,373 @@ interactions: code: 200 duration: "" - request: - body: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/08/akamai_log-094968-1778267278-775570-config.gz","method":"DELETE","expires_in":360}' + body: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-197232-1778692104-963329-config.gz","method":"DELETE","expires_in":360}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778688970264733000/object-url + method: POST + response: + body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-monitoring-1778688970264733000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-197232-1778692104-963329-config.gz?Signature=Qn%2BHVMRq6TkN%2F256D6XUcjD7qRo%3D&Expires=1778695391&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjClfCECUIIFwLiGZjW5RYWX5qRXLptUr79bCCZgjIa9dlyQnlT0wONMcZLvYuUKkxNn/8eWj30fTzxVZl/0R%2B2DgQNgdn09xEMI61eHgOgQ1T%2BV78iBsh2ZDaD%2BvqRjEVbCe7P63WpOqH/Xl1og8bqGd%2Bf4cuv9Xu2QtSCA3yhHGN80Z3QSWfn%2BJiKZQCSxoItPbvzmJzZPUiRHExTlztFiFhCbWIPk/zLDgSqJMzKXwEoAIfEKum8CP3AhSL3Z/uBUb7P2XuosqGNbAh10JWYkruIfQZj4guRWOl%2Bti14Mc%2Bsw0jVRtsT0VEoopmxfbt14l3/mL3Q2tPIuaALg9qATW4FJMl6Ppm8GLXIo2FmEXhd%2BxJeu2272gMxtGZgVFAWkIdF2vI0UgKIIK16%2BvUgGckDUqs/%2BS6YtZRmtMaNKyabSdGtwPu2RMNrtRLE%2B/kAbjTIGZsESHD4ThLt5myzUEK9yWU", + "exists": true}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 13 May 2026 17:57:11 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - object_storage: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: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-277313-1778694046-575915-config.gz","method":"DELETE","expires_in":360}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778688970264733000/object-url + method: POST + response: + body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-monitoring-1778688970264733000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-277313-1778694046-575915-config.gz?Signature=Vnqhsl0M%2FcJOxd16KmxSSvdGGS8%3D&Expires=1778695396&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCjxEznWT7WSpNYRY7bnNEWV1e1OUXUbgHbnFa6PIDNjWjXjCoRiINtIwxzr1vVXuFDgUEXLPJ1FVTTfD6/s7ZeDg7HFB4kNd2MBH18rE4Zbj/KjQZC88i0546YWIVgqGUsCsV1Adkk/qBYQIp%2BYrHeeoqj0y4KT2ewKkCPOxFw2UPO90bb6M7wvth6y25LMBCr0xE8bjXP44O%2BaJPdjvvAvf513pxuL0%2BhizUGh67Cqt8ArbBrWMFEJ6/4/lqemIGNdbXP9H2TQbBjmNsnFFiQMYLOC2G/AUbed1EBLiTx57SSDrXoSICFdxBwpPEz/Zz8O38%2BqowTSVlHE31QLDFN3/0F2fgnd31LL2JCyZ1HfdIc7EiGLHQPLeQZl2qqUrGj7%2BwM/h9ViU%2BKGTJphQe2ikaYRUpJHsNDIf330we0IoBbO1EX%2BcQ%2BA8gkmGaB595YjYyjsO0l9qseZ4HCfXB0qRSBmf", + "exists": true}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 13 May 2026 17:57:16 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - object_storage: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: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-303195-1778693738-480474-config.gz","method":"DELETE","expires_in":360}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778688970264733000/object-url + method: POST + response: + body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-monitoring-1778688970264733000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-303195-1778693738-480474-config.gz?Signature=n%2FT%2B5J9lmkg2OAcr%2Fhup5vhoYqg%3D&Expires=1778695400&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCqMYxD2UgzjR7nvq27tbVk/niE6CInE2HfoPKYhAK2dEHTZTd4YptMrKoXwDMuZ3j7Hht2pUW7ie6W1f%2BpS9oteDzPD/WMODWsYdD6GQIo0Xkk3khZKR55Yiobiydq/MtAbCldpUvLtqPoith2B2ESSiSkJD2WiTzW3TCGGXS0LDBP/VpzhOp6RttfSU3jM9xPqSmbmqoNMEWNcgfKuNb9K8oGxfSdtH26tTV0OvTB5xn2WlvR2LdDQuOomq6pQWQW%2Bj6VK3KSPjEL5zJhWl5Ob75l%2B7nqRDb67BuyummsPYFt2dEsDsgZW913c0d15W9JLt1xlAfuula7kE1QSFYTS3gCqmUthpa8bmYDkR5DInYxUSqEWyq8AGuUqk4EO408KIJ5eZpZvODoR24yJ%2BULbaY/nuZl2CO8ufFWefabNI83VGYmzibNOmnrPQQvpptZvrdd8q3yAmQH7vi6Bat39y1dLk", + "exists": true}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 13 May 2026 17:57:20 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - object_storage: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: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-352028-1778693698-253569-config.gz","method":"DELETE","expires_in":360}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778688970264733000/object-url + method: POST + response: + body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-monitoring-1778688970264733000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-352028-1778693698-253569-config.gz?Signature=N4nhMK669l8%2Bro%2Bket4BzWXAQwg%3D&Expires=1778695406&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjClkBHNMxU%2BTXtj9a2GMSrH1cXrctnGxm/L9NQo9LafhWgaLYTQ9BLhjeXhzTPyDPkjMZCfZ/wFGS9ApL/XWus4M9cwjMAWXZqTLCvFCiy9y527XBfYYLuZdlyeROFzuPmvLTu7VU7NJ7RSX5OnNwUpRAAoWQEZsvrCrQ/ajbSrP6jLCrsOYjKp%2BD778BihAlJmoxmYS9O8wvpcfpraB5vFy0n4tQKpn5mkUeC9UmWAPXwngrxZb/YmrbaLHGORbb7HVMnbHAKWk3Ym%2BPQ3Dzd%2B%2Be%2By4F3M9PD0z6x%2BFPAxKPPsRKNAJaecxPqC8%2BxlKSW78zf2Aj08bPlvIuabazllUozSdlQw5aPbvpIRFdo2mEmVhGUl/m%2BH1AHLhblBesOtHgAUnOLuN7sLjWRq4AlY//M/%2BZfTGlO5/2sHb/nzk%2BrZJ8NBbx1ez63BpOJ78AfPtomm0YCXu0740/M1o1p%2BzNAOIf", + "exists": true}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 13 May 2026 17:57:26 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - object_storage: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: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-513793-1778692719-730202-config.gz","method":"DELETE","expires_in":360}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778688970264733000/object-url + method: POST + response: + body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-monitoring-1778688970264733000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-513793-1778692719-730202-config.gz?Signature=LebMAHKdRUgj2p7hRP81HbK49QA%3D&Expires=1778695409&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCsaqOqFO3D1jZzSwgUDPQKqGQFCKMT1OfHQhYI0N%2BuN6jPnQ8YDjXqYDq59LPnbOPnGIci4bXcfnL%2BLmxKZvUgYVQw53rFZFvev/KD4BrVQiO1hzflmnY8SUyApihLIvlKT32qc3ATQG7hEZeLU7HfjPhtRPVWsb2Lv4J%2B7cwmGl4kjWnZ04eMGtrKfaIOpqV0f9vIKHJ0FWnqSbvCPv7porLJ%2BS91WYW/mDmYbZB4dZSaSrc5TmxV5pq/4Mn6FqG73XuAzVbrxzgkaIovTLlij0MmsxnSlCvDKYlDykY8xZqNTrXGBr0lWxfPriV1Bie/Z3rQvRF9cXWT2FKoD4LP4Bth8U5PHaGsWyEbEVAGcXesEPnib%2BZlkAcQpvs3rOQ4RhPqdOZk54AC9Gl5bf8Cim/RIIgrkdQk%2B2VP8UsgVOXbxhOKmro7ssjNTdZCsCYR4LwHq9wFkOlFb2Ueab1JfeTmIs", + "exists": true}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 13 May 2026 17:57:29 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - object_storage: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: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-607448-1778693767-814677-config.gz","method":"DELETE","expires_in":360}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778688970264733000/object-url + method: POST + response: + body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-monitoring-1778688970264733000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-607448-1778693767-814677-config.gz?Signature=STcracQDKGA4j7oZhqb7GmhbhzU%3D&Expires=1778695412&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjClfCECUIIFwLiGZjW5RYWX5qRXLptUr79bCCZgjIa9dlyQnlT0wONMcZLvYuUKkxNn/8eWj30fTzxVZl/0R%2B2DgQNgdn09xEMI61eHgOgQ1T%2BV78iBsh2ZDaD%2BvqRjEVbCe7P63WpOqH/Xl1og8bqGd%2Bf4cuv9Xu2QtSCA3yhHGN80Z3QSWfn%2BJiKZQCSxoItPbvzmJzZPUiRHExTlztFiFhCbWIPk/zLDgSqJMzKXwEoAIfEKum8CP3AhSL3Z/uBUb7P2XuosqGNbAh10JWYkruIfQZj4guRWOl%2Bti14Mc%2Bsw0jVRtsT0VEoopmxfbt14l3/mL3Q2tPIuaALg9qATW4FJMl6Ppm8GLXIo2FmEXhd%2BxJeu2272gMxtGZgVFAWkIdF2vI0UgKIIK16%2BvUgGckDUqs/%2BS6YtZRmtMaNKyabSdGtwPu2RMNrtRLE%2B/kAbjTIGZsESHD4ThLt5myzUEK9yWU", + "exists": true}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 13 May 2026 17:57:32 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - object_storage: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: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-680392-1778693730-123553-config.gz","method":"DELETE","expires_in":360}' form: {} headers: Accept: @@ -1926,10 +2304,10 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778265653315370000/object-url + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778688970264733000/object-url method: POST response: - body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-destination-1778265653315370000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/08/akamai_log-094968-1778267278-775570-config.gz?Signature=bcJW%2FKF3saXM1%2BEzt367pRhp20Y%3D&Expires=1778269139&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCr2D1BN/z/pqxKBmKpS407JFe55bowQtvEjOw9zink42W0WNixlAu5enRKSf371cp5PWJ4YiMp05Cg2g4M4tO/L8S/W5gSYhw/EEJnc6R%2BysRRorQZbNnvxSZkN7FSdo2svni00DWVeCyta9Jo5Tz8J6r/K2hAuwWiLqkIhToFgQtXsFwt5xxKnXeLoMVaDVLU7ZXKnNZmwlPdiRh4niQ3AuKhUjyo6um7wXzye82/kp7M0Q4uf2OLaSd4D6BNaEltaUY16O6kzwH0wf8Na%2B4FwUovILgWVwrK59dOSG69qq5ZWgjYGft7Iye9BANCehTNDOt%2BKrYXThvhclXVFsidJ3Hze/E/ksPqKqrooRRn9%2B%2BH6/q1xHQZJjOhsTs5g7bKvRR1si62KWOD9J05niWF38GanNskLZ1KA8%2BXAJfQb8sx8sSPIVmxWt6OrrJqDIAf0owvfVxY/pi46vYCUCecr1%2BQqW", + body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-monitoring-1778688970264733000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-680392-1778693730-123553-config.gz?Signature=a6JbiXq6lFkY%2FXDWEbUznGETmY4%3D&Expires=1778695416&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCtFwVNlA6s8kFYh1sitdd1Xo6ODBlOMfjsobo3WnnNRnOEzzo/dQsNjWv41vj8hQC19JPJ2gh/qnoJjHCkBTjnwsSD%2B9eQ/ZS8D3zWsGDYSlXsas7wqZjhnCycoWVEluvOPabau%2BWRXeBfRzRzFQaA9XCWv5DB%2B1iZhyFigIs0jxZTVG6m33ByB0X9YnqR7T9NhwEMtCnJbpaHkXb%2BZj17baeRqWXQu10mTDwJv1zM93eAWAlSO1pSRpNLbKM8HqtXwOIjbBKgy/ul7p1Z8U5uCG6iBkqo2iHwGz9ZoTgcEG/87JpQHDlW/Fj1a8xwAppIu%2B8Dq/xIeraZbwSI%2BX8dv9fLAWoJXk2qVG8EeqsKaEiyWWK8mQWpl9fkC9Pp%2Bo%2BF3tHg8gAjo1eubJmTTue5ByA%2BLGl%2BBQF4T9Ge7xdcgw25Q3maMmEMU33liPoowDOSrVzenWDZdI8TsDYMgi8XTiouLu", "exists": true}' headers: Access-Control-Allow-Credentials: @@ -1953,7 +2331,7 @@ interactions: Content-Type: - application/json Expires: - - Fri, 08 May 2026 19:32:59 GMT + - Wed, 13 May 2026 17:57:36 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1978,7 +2356,7 @@ interactions: code: 200 duration: "" - request: - body: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/08/akamai_log-125075-1778267274-876655-config.gz","method":"DELETE","expires_in":360}' + body: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-739067-1778693034-305706-config.gz","method":"DELETE","expires_in":360}' form: {} headers: Accept: @@ -1987,10 +2365,10 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778265653315370000/object-url + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778688970264733000/object-url method: POST response: - body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-destination-1778265653315370000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/08/akamai_log-125075-1778267274-876655-config.gz?Signature=yS%2F6zpyt%2F%2F8MhEKMMkvmCATJUr8%3D&Expires=1778269144&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjClsqEk/5%2BRfV2SCqQ9z07X9tyXijnqxv4REtTsy0M4HXqYBzkYMhXij5vmuj4m5wesj0%2BaygK0HJybCPn6rWhjtWGB9wdYNVvfem6Bou%2BFwpixqbgTSLkMPIJX6/Yyzf8knYRO6PLE3BQLgcHh%2B8AvI3k/SIjNPCylfdN%2BFzEA6FyBReOTXGsv2PUaRFFFd8byAPdiEMLu8DC2bt565gq%2BIUVN3i4hlo2VxHVGYPurD5JolBX%2Bf/M/G/wyLsybwxSHQFcgKtAasGgQJjEIs3u2ht4iD59mZ0YmHsmX6yD39VyZDvQBD%2BvcuupHu%2BRXf/7R0H8FtKdJhwBqpFMf6zzT8vsdTr%2B6rlZmLMUV%2BNeCKoRl1POWiNsjs%2BPjG5UDO5%2BYJIAuIVqfW/s1RMu/LJ2mWfxsJU1E2i%2B4XYiJX74r%2BlW%2BtWXNMSY4hvb42bCV/WfckhPVgkN5IswNMm1ZxlwlGtKRnI", + body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-monitoring-1778688970264733000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-739067-1778693034-305706-config.gz?Signature=1HPlh06EYXbcvGR6Af5Q7b6EIZc%3D&Expires=1778695420&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCvrPdx%2BIamB8Wg95PdJQJs0rXOtIIoL5N8W/u1k6b%2B%2Bxpf7QSKfjWasIzSOZQZ0AS0cZYTx%2BFWmEV54Nb%2BAq2Ds4mhfL2HRfNA%2B9GTJN4p4cgyK3siHzZFlKHQZ1InR4shORM/fxE6vThCSKqs5tTpMEJ7JkK86DnnP3SKVv1fwzV2xijAs91JjdwVhKhciMdTLEfBArhmRHaqVJgQ12BhSOr2uM5uUHSgGvmkYfT6y2QrkmCFIic74D3nsCsy/vd1VmvUrt2NCoVBCJnVw4ATrpf42rjnm7pu8LftUk8AN3F1JRQXamNe1gNsiNAT3SysXQes/TLo1ATVj%2B5BSGdKxclAmhT7au1j0KLIsIBSvc4id/fMGFOSrzpTTWGKqGFd6Kk6vBcZR%2BkmvUFRQezGscrNTkkJ/LDxRdn6xJYXnZx%2BOeTs5gQWweuFHoexTX4jEXpyzwqJFfOAuETgs8Sd1PM%2Boo", "exists": true}' headers: Access-Control-Allow-Credentials: @@ -2014,7 +2392,7 @@ interactions: Content-Type: - application/json Expires: - - Fri, 08 May 2026 19:33:04 GMT + - Wed, 13 May 2026 17:57:40 GMT Pragma: - no-cache Strict-Transport-Security: @@ -2039,7 +2417,7 @@ interactions: code: 200 duration: "" - request: - body: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/08/akamai_log-225211-1778267892-219672-config.gz","method":"DELETE","expires_in":360}' + body: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-964874-1778693710-665883-config.gz","method":"DELETE","expires_in":360}' form: {} headers: Accept: @@ -2048,10 +2426,10 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778265653315370000/object-url + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778688970264733000/object-url method: POST response: - body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-destination-1778265653315370000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/08/akamai_log-225211-1778267892-219672-config.gz?Signature=KtycrTWC6JQ7kmTHTEl48%2FWmpOM%3D&Expires=1778269147&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCmjfszk441yxGFT9U/m8NiDCLEE/UIPMtQcKVkm66/p%2BU74NTdos/dyzQfCMnWXqcnhTBnHnK8M8ZbTLY0oNV%2B73MlvqaLhakymbqn/BX7e8zl6noPEt3Rzm6u2YgtwRRQqJzeIWlEOUhQtbEFizFOjgTczKvaFNiTod9LxCyHuZgfZE%2BEMJh7ok5dIWsNnnq0i4OX3gvrkQdmkwMAwueINCe4P4duqwGZjZGL/c45zKgO2xgk3uRTJiOak7zOVQoXoVla1FUkp6Gl26V0yU78qPyFxUPsf26h%2BDYEmBd%2BXBQqwRH5XreIjmmX9JUWB59sk0ZBIb138D2hTp5N9NOmsYB%2BXhzPP7ZoQlt8G6w7UvDYFYfLUbWkKgIfT3Ztx22mcQY30L/K7xUWoiLU9tJJppONPQx%2BZjK2H1hZpuad45CaDud2szCUs8IQ%3D%3D", + body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-monitoring-1778688970264733000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-964874-1778693710-665883-config.gz?Signature=ZxRyVIRL4ev1k23cyGiWdsCejUY%3D&Expires=1778695425&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCoAwJvL9PoJHVgOHPVpPl7igunQRhHT1%2B6wFnUB9sAJqE1ulZmHlXPWjIHsD5EWYR8eDUXBQnZG3oG%2BzGa1dJSFpW4dSEOKrubcpDJ6gn2%2B4lxIgEHPqaHR6t%2BclHQV/U/uWmLor%2BdfWJbWYrljomHWA3D6ZlYPPKqN5ftDhxdVdG5K3TAhDX2MGxK56wTfXK0fHdieMa7baWA1bctu1rrdedsGc7vjp0dZkbX58Pi24dF1EW8labDUOaGgI24s5RGWrWycnr0zNTZTk1XmCu6wvDGR75o4GtCrz866B0IrFORwdd8UVNl1XtQIK%2B8IeEwi8rfG4BTIG7sOZnQQsnarp/8aZewHXyb423nTpfW4RAvcVtt0uIthpw97p6ezB8PE1KO74Vm4lsU73/lNpTdRwmZwdMuwN76uIScl1CZbUfL7Vw7jKvSA%2BnF3pseSe8R6Zzi%2BSE5XI58eFAf3i1/HG/n7P", "exists": true}' headers: Access-Control-Allow-Credentials: @@ -2075,7 +2453,7 @@ interactions: Content-Type: - application/json Expires: - - Fri, 08 May 2026 19:33:07 GMT + - Wed, 13 May 2026 17:57:45 GMT Pragma: - no-cache Strict-Transport-Security: @@ -2100,7 +2478,7 @@ interactions: code: 200 duration: "" - request: - body: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/08/akamai_log-797880-1778267720-174822-config.gz","method":"DELETE","expires_in":360}' + body: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-981397-1778691751-017085-config.gz","method":"DELETE","expires_in":360}' form: {} headers: Accept: @@ -2109,10 +2487,10 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778265653315370000/object-url + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778688970264733000/object-url method: POST response: - body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-destination-1778265653315370000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/08/akamai_log-797880-1778267720-174822-config.gz?Signature=I3lhQ6me61Ho%2BKW0ya03lW2Qr7Y%3D&Expires=1778269151&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCu8F9tiaXwCdn5f%2BAw2O8kM0ybLzIX4PnfgjDRyuex6A1LHPjoSB%2BQaoseTXoW7rrbADOh93quZ53B/hh%2BafvmmqYoa%2BS35i%2B6jzGo9xItKW1nMZ0sW%2Bv2dRskPWWbvNFu3iJVA5pGMRAW6OVO8sXoAb9iJQ%2Bc4uIHVgQed7PQaDnybalBgBclzAjTG3%2BwmLN0ZeZZ01dZ6Kxsuh%2BlWeSWw2CHKZNtM54vvtydQZezJYizif1Or2Q44x2a48L80j5bohA1qF%2B0lhidw%2B2h4cQ7qU10%2Bo7qYH6vVtuUr2mFafQUpeJyQrE8a5wly%2BhiJpRfRVn7gQpr5ug7TpUAli71%2BuwvU/PI9vRS9fyf2xmTMk/CmG41GimB1mtSbhE8z2OrRApOiYVXDgNbmMJW%2BifaRtcLhRm/iQ5LjEB0tAN0QO03xPAfBQFLcTiqp0KeEjRQw3bZbT/9g0QxaRAIT5NW4/x9kB", + body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-monitoring-1778688970264733000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-981397-1778691751-017085-config.gz?Signature=1JakPPrY1PuA75iturHInb5r1PM%3D&Expires=1778695429&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCt81X7xsitezQnrNPAVjoGx/bZ1xR1psbH1cKZTUW3AyovtQe22AtvZPY7LS3xlOJDtcWGsCyxqAfoOhSaGV71kosJmxXY0L1eVLKDPQNFiZjkZhL2mqSEeXL7zL2PJ/QS3S87%2B31THEH7She9DJZrq88IX54PQYVU60pgtHxRHf5duI0mQqmFkM3bgmi5ZsbvALirnJ0jxju/DKCrTd0BU5dUzT6Xx6Jgk9j/jRR6sqAhlmBm1VnUiXQmV9Lq9BLhlngpLE%2BiPobwiJ%2B4h3qNoEGTTcqcE5bISDvAziY2q5lZtEhD1rzBU%2B3B3hensQvewD9y2GOf/jacX1wNrivGl51Kb6XvffYfpVazZ7E6OhO9EbvdNHZIteaxqDdG6NnZJKCVxLliUAkf2NfDT22QSch2BF7dfQmDMl7YpI24oC%2Bx9RzJyQm4HVq6K/%2Bk5wJqBXzLsxnKlAXAPfVehlQblYyoPZ", "exists": true}' headers: Access-Control-Allow-Credentials: @@ -2136,7 +2514,7 @@ interactions: Content-Type: - application/json Expires: - - Fri, 08 May 2026 19:33:11 GMT + - Wed, 13 May 2026 17:57:49 GMT Pragma: - no-cache Strict-Transport-Security: @@ -2161,7 +2539,7 @@ interactions: code: 200 duration: "" - request: - body: '{"name":"cloud-logs-test-connection-20260508T184100","method":"DELETE","expires_in":360}' + body: '{"name":"cloud-logs-test-connection-20260513T161618","method":"DELETE","expires_in":360}' form: {} headers: Accept: @@ -2170,10 +2548,10 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778265653315370000/object-url + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778688970264733000/object-url method: POST response: - body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-destination-1778265653315370000/cloud-logs-test-connection-20260508T184100?Signature=ci5LdZEx%2Bp3sWHnILUeGxd%2FJXpQ%3D&Expires=1778269156&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCirWHktViqtcY0uEQeEw177u5elq3x%2BeNel%2BRWQ/IM%2BM3T7FxI66T24U04nXCXuQPaVL08PVr1e7Q6HTD4yH6GeK5FNQRXzlx1CxcvNz0mizer8QhvE3KY9C6oHLus6MRBGmDqIyMUDRF7lFpyGz5F8hkF4WhNmLlCpvuQfTr/leKdgTOZu9Q1UKkRlZshE4cK4MxV9G39p8ssJKFOnRNgHWS366BUa9amnd4gCX59h/Dg%2BPlOVVDoCAarB8xYjdQApW904x/ew/pXKu1ZijtQy56niQAt1I5oxcj3/fRhMDZ8pqdcY5CJ6mvnEyWhLS8IJE9HkH6JBW6rkfDl/bzpnnrXJ4ibB3u2we3crQ8z/uIJE3beJzaOB1UPtwCOOjRdH6mH857tssXyQzVXudp2/1/4Q%2Bwn0P1O/QC0KMBDP6l4hfiGJSsPGLjhC9BTqYoyE9zHm3094xuh1EkkInP26Yq9n%2B", + body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-monitoring-1778688970264733000/cloud-logs-test-connection-20260513T161618?Signature=5LHIWYJGLOg0z%2FACtsvb9G5nRr0%3D&Expires=1778695433&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCnA9fRCR5yZQKSz7ZgIKSECjZUbb4JGEdR4Ux%2B%2BExLuwXRZvEP8kwifxhfnzPpD04VAJvbyBSJE6OF6uF9jAs7pSCh5XuKANx1KtCvzVnxK//VhdqceMDnAeluZhtxlTxzPuSH3CxX8voqyhLk8BpIuVT42GaC4zdJ6egTyDnnfafHcIw4ItcLV1q3IVIx2GshFy0HpySNtp28BzCIy53wed85o9/oyMiNq8V19FI8TP1/WBivVwRfKqc/yL5kuC0pcpHkCWibPW9x4S0QPrm1sk74IqZ/WCR8VrmFyz5oXREQNk2YrZ/zpoMDvFZ8tpsuMAoKXYBPGQd12JP%2BVObHhULL5B9Ifwg4ib86qoCuIhvyEgYhCdHaLeQF86kmaC8ad3yKF7V%2Bm%2B5A8EEeF1jo7YHoBo3xJQT0YUKHr6DuZ6tN%2BxkOOT/HWmjh0MFidtzlbLqiX9G%2BJdP1t0/psp7boyqzUw", "exists": true}' headers: Access-Control-Allow-Credentials: @@ -2193,13 +2571,13 @@ interactions: Connection: - keep-alive Content-Length: - - "851" + - "850" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Fri, 08 May 2026 19:33:16 GMT + - Wed, 13 May 2026 17:57:53 GMT Pragma: - no-cache Strict-Transport-Security: @@ -2232,7 +2610,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778265653315370000 + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778688970264733000 method: DELETE response: body: '{}' @@ -2260,7 +2638,7 @@ interactions: Content-Type: - application/json Expires: - - Fri, 08 May 2026 19:33:22 GMT + - Wed, 13 May 2026 17:57:59 GMT Pragma: - no-cache Strict-Transport-Security: diff --git a/test/integration/fixtures/TestLogStream_Update_LabelAndStatus.yaml b/test/integration/fixtures/TestLogStream_Update_LabelAndStatus.yaml index f15eb7d1f..9f1b85872 100644 --- a/test/integration/fixtures/TestLogStream_Update_LabelAndStatus.yaml +++ b/test/integration/fixtures/TestLogStream_Update_LabelAndStatus.yaml @@ -1,68 +1,6 @@ --- 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/monitor/streams?page=1 - method: GET - response: - body: '{"pages": 0, "page": 1, "results": 0, "data": []}' - headers: - Access-Control-Allow-Credentials: - - "true" - Access-Control-Allow-Headers: - - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter - Access-Control-Allow-Methods: - - HEAD, GET, OPTIONS, POST, PUT, DELETE - Access-Control-Allow-Origin: - - '*' - Access-Control-Expose-Headers: - - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status - Akamai-Internal-Account: - - '*' - Cache-Control: - - max-age=0, no-cache, no-store - Connection: - - keep-alive - Content-Length: - - "49" - Content-Security-Policy: - - default-src 'none' - Content-Type: - - application/json - Expires: - - Mon, 11 May 2026 14:38:34 GMT - Pragma: - - no-cache - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization, X-Filter - - Authorization, X-Filter - X-Accepted-Oauth-Scopes: - - monitor: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: {} @@ -438,7 +376,7 @@ interactions: Content-Type: - application/json Expires: - - Fri, 08 May 2026 16:27:27 GMT + - Wed, 13 May 2026 14:04:38 GMT Pragma: - no-cache Strict-Transport-Security: @@ -464,7 +402,7 @@ interactions: code: 200 duration: "" - request: - body: '{"region":"gb-lon","label":"go-test-logs-destination-1778257647218326000","acl":"private","cors_enabled":false}' + body: '{"region":"gb-lon","label":"go-test-logs-monitoring-1778681078927883000","acl":"private","cors_enabled":false}' form: {} headers: Accept: @@ -476,8 +414,8 @@ interactions: url: https://api.linode.com/v4beta/object-storage/buckets method: POST response: - body: '{"hostname": "go-test-logs-destination-1778257647218326000.gb-lon-1.linodeobjects.com", - "label": "go-test-logs-destination-1778257647218326000", "created": "2018-01-02T03:04:05", + body: '{"hostname": "go-test-logs-monitoring-1778681078927883000.gb-lon-1.linodeobjects.com", + "label": "go-test-logs-monitoring-1778681078927883000", "created": "2018-01-02T03:04:05", "region": "gb-lon", "cluster": "", "size": 0, "objects": 0, "endpoint_type": "E3", "s3_endpoint": "gb-lon-1.linodeobjects.com"}' headers: @@ -498,13 +436,13 @@ interactions: Connection: - keep-alive Content-Length: - - "306" + - "304" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Fri, 08 May 2026 16:27:33 GMT + - Wed, 13 May 2026 14:04:44 GMT Pragma: - no-cache Strict-Transport-Security: @@ -528,7 +466,7 @@ interactions: code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1778257653300550000","regions":["gb-lon"]}' + body: '{"label":"go-test-logs-monitoring-1778681084555589000","regions":["gb-lon"]}' form: {} headers: Accept: @@ -540,7 +478,7 @@ interactions: url: https://api.linode.com/v4beta/object-storage/keys method: POST response: - body: '{"id": 3618128, "label": "go-test-logs-destination-1778257653300550000", + body: '{"id": 3688480, "label": "go-test-logs-monitoring-1778681084555589000", "access_key": "[SANITIZED]", "secret_key": "[SANITIZED]", "limited": false, "bucket_access": null, "regions": [{"id": "gb-lon", "s3_endpoint": "gb-lon-1.linodeobjects.com", "endpoint_type": "E3"}]}' @@ -562,13 +500,13 @@ interactions: Connection: - keep-alive Content-Length: - - "308" + - "307" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Fri, 08 May 2026 16:27:35 GMT + - Wed, 13 May 2026 14:04:46 GMT Pragma: - no-cache Strict-Transport-Security: @@ -592,7 +530,7 @@ interactions: code: 200 duration: "" - request: - body: '{"label":"go-test-logs-destination-1778257655484801000","type":"akamai_object_storage","details":{"access_key_id":"8XD0XNGCDR8OHEDH8HCN","access_key_secret":"VIJ0CJP2YlneCcT1et3U31DhNWHN9xqHA2xRfEEj","bucket_name":"go-test-logs-destination-1778257647218326000","host":"go-test-logs-destination-1778257647218326000.gb-lon-1.linodeobjects.com"}}' + body: '{"label":"go-test-logs-monitoring-1778681086944581000","type":"akamai_object_storage","details":{"access_key_id":"[SANITIZED]","access_key_secret":"[SANITIZED]","bucket_name":"go-test-logs-monitoring-1778681078927883000","host":"go-test-logs-monitoring-1778681078927883000.gb-lon-1.linodeobjects.com"}}' form: {} headers: Accept: @@ -604,10 +542,10 @@ interactions: url: https://api.linode.com/v4beta/monitor/streams/destinations method: POST response: - body: '{"id": 458, "label": "go-test-logs-destination-1778257655484801000", "type": - "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778257647218326000.gb-lon-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1778257647218326000", "access_key_id": - "8XD0XNGCDR8OHEDH8HCN"}, "version": 1, "status": "active", "created_by": "dola-klipensk", + body: '{"id": 507, "label": "go-test-logs-monitoring-1778681086944581000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-monitoring-1778681078927883000.gb-lon-1.linodeobjects.com", + "bucket_name": "go-test-logs-monitoring-1778681078927883000", "access_key_id": + "[SANITIZED]"}, "version": 1, "status": "active", "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": "2018-01-02T03:04:05"}' headers: @@ -628,13 +566,13 @@ interactions: Connection: - keep-alive Content-Length: - - "465" + - "462" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Fri, 08 May 2026 16:27:36 GMT + - Wed, 13 May 2026 14:04:48 GMT Pragma: - no-cache Strict-Transport-Security: @@ -658,7 +596,69 @@ interactions: code: 200 duration: "" - request: - body: '{"destinations":[458],"label":"go-test-log-stream-1778257656690604000","type":"audit_logs"}' + 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/monitor/streams?page=1 + method: GET + response: + body: '{"pages": 0, "page": 1, "results": 0, "data": []}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Length: + - "49" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 13 May 2026 14:04:48 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - monitor: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: '{"destinations":[507],"label":"go-test-log-stream-1778681088449928000","type":"audit_logs"}' form: {} headers: Accept: @@ -670,11 +670,11 @@ interactions: url: https://api.linode.com/v4beta/monitor/streams method: POST response: - body: '{"id": 202, "label": "go-test-log-stream-1778257656690604000", "type": - "audit_logs", "destinations": [{"id": 458, "type": "akamai_object_storage", - "label": "go-test-logs-destination-1778257655484801000", "details": {"host": - "go-test-logs-destination-1778257647218326000.gb-lon-1.linodeobjects.com", "bucket_name": - "go-test-logs-destination-1778257647218326000", "access_key_id": "8XD0XNGCDR8OHEDH8HCN"}}], + body: '{"id": 230, "label": "go-test-log-stream-1778681088449928000", "type": + "audit_logs", "destinations": [{"id": 507, "type": "akamai_object_storage", + "label": "go-test-logs-monitoring-1778681086944581000", "details": {"host": + "go-test-logs-monitoring-1778681078927883000.gb-lon-1.linodeobjects.com", "bucket_name": + "go-test-logs-monitoring-1778681078927883000", "access_key_id": "[SANITIZED]"}}], "details": null, "version": 1, "status": "provisioning", "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": "2018-01-02T03:04:05"}' @@ -696,13 +696,13 @@ interactions: Connection: - keep-alive Content-Length: - - "592" + - "589" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Fri, 08 May 2026 16:27:37 GMT + - Wed, 13 May 2026 14:04:48 GMT Pragma: - no-cache Strict-Transport-Security: @@ -735,14 +735,14 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/202 + url: https://api.linode.com/v4beta/monitor/streams/230 method: GET response: - body: '{"id": 202, "label": "go-test-log-stream-1778257656690604000", "type": - "audit_logs", "destinations": [{"id": 458, "type": "akamai_object_storage", - "label": "go-test-logs-destination-1778257655484801000", "details": {"host": - "go-test-logs-destination-1778257647218326000.gb-lon-1.linodeobjects.com", "bucket_name": - "go-test-logs-destination-1778257647218326000", "access_key_id": "8XD0XNGCDR8OHEDH8HCN"}}], + body: '{"id": 230, "label": "go-test-log-stream-1778681088449928000", "type": + "audit_logs", "destinations": [{"id": 507, "type": "akamai_object_storage", + "label": "go-test-logs-monitoring-1778681086944581000", "details": {"host": + "go-test-logs-monitoring-1778681078927883000.gb-lon-1.linodeobjects.com", "bucket_name": + "go-test-logs-monitoring-1778681078927883000", "access_key_id": "[SANITIZED]"}}], "details": null, "version": 1, "status": "active", "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": "2018-01-02T03:04:05"}' @@ -764,13 +764,13 @@ interactions: Connection: - keep-alive Content-Length: - - "586" + - "583" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Fri, 08 May 2026 16:53:48 GMT + - Wed, 13 May 2026 14:30:59 GMT Pragma: - no-cache Strict-Transport-Security: @@ -795,7 +795,7 @@ interactions: code: 200 duration: "" - request: - body: '{"label":"go-test-log-stream-1778257656690604000-upd","status":"inactive"}' + body: '{"label":"go-test-log-stream-1778681088449928000-upd","status":"inactive"}' form: {} headers: Accept: @@ -804,14 +804,14 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/202 + url: https://api.linode.com/v4beta/monitor/streams/230 method: PUT response: - body: '{"id": 202, "label": "go-test-log-stream-1778257656690604000-upd", "type": - "audit_logs", "destinations": [{"id": 458, "type": "akamai_object_storage", - "label": "go-test-logs-destination-1778257655484801000", "details": {"host": - "go-test-logs-destination-1778257647218326000.gb-lon-1.linodeobjects.com", "bucket_name": - "go-test-logs-destination-1778257647218326000", "access_key_id": "8XD0XNGCDR8OHEDH8HCN"}}], + body: '{"id": 230, "label": "go-test-log-stream-1778681088449928000-upd", "type": + "audit_logs", "destinations": [{"id": 507, "type": "akamai_object_storage", + "label": "go-test-logs-monitoring-1778681086944581000", "details": {"host": + "go-test-logs-monitoring-1778681078927883000.gb-lon-1.linodeobjects.com", "bucket_name": + "go-test-logs-monitoring-1778681078927883000", "access_key_id": "[SANITIZED]"}}], "details": null, "version": 2, "status": "deactivating", "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": "2018-01-02T03:04:05"}' @@ -833,13 +833,13 @@ interactions: Connection: - keep-alive Content-Length: - - "596" + - "593" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Fri, 08 May 2026 16:53:49 GMT + - Wed, 13 May 2026 14:31:00 GMT Pragma: - no-cache Strict-Transport-Security: @@ -872,21 +872,21 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/202/history?page=1 + url: https://api.linode.com/v4beta/monitor/streams/230/history?page=1 method: GET response: - body: '{"pages": 1, "page": 1, "results": 2, "data": [{"id": 202, "label": "go-test-log-stream-1778257656690604000-upd", - "type": "audit_logs", "destinations": [{"id": 458, "type": "akamai_object_storage", - "label": "go-test-logs-destination-1778257655484801000", "details": {"host": - "go-test-logs-destination-1778257647218326000.gb-lon-1.linodeobjects.com", "bucket_name": - "go-test-logs-destination-1778257647218326000", "access_key_id": "8XD0XNGCDR8OHEDH8HCN"}}], + body: '{"pages": 1, "page": 1, "results": 2, "data": [{"id": 230, "label": "go-test-log-stream-1778681088449928000-upd", + "type": "audit_logs", "destinations": [{"id": 507, "type": "akamai_object_storage", + "label": "go-test-logs-monitoring-1778681086944581000", "details": {"host": + "go-test-logs-monitoring-1778681078927883000.gb-lon-1.linodeobjects.com", "bucket_name": + "go-test-logs-monitoring-1778681078927883000", "access_key_id": "[SANITIZED]"}}], "details": null, "version": 2, "status": "deactivating", "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": - "2018-01-02T03:04:05"}, {"id": 202, "label": "go-test-log-stream-1778257656690604000", - "type": "audit_logs", "destinations": [{"id": 458, "type": "akamai_object_storage", - "label": "go-test-logs-destination-1778257655484801000", "details": {"host": - "go-test-logs-destination-1778257647218326000.gb-lon-1.linodeobjects.com", "bucket_name": - "go-test-logs-destination-1778257647218326000", "access_key_id": "8XD0XNGCDR8OHEDH8HCN"}}], + "2018-01-02T03:04:05"}, {"id": 230, "label": "go-test-log-stream-1778681088449928000", + "type": "audit_logs", "destinations": [{"id": 507, "type": "akamai_object_storage", + "label": "go-test-logs-monitoring-1778681086944581000", "details": {"host": + "go-test-logs-monitoring-1778681078927883000.gb-lon-1.linodeobjects.com", "bucket_name": + "go-test-logs-monitoring-1778681078927883000", "access_key_id": "[SANITIZED]"}}], "details": null, "version": 1, "status": "inactive", "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": "2018-01-02T03:04:05"}]}' @@ -912,7 +912,7 @@ interactions: Content-Type: - application/json Expires: - - Fri, 08 May 2026 16:53:49 GMT + - Wed, 13 May 2026 14:31:01 GMT Pragma: - no-cache Strict-Transport-Security: @@ -947,14 +947,14 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/202 + url: https://api.linode.com/v4beta/monitor/streams/230 method: GET response: - body: '{"id": 202, "label": "go-test-log-stream-1778257656690604000-upd", "type": - "audit_logs", "destinations": [{"id": 458, "type": "akamai_object_storage", - "label": "go-test-logs-destination-1778257655484801000", "details": {"host": - "go-test-logs-destination-1778257647218326000.gb-lon-1.linodeobjects.com", "bucket_name": - "go-test-logs-destination-1778257647218326000", "access_key_id": "8XD0XNGCDR8OHEDH8HCN"}}], + body: '{"id": 230, "label": "go-test-log-stream-1778681088449928000-upd", "type": + "audit_logs", "destinations": [{"id": 507, "type": "akamai_object_storage", + "label": "go-test-logs-monitoring-1778681086944581000", "details": {"host": + "go-test-logs-monitoring-1778681078927883000.gb-lon-1.linodeobjects.com", "bucket_name": + "go-test-logs-monitoring-1778681078927883000", "access_key_id": "[SANITIZED]"}}], "details": null, "version": 2, "status": "inactive", "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": "2018-01-02T03:04:05"}' @@ -976,13 +976,13 @@ interactions: Connection: - keep-alive Content-Length: - - "592" + - "589" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Fri, 08 May 2026 17:20:01 GMT + - Wed, 13 May 2026 14:55:11 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1016,7 +1016,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/202 + url: https://api.linode.com/v4beta/monitor/streams/230 method: DELETE response: body: '{}' @@ -1044,7 +1044,7 @@ interactions: Content-Type: - application/json Expires: - - Fri, 08 May 2026 17:20:01 GMT + - Wed, 13 May 2026 14:55:11 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1077,7 +1077,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/202 + url: https://api.linode.com/v4beta/monitor/streams/230 method: GET response: body: '{"errors": [{"reason": "Stream not found"}]}' @@ -1099,7 +1099,7 @@ interactions: Content-Type: - application/json Expires: - - Fri, 08 May 2026 17:20:02 GMT + - Wed, 13 May 2026 14:55:12 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1127,13 +1127,13 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations/458 + url: https://api.linode.com/v4beta/monitor/streams/destinations/507 method: GET response: - body: '{"id": 458, "label": "go-test-logs-destination-1778257655484801000", "type": - "akamai_object_storage", "details": {"host": "go-test-logs-destination-1778257647218326000.gb-lon-1.linodeobjects.com", - "bucket_name": "go-test-logs-destination-1778257647218326000", "access_key_id": - "8XD0XNGCDR8OHEDH8HCN"}, "version": 1, "status": "active", "created_by": "dola-klipensk", + body: '{"id": 507, "label": "go-test-logs-monitoring-1778681086944581000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-monitoring-1778681078927883000.gb-lon-1.linodeobjects.com", + "bucket_name": "go-test-logs-monitoring-1778681078927883000", "access_key_id": + "[SANITIZED]"}, "version": 1, "status": "active", "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": "2018-01-02T03:04:05"}' headers: @@ -1154,13 +1154,13 @@ interactions: Connection: - keep-alive Content-Length: - - "465" + - "462" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Fri, 08 May 2026 17:20:02 GMT + - Wed, 13 May 2026 14:55:12 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1194,7 +1194,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations/458 + url: https://api.linode.com/v4beta/monitor/streams/destinations/507 method: DELETE response: body: '{}' @@ -1222,7 +1222,7 @@ interactions: Content-Type: - application/json Expires: - - Fri, 08 May 2026 17:20:02 GMT + - Wed, 13 May 2026 14:55:12 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1255,7 +1255,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/keys/3618128 + url: https://api.linode.com/v4beta/object-storage/keys/3688480 method: DELETE response: body: '{}' @@ -1283,7 +1283,7 @@ interactions: Content-Type: - application/json Expires: - - Fri, 08 May 2026 17:20:03 GMT + - Wed, 13 May 2026 14:55:13 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1316,19 +1316,27 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778257647218326000/object-list + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778681078927883000/object-list method: GET response: - body: '{"data": [{"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/08/akamai_log-132943-1778259138-856896-config.gz", - "size": 576, "last_modified": "2018-01-02T03:04:05.257Z", "etag": "16dcbd5d065cc105938db483ec347596", - "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/08/akamai_log-357301-1778259353-927712-config.gz", - "size": 721, "last_modified": "2018-01-02T03:04:05.524Z", "etag": "763498611cf3752947cd2a749378f567", - "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/08/akamai_log-510203-1778259897-253299-config.gz", - "size": 576, "last_modified": "2018-01-02T03:04:05.144Z", "etag": "ffd885911befbbf8ab2ed715a00bee81", - "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/08/akamai_log-606755-1778259749-083692-config.gz", - "size": 578, "last_modified": "2018-01-02T03:04:05.183Z", "etag": "cc778a0d53d8d49379b2482c23a065f7", - "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "cloud-logs-test-connection-20260508T162735", - "size": 9, "last_modified": "2018-01-02T03:04:05.325Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", + body: '{"data": [{"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-084477-1778682693-177692-config.gz", + "size": 550, "last_modified": "2018-01-02T03:04:05.977Z", "etag": "75b70d9439951d6dba708ff7e6f00952", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-218707-1778682738-592559-config.gz", + "size": 576, "last_modified": "2018-01-02T03:04:05.372Z", "etag": "cc32bb39a05cc8f2d7ea9c85d4f36e08", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-329795-1778682477-740896-config.gz", + "size": 564, "last_modified": "2018-01-02T03:04:05.278Z", "etag": "c7f747d07b0ea6d972688ce49144417a", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-631906-1778683721-838153-config.gz", + "size": 576, "last_modified": "2018-01-02T03:04:05.237Z", "etag": "3f5fc21fc4b10fc8b4b68692289378fc", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-700945-1778682890-236423-config.gz", + "size": 696, "last_modified": "2018-01-02T03:04:05.977Z", "etag": "013bc8d941321cbb5827826b6ded860b", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-741231-1778683042-602434-config.gz", + "size": 576, "last_modified": "2018-01-02T03:04:05.955Z", "etag": "50147c77e5d47d880d4b186f6ab601fe", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-918300-1778682846-915838-config.gz", + "size": 824, "last_modified": "2018-01-02T03:04:05.674Z", "etag": "d6f7a0f78aec551ce846e09ff792e4b6", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-942758-1778682484-712642-config.gz", + "size": 487, "last_modified": "2018-01-02T03:04:05.058Z", "etag": "f4b0430033b7f7033adbf1b56f71e909", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "cloud-logs-test-connection-20260513T140447", + "size": 9, "last_modified": "2018-01-02T03:04:05.823Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}], "next_marker": null, "is_truncated": false}' headers: @@ -1353,7 +1361,7 @@ interactions: Content-Type: - application/json Expires: - - Fri, 08 May 2026 17:20:06 GMT + - Wed, 13 May 2026 14:55:15 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1379,7 +1387,251 @@ interactions: code: 200 duration: "" - request: - body: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/08/akamai_log-132943-1778259138-856896-config.gz","method":"DELETE","expires_in":360}' + body: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-084477-1778682693-177692-config.gz","method":"DELETE","expires_in":360}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778681078927883000/object-url + method: POST + response: + body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-monitoring-1778681078927883000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-084477-1778682693-177692-config.gz?Signature=%2FDCdtSrX%2FESw8Etla9HFNBe08tA%3D&Expires=1778684480&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCt8PyKa8o3HbPWXUxGHwspZ9aKJ92IVjph8iyuiqMj5dSU5MxFkTY89qyGfnC2buF1IJe1v4bxJ5OsuisLhqXXESnk70GxpCF1I%2Br5lUpyYC7h7e3QUE4NURVa6Z1MJh%2Bldrhh2cSdiLgY4POb6P%2BrFTmflPrBquseRGpr%2BL18f1HVh3MswyXAlXb9N/oDpX8PZkko5R9PT1I/R4Xx0ueMAhAtu74gs0qo4DExgbU0Pc9W4hGKJTgyvHKqASDna1eCulbh14Ap3tKogJfX1yGTOGZIKoJUTB7BchjIYlkdLMDBTgVSiOaCTHbpZA3bPst6oIwUA37TbkbJpftkiPpvrVpvbArxNzA%2B94Aqk9KPSs0KIPE/bwjSpXxavEJVDrHJOJgCmvqha%2BNihl1/tVrTPT1ghdaujRZSVSnmQkJ2UnznlIGAHX9NBI8tqmJVfx%2BRPUd7tuhTGXw8FyWd/mpZtHX95E", + "exists": true}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 13 May 2026 14:55:20 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - object_storage: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: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-218707-1778682738-592559-config.gz","method":"DELETE","expires_in":360}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778681078927883000/object-url + method: POST + response: + body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-monitoring-1778681078927883000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-218707-1778682738-592559-config.gz?Signature=rBk5DerMNIeKfOEEI9hzRAnZKD8%3D&Expires=1778684484&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCjebhnva58jyEjo5cvasP%2B8MGHVL/prHHXOLPw2CIXBR2qoC0TpCpesMgUsKUAH7tkNPI3Grr6l1ZXi3CMiCCRkTjfxEHpSMRsda9AFpzWmOnCYccONAeRqD%2Bxm%2BItNa2cctDgW0mcMJ5vwHJl9YGCd6uspqRnnIDtCDTXjyZDrA3fJVpLfd8I2znU8DtrpUUgOiixwFRw%2BxoEut8IgN1d10sGiRpDRvKbSPswu7MvoH%2B1pH8qbgFzGdj4MWGSoAsKrUi22ihzqLMdsOAhc%2BxLGWTYbqp0t2UvvdrTTQmfYrawknRwnnUpVQstysgw3Zd/AxIQgD6ltKYGG37yx5gAhxgykYXkCnRbjJlC4UtUKRQ0LNhBKOfUq5INpetygmxXpZRiaUzyGH3FXqMzwX/BvvEJG6CEkQTG8LB9nVfqDrdGfcOzJPSASztFWWpq3XqFPPwZN9S0VsmjJublNY/oYKxrYw", + "exists": true}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 13 May 2026 14:55:24 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - object_storage: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: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-329795-1778682477-740896-config.gz","method":"DELETE","expires_in":360}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778681078927883000/object-url + method: POST + response: + body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-monitoring-1778681078927883000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-329795-1778682477-740896-config.gz?Signature=HbTF2aNiNm64iZVxTYcSSUu7WHw%3D&Expires=1778684488&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCkeNCcUrpRpzh0fHv1jWKWOKeBYbBln9M%2BTTqfJ/hBQ8MsJHJ8uANnws1MVolgsRuq8VfFq5iDgXkJDtMvlZTTlbXSVbVAZfrPQsZEjbY3qa2qI6WYbGE5HotWebblMMQWRcix4OEc0t%2B3C5Z3wvOgbhXoLuE28UklGiflxY7qW3t%2BouVMw6sl%2Bv75Bmjha7wartaOjY8gcXDLWNpIqP61W/awA5DSTWbqZUGHMs8CP%2BmH5ORpq2uwE6WkOuSr6APs/nrmk9AMdAWdZZYCEMUw2psoVWd2FxqX1F0dAlUsid6bRrloUoB%2B8t%2BOjG7V9StwBwWFuJp8AzYJdXPdTYzgJxQXiQWpcqwUKIfZmK0O9rjouZj4DN3EvoNpWm552oSkzTOex5k3nhy2GGkKsf6oYyMmCEkyj9iotDisBPFOifkQyuR%2Bjx0sjHqmct15SdLPK9K1r0p7Z%2BDBQFtRQjBQuYF5x1", + "exists": true}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 13 May 2026 14:55:28 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - object_storage: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: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-631906-1778683721-838153-config.gz","method":"DELETE","expires_in":360}' + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778681078927883000/object-url + method: POST + response: + body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-monitoring-1778681078927883000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-631906-1778683721-838153-config.gz?Signature=ko9JAgqtmvJ%2FaaZcNy%2BdB6icy9o%3D&Expires=1778684492&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCpCr1dC74I9N5EELwPgUkibLqa35d71Q8/7Y3E%2BN7XMyZRGlDxhh7fJN0goI3Tikwl1fVs/VcslloD63SS16rI/N2TEcrfpaisYtxNaTs6Hfrh4kqOevQRCW6iBvG4H8gsIvEuGOmkF%2BHPddJQkqTVLaqpxHFzhUZuLgwevwIpAKognkKV493APbsCl9huQvDLwX1WP/nSnMCZjPQt4hzVi0fHVLZ9zJwSa0wOITVcOHADcWqbzLm63/SEBKgReRxOxs0IWCapzGU1BcrIUPmN1i%2BteXfMfIR5NwVHV/B6blUl3t8sHtrAHzfICTq3FtzbTv20INdRX7%2BjXQ4OTsKG2rQv7cRCCM93erdaO14huMLGZacZGawFybpzfMpQsv1/6BrSM1txJCzbN4jTSzgd1Rfp2FFIgyibUUz0M9/83siFsW5z%2B2o4ld7fRHQrpvLVezwyOj58543/ciAASe9k7dpKzv", + "exists": true}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Akamai-Internal-Account: + - '*' + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Expires: + - Wed, 13 May 2026 14:55:32 GMT + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Accept-Encoding + X-Accepted-Oauth-Scopes: + - object_storage: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: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-700945-1778682890-236423-config.gz","method":"DELETE","expires_in":360}' form: {} headers: Accept: @@ -1388,10 +1640,10 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778257647218326000/object-url + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778681078927883000/object-url method: POST response: - body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-destination-1778257647218326000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/08/akamai_log-132943-1778259138-856896-config.gz?Signature=O1D7Z0ozgbI9Merk9SKSmUhL9YE%3D&Expires=1778261169&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCpG91DTbrPthgQ3PutjEvtw3QxRnpmUBd5%2Bm0%2BbMof8y3pSdXQF/%2BcoXtQxUYvDxJ3%2B43Q7mK/wF7s0EdkyXsQDomSzm892jmVOxySqf0CuiEeHnujh3owNfHgcBB5zn0AJx6Q%2Bmgu7YK527lngBHvl6kl/HvZtuA6RTapRWmabZmvY1wfuPWJLx/CCswshIzAYyrDu9cBhrsBobK3HT0Qh7V5oZlWVEuMk7FnFcWCVxVUCOul40IxEKFIwGCdlwe4ChQway8D9Zx7Mb7EzbiFJdKHBJukdVoh3qtfE7oK4irfBaYj3xZD1FGBARUG82iut2ErI9EEBiMYsZuqz7JWiaoyoz3V0VjnqnSUYed8pAirzAleaXEqa3kTcFiOsylVBm7nc993BNdhyATmWu/kMAjAHWKU78BzBFqv9OEb2EZefCl/fd3%2B%2BbTd0DSjzt0KnLUnFqDfnTG2vY2RdLWUh9ft5s", + body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-monitoring-1778681078927883000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-700945-1778682890-236423-config.gz?Signature=rKqpX2CoDNXCNa%2FI68XZEf1oggw%3D&Expires=1778684497&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCuEkJwK%2BOyXiVwftf13I%2BRcs1ptH2h2KxGjtckEIBPxIXllOvyIiLtFZ0yNeNtzdKVN83iD02y%2ByyUNIgebV6CAofESJbl2ySKQzMvJEonqTXF/aeSoMIrgk/%2B0UpHH2v1wtTtS676IIwLU5tBJMWRFEhQmeXlAJT6usWv4effRBzjg6cJ7ez2DklkwIOIMK/N9Rxqq5ohoQyDzIpOZcCFAOwmxP0FbkheN6YkQp9Yers08RH4Z6UrJQDvIVdHTjJva/Objbj7o9rzPEyld0PxeOZ4alRnO5qVY0WStAH06lCDFObWI/JtykUNwK%2B6F%2BbP8Kmy3OOJ/f04dq0hPrlOsiVXbpSOs1hGmTya5ifud0inzor9nr0V9yfS6ovVE%2BapqK5xOsVye79PEYNsQO9oe55wLsEPf4hsF/j02HbK/X8vN5Zx%2BpKsG9MStxeaArBQatPczwf0fsEA%2BGH9JsLo/sVk8d", "exists": true}' headers: Access-Control-Allow-Credentials: @@ -1415,7 +1667,7 @@ interactions: Content-Type: - application/json Expires: - - Fri, 08 May 2026 17:20:09 GMT + - Wed, 13 May 2026 14:55:37 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1440,7 +1692,7 @@ interactions: code: 200 duration: "" - request: - body: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/08/akamai_log-357301-1778259353-927712-config.gz","method":"DELETE","expires_in":360}' + body: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-741231-1778683042-602434-config.gz","method":"DELETE","expires_in":360}' form: {} headers: Accept: @@ -1449,10 +1701,10 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778257647218326000/object-url + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778681078927883000/object-url method: POST response: - body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-destination-1778257647218326000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/08/akamai_log-357301-1778259353-927712-config.gz?Signature=cUDsy1ohR7HZWpI49JVUO8KS4tQ%3D&Expires=1778261173&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCmrbXvmGBrDHvfbL4CJjHcOprcCtA288ad2GT8m63Mhjjay%2BnN%2BlEKSQBOInlHq3aT%2BWwCtXZ4o10E4AH/YafGEnKINHxAztacVlC14QLXwrA%2BzKLmQZ4S9DnqtYfgwZReFJGIWyCy2Y0L3d6sMLkn75xsLevfg9/PP37U0QaU7L2DJAW8xRdhYCqangVPQ4dYYa7pI8sALVaXIssUpAo2srfOfSOzO/HgBqlbFrj%2Bss2qzPjkDVKfREElElygtJnrJG6vboqPJjb2EhHBjQCWG1CWTeyjxDJAvdSU0j4BleWVBueeqGApb5rPsYRwC0RJL32YeD55yaxeY3BLNoHF7W1U3P4aCOB0pzn%2BOWWgiqSIyG/J2/r5/%2Br/dxNLE4u9itTt/HllO0TkvfwPsYmqGftph8jJZ5xSGC3WhUI2JgM2MjACd2NRb9/r6M1I5nqaHXed54Cxt1tYvDOXBOhV1DvyS9", + body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-monitoring-1778681078927883000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-741231-1778683042-602434-config.gz?Signature=OpWeayfnlOkPSNnrqmHViLfhoaM%3D&Expires=1778684501&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCrDCGwkEleEni0xHt/857u44%2BEQD6OfpEnN%2B9bxyNdMpo8a7iOUsKwCeMXza3TzK7hhN0QGoFTIwU9tvUfG7qT18N718ij2EI5fhUi8NBiTPioU8N6lu1V1khRRK3p4kPNtR14ONZCY8/at2sbO0tbIDPRsqx5L7lda0d%2BaZAj3m4tTU1L4ueerReiN%2BXuuciPe/x52U/4es9ckyXWOzP5ykbfcHL6DKNkaPCRmc5LUeSLtFKqADKdwBd0GHtdQIvytR0Q8ALB2pwxv2OkFaRR4Qzq7StImi74sLM9R2nUs4mYz/BJzqdhbqWN6izyH8hsi57Lxfnn/LsUz9dfgaAUPWe/xO9FMmoLHN5DDeMin8WXzWxNKI/MoyxrRCz2vgh%2BjG1DHWIomKet1v5H2PhgB7B1SztO0hgCu8t3DWlSXT7ooqdF8WNdG2FqPAK4n453dI7ec13j8Un/uPqrZ8jwzioM3P", "exists": true}' headers: Access-Control-Allow-Credentials: @@ -1476,7 +1728,7 @@ interactions: Content-Type: - application/json Expires: - - Fri, 08 May 2026 17:20:14 GMT + - Wed, 13 May 2026 14:55:41 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1501,7 +1753,7 @@ interactions: code: 200 duration: "" - request: - body: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/08/akamai_log-510203-1778259897-253299-config.gz","method":"DELETE","expires_in":360}' + body: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-918300-1778682846-915838-config.gz","method":"DELETE","expires_in":360}' form: {} headers: Accept: @@ -1510,10 +1762,10 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778257647218326000/object-url + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778681078927883000/object-url method: POST response: - body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-destination-1778257647218326000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/08/akamai_log-510203-1778259897-253299-config.gz?Signature=ek7s8CMl29Q1z5gB02Aqp%2BzFIzI%3D&Expires=1778261180&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCqxmVCimFBJNav6yg11GcGUWmNmUW5B7I0%2BLG3rNhzJPIPZpD6/1JKRvXa3FRYfIPgFhopUOQ%2B5u41I4rNlUgKUApffKIDp/lciXXXczJJR7fByDetRn210jDKzu/O%2BtOqf31y3%2BMWfO0sdJqEKXW7DOokpRjlD49TOg%2BtkjDjwLzht0rN35/4M3jBFIUzn/tieAX68f%2BpbFCPx6VQeNZdnzz2j7Xgjeln3Y2Cgl4WcOgFoQX2QTem/FKhFyPNdmHu7QYftkqBk1BvcR/x79OXn4WS9AOVUeLFfcbfDp9/nYdsWZqF5GNXL0eeHKTGObOqt1TEZPdW%2Bzf1pk8nFPFyoTnFLGVU8Ha/TVQf%2BHqYXe3a2lSBHQMAdYaN6FPu5duvDOXnJSP/YIpDn7TU4YxoqJGeGMQXvM7qdPXhL148ON85CDmJoDrdSYa6SnHF43B3NZ6YPIZDHgQbVZQ6RXUa4GgFLi", + body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-monitoring-1778681078927883000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-918300-1778682846-915838-config.gz?Signature=7nWLoH%2BuYI0mnCp2jeDnfDZIrSg%3D&Expires=1778684506&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCtaKn5GMIEfLmMu6pzmFQ6m9uNJVoqIJ5Kc0kPL9MuVM4A8G/zfXCJkdwZRu7vZnQ7Nl9EF1PFOjBCsrR%2B2Uls0xB67OOIMGu1H47s1q8CSmvo79Sm42y%2BG9fzdBBZzYZGGJT3ukkSa12m/R4LGc4Ll6DjSh3Wyc59juhf72w0N%2BpZXBdOnWExbEd1Eft5kJrGkcEKU7wrfPKNYQ7CbbGNAjvsdTCDi586d2oFq8gkvV49DdUZxhd98k59icr7GzTi0AQzn8IjGTR6oFgNr2uiYbwNbusifn9Jxmy1dvirbkuF52pYgcB4pNPvnNwlpfwaFqCyTKE5xdP7P9DOTNAE3rJUSfHUbIU23KI4rdkWQoLrtMDZpE27ix0REH6PYREoi0%2B8a7gFPc8zulUyJYOubsmVaCKlGlu6hv%2BiSmhipRj7VP5RlE2g5R77b6i6IBMJ387Ygh/0ki6RKm0vcfKyKEjZvF", "exists": true}' headers: Access-Control-Allow-Credentials: @@ -1537,7 +1789,7 @@ interactions: Content-Type: - application/json Expires: - - Fri, 08 May 2026 17:20:20 GMT + - Wed, 13 May 2026 14:55:46 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1562,7 +1814,7 @@ interactions: code: 200 duration: "" - request: - body: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/08/akamai_log-606755-1778259749-083692-config.gz","method":"DELETE","expires_in":360}' + body: '{"name":"audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-942758-1778682484-712642-config.gz","method":"DELETE","expires_in":360}' form: {} headers: Accept: @@ -1571,10 +1823,10 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778257647218326000/object-url + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778681078927883000/object-url method: POST response: - body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-destination-1778257647218326000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/08/akamai_log-606755-1778259749-083692-config.gz?Signature=nnncmgHxpDBG1lPuLu%2BAX85JdHA%3D&Expires=1778261183&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCiGIog39QT/VVq2IX%2BX326102fwWKZuyfzub1RIIvQyCTJTkEspP/zp7VMRrUA76CaX83qARj8D9IjtWXRoxBUHoCl6n8trTDFqgJUZmsKo/2lblrXSBBFavW9zaQp8baCj9rgNIa4TqjBgtGEWlMNjMmNytM81HTIOwcMB/%2BuuJvPIv0yH%2B4zTj6gS61EC8i3/zqT5TirxIEjQpfp8BVuemsjFp3qSUnNe2ofzEkxEVQmF0E5nKvO4UxFFhBVCEL/rb1Raf5OqoumMsB1OkGDc1HgcoN%2Bar7G1cvrb40v7oZjrqLgvSBm8I8JP2mg6d0mQ/G2R4xhesSuAKuVMYW9smXcf1/0pONa2UahczO4PtZ7nSyxF8s6wZFbT5UiD7ZlBscDiXdwmL8UeDEJtLn8fWGwH4x9yMOnEwJZqIG7R86%2BMNBgGntap5e7jVPuytJXsTusMGNJaKpcPBcV2u7fTaQ5i3", + body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-monitoring-1778681078927883000/audit_logs/com.akamai.audit/BED02C05-67D6-4FAA-BC8BB63BB77C1197/2026/05/13/akamai_log-942758-1778682484-712642-config.gz?Signature=uuzJqb7fiqtaoCDWZ1q70SKcDpA%3D&Expires=1778684510&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCqlq5E4LMv446iYK2UpCLmbdmLFSgav7BPBdfmVOfUe2VXRj6VqkyYYfUNkB5O/Ed5ipR9QGIeKDZsX/BxoFHJBXKHB9P18A2UXieVctUHdgSgKzJrNH1Kt4mYCQgwFcWvc2nzx1A6fNtkZwKAZ1CT3nKnMm5wH9dNohIU8oIGHWO6U6u3jKZLFBNxy24aA2/8m5wWGcybU9ztNGwxkCJNwMxA9U/mAbEz9eMAuVWLQQhRS2BiM%2BNK2B6B1ev05vFnD/4pNmdz5jCJNQwOeE2Z8RVFHrhwCNtQn6W%2BsNOdQBLBy8dxEatzwT/ZFjpXhYQyXwItdY1PezjXphM1gV7cHH/u0DbfwRzDkasFJpHDKsO00lUbgnPEbwVpZz7lfL5UyvcNN9I8HHSORkSb%2BeSqDNJj%2BQFTyxm9ypRW1UmT5TTfHfGjmFz89uRHCXdDwTukyvsfgwWWbzIJsklcK0/vWUyZGV", "exists": true}' headers: Access-Control-Allow-Credentials: @@ -1598,7 +1850,7 @@ interactions: Content-Type: - application/json Expires: - - Fri, 08 May 2026 17:20:23 GMT + - Wed, 13 May 2026 14:55:50 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1623,7 +1875,7 @@ interactions: code: 200 duration: "" - request: - body: '{"name":"cloud-logs-test-connection-20260508T162735","method":"DELETE","expires_in":360}' + body: '{"name":"cloud-logs-test-connection-20260513T140447","method":"DELETE","expires_in":360}' form: {} headers: Accept: @@ -1632,10 +1884,10 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778257647218326000/object-url + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778681078927883000/object-url method: POST response: - body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-destination-1778257647218326000/cloud-logs-test-connection-20260508T162735?Signature=NZRVKKV6u6ffLwrIP%2FmW0ShVGRw%3D&Expires=1778261187&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCj/VTN4/Zo2TaPEaAbU2UUEinKPijsyFuSQeXQ2Itz3QUcE3qthGE5zI7KoaGPjbndYiXUxUwc8twHCgtnv9M4c2IAG31I8AEZhRokv9ePC1%2BX6CR2C7t9pKGCjqZG%2BNiXkJnoJEDRua8s0FcXGn/lgWOmif8p5vfdFIDix1r0%2BZKY7rEapswFujcZtJgBGthRddrs2hTuE6Shdihsl8YRGpqujmH6UXnfi93Phq8XfBbpDFiPN1HUGlurzXJsucrxpjQKuo1yXkhOozs4eG%2BhLSxUGF%2B3AHf6DUcEWOH//yovvIOSgIaba5jzBmwdq6PyukGw3qlj1EE/te9kvUysBlLlg/hmdqxXMcdJOBz56S//iAyILA1xmRZgG1dfCp9s9Xbuq6JXHz4B4bNlXr9lVXN1TVrlhfsfqf3u9s2CIg/I6rG7dWs9fxW%2Bqhbe3z3/EFJd0l/PdrQ59hpxqZ1XwaWIRX", + body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-monitoring-1778681078927883000/cloud-logs-test-connection-20260513T140447?Signature=Qd9UxjXaE%2F6XoR3qd7X6miBEUCE%3D&Expires=1778684513&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCjOAnJLAcK%2BhItpDw7kOx%2Bgn9B8ACATJE29PXWS3h7GRkvM7Ur8fvdFb/LoR0lrJJltp6/nmQTd%2BoOk00hPrXWxhr58a90mLSgrcp2S9S6SJnj4/A%2BeW65qXM0HSr7wk1rXOGUUFyGW4VjqVp0d0oQqEhgRCCSpwMnPNxeMYFJlqq9Nvjn1vi2lLTJTfOWQIYw6EJqYCI6FW%2BCGqIzbblP%2BDtc9UQMALmjcTqIZkSl/I7D4lS0OSGK9P0x9oE1EhVfSSvswGXEfZz658QRSHo5wQPoM%2B2q/%2B5CBY9MNaHPDrsaZynhEdsKap3Y3aoMlUsjtWTiAUeTWWQS3Resl6/QG2sZVQ3MX429m/ajx3sta%2BW3feh%2BBcpebIXS1NmpjXa6xaDyH5PW7qE7WB8mfRqVyAUcVi4v3dlfJ3Bgk4KmFZL1cNGdLI%2Ba1PG8p7Ct00iUeoJFrMK2ZGZohAq6tGtb7MJyd4", "exists": true}' headers: Access-Control-Allow-Credentials: @@ -1655,13 +1907,13 @@ interactions: Connection: - keep-alive Content-Length: - - "849" + - "858" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Fri, 08 May 2026 17:20:27 GMT + - Wed, 13 May 2026 14:55:53 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1694,7 +1946,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-destination-1778257647218326000 + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778681078927883000 method: DELETE response: body: '{}' @@ -1722,7 +1974,7 @@ interactions: Content-Type: - application/json Expires: - - Fri, 08 May 2026 17:20:35 GMT + - Wed, 13 May 2026 14:55:59 GMT Pragma: - no-cache Strict-Transport-Security: diff --git a/test/integration/fixtures/TestLogsDestination_Create_InvalidSecret.yaml b/test/integration/fixtures/TestLogsDestination_Create_InvalidSecret.yaml index 563d77cc0..d3f233a39 100644 --- a/test/integration/fixtures/TestLogsDestination_Create_InvalidSecret.yaml +++ b/test/integration/fixtures/TestLogsDestination_Create_InvalidSecret.yaml @@ -376,7 +376,7 @@ interactions: Content-Type: - application/json Expires: - - Mon, 11 May 2026 14:27:05 GMT + - Wed, 13 May 2026 11:04:47 GMT Pragma: - no-cache Strict-Transport-Security: @@ -402,7 +402,7 @@ interactions: code: 200 duration: "" - request: - body: '{"region":"gb-lon","label":"go-test-logs-monitoring-1778509625138729000","acl":"private","cors_enabled":false}' + body: '{"region":"gb-lon","label":"go-test-logs-monitoring-1778670288010993000","acl":"private","cors_enabled":false}' form: {} headers: Accept: @@ -414,8 +414,8 @@ interactions: url: https://api.linode.com/v4beta/object-storage/buckets method: POST response: - body: '{"hostname": "go-test-logs-monitoring-1778509625138729000.gb-lon-1.linodeobjects.com", - "label": "go-test-logs-monitoring-1778509625138729000", "created": "2018-01-02T03:04:05", + body: '{"hostname": "go-test-logs-monitoring-1778670288010993000.gb-lon-1.linodeobjects.com", + "label": "go-test-logs-monitoring-1778670288010993000", "created": "2018-01-02T03:04:05", "region": "gb-lon", "cluster": "", "size": 0, "objects": 0, "endpoint_type": "E3", "s3_endpoint": "gb-lon-1.linodeobjects.com"}' headers: @@ -442,7 +442,7 @@ interactions: Content-Type: - application/json Expires: - - Mon, 11 May 2026 14:27:09 GMT + - Wed, 13 May 2026 11:04:53 GMT Pragma: - no-cache Strict-Transport-Security: @@ -466,7 +466,7 @@ interactions: code: 200 duration: "" - request: - body: '{"label":"go-test-logs-monitoring-1778509629206268000","regions":["gb-lon"]}' + body: '{"label":"go-test-logs-monitoring-1778670293846199000","regions":["gb-lon"]}' form: {} headers: Accept: @@ -478,7 +478,7 @@ interactions: url: https://api.linode.com/v4beta/object-storage/keys method: POST response: - body: '{"id": 3666554, "label": "go-test-logs-monitoring-1778509629206268000", + body: '{"id": 3687663, "label": "go-test-logs-monitoring-1778670293846199000", "access_key": "[SANITIZED]", "secret_key": "[SANITIZED]", "limited": false, "bucket_access": null, "regions": [{"id": "gb-lon", "s3_endpoint": "gb-lon-1.linodeobjects.com", "endpoint_type": "E3"}]}' @@ -506,7 +506,7 @@ interactions: Content-Type: - application/json Expires: - - Mon, 11 May 2026 14:27:11 GMT + - Wed, 13 May 2026 11:04:56 GMT Pragma: - no-cache Strict-Transport-Security: @@ -530,7 +530,7 @@ interactions: code: 200 duration: "" - request: - body: '{"label":"go-test-logs-monitoring-1778509631497742000","type":"akamai_object_storage","details":{"access_key_id":"1","access_key_secret":"1","bucket_name":"go-test-logs-monitoring-1778509625138729000","host":"go-test-logs-monitoring-1778509625138729000.gb-lon-1.linodeobjects.com"}}' + body: '{"label":"go-test-logs-monitoring-1778670296316148000","type":"akamai_object_storage","details":{"access_key_id":"[SANITIZED]","access_key_secret":"[SANITIZED]","bucket_name":"go-test-logs-monitoring-1778670288010993000","host":"go-test-logs-monitoring-1778670288010993000.gb-lon-1.linodeobjects.com"}}' form: {} headers: Accept: @@ -559,7 +559,7 @@ interactions: Content-Type: - application/json Expires: - - Mon, 11 May 2026 14:27:12 GMT + - Wed, 13 May 2026 11:04:57 GMT Pragma: - no-cache Strict-Transport-Security: @@ -585,7 +585,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/keys/3666554 + url: https://api.linode.com/v4beta/object-storage/keys/3687663 method: DELETE response: body: '{}' @@ -613,7 +613,7 @@ interactions: Content-Type: - application/json Expires: - - Mon, 11 May 2026 14:27:13 GMT + - Wed, 13 May 2026 11:04:58 GMT Pragma: - no-cache Strict-Transport-Security: @@ -646,7 +646,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778509625138729000/object-list + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778670288010993000/object-list method: GET response: body: '{"data": [], "next_marker": null, "is_truncated": false}' @@ -674,7 +674,7 @@ interactions: Content-Type: - application/json Expires: - - Mon, 11 May 2026 14:27:14 GMT + - Wed, 13 May 2026 11:05:00 GMT Pragma: - no-cache Strict-Transport-Security: @@ -708,7 +708,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778509625138729000 + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778670288010993000 method: DELETE response: body: '{}' @@ -736,7 +736,7 @@ interactions: Content-Type: - application/json Expires: - - Mon, 11 May 2026 14:27:21 GMT + - Wed, 13 May 2026 11:05:06 GMT Pragma: - no-cache Strict-Transport-Security: diff --git a/test/integration/fixtures/TestLogsDestination_Create_InvalidType.yaml b/test/integration/fixtures/TestLogsDestination_Create_InvalidType.yaml index e1622ee68..8d9e09998 100644 --- a/test/integration/fixtures/TestLogsDestination_Create_InvalidType.yaml +++ b/test/integration/fixtures/TestLogsDestination_Create_InvalidType.yaml @@ -376,7 +376,7 @@ interactions: Content-Type: - application/json Expires: - - Mon, 11 May 2026 14:27:21 GMT + - Wed, 13 May 2026 11:06:10 GMT Pragma: - no-cache Strict-Transport-Security: @@ -402,7 +402,7 @@ interactions: code: 200 duration: "" - request: - body: '{"region":"gb-lon","label":"go-test-logs-monitoring-1778509641627901000","acl":"private","cors_enabled":false}' + body: '{"region":"gb-lon","label":"go-test-logs-monitoring-1778670370354155000","acl":"private","cors_enabled":false}' form: {} headers: Accept: @@ -414,8 +414,8 @@ interactions: url: https://api.linode.com/v4beta/object-storage/buckets method: POST response: - body: '{"hostname": "go-test-logs-monitoring-1778509641627901000.gb-lon-1.linodeobjects.com", - "label": "go-test-logs-monitoring-1778509641627901000", "created": "2018-01-02T03:04:05", + body: '{"hostname": "go-test-logs-monitoring-1778670370354155000.gb-lon-1.linodeobjects.com", + "label": "go-test-logs-monitoring-1778670370354155000", "created": "2018-01-02T03:04:05", "region": "gb-lon", "cluster": "", "size": 0, "objects": 0, "endpoint_type": "E3", "s3_endpoint": "gb-lon-1.linodeobjects.com"}' headers: @@ -442,7 +442,7 @@ interactions: Content-Type: - application/json Expires: - - Mon, 11 May 2026 14:27:26 GMT + - Wed, 13 May 2026 11:06:16 GMT Pragma: - no-cache Strict-Transport-Security: @@ -466,7 +466,7 @@ interactions: code: 200 duration: "" - request: - body: '{"label":"go-test-logs-monitoring-1778509646051728000","regions":["gb-lon"]}' + body: '{"label":"go-test-logs-monitoring-1778670376882432000","regions":["gb-lon"]}' form: {} headers: Accept: @@ -478,7 +478,7 @@ interactions: url: https://api.linode.com/v4beta/object-storage/keys method: POST response: - body: '{"id": 3666568, "label": "go-test-logs-monitoring-1778509646051728000", + body: '{"id": 3687666, "label": "go-test-logs-monitoring-1778670376882432000", "access_key": "[SANITIZED]", "secret_key": "[SANITIZED]", "limited": false, "bucket_access": null, "regions": [{"id": "gb-lon", "s3_endpoint": "gb-lon-1.linodeobjects.com", "endpoint_type": "E3"}]}' @@ -506,7 +506,7 @@ interactions: Content-Type: - application/json Expires: - - Mon, 11 May 2026 14:27:28 GMT + - Wed, 13 May 2026 11:06:18 GMT Pragma: - no-cache Strict-Transport-Security: @@ -530,7 +530,7 @@ interactions: code: 200 duration: "" - request: - body: '{"label":"go-test-logs-monitoring-1778509647974304000","type":"invalid_type","details":{"access_key_id":"BZVO6LKI4QD3JI16SFKS","access_key_secret":"ST3NdXLpVSSCRGGe5RAbJKKVU4fkOwX6inVRW06s","bucket_name":"go-test-logs-monitoring-1778509641627901000","host":"go-test-logs-monitoring-1778509641627901000.gb-lon-1.linodeobjects.com"}}' + body: '{"label":"go-test-logs-monitoring-1778670378917091000","type":"invalid_type","details":{"access_key_id":"[SANITIZED]","access_key_secret":"[SANITIZED]","bucket_name":"go-test-logs-monitoring-1778670370354155000","host":"go-test-logs-monitoring-1778670370354155000.gb-lon-1.linodeobjects.com"}}' form: {} headers: Accept: @@ -560,7 +560,7 @@ interactions: Content-Type: - application/json Expires: - - Mon, 11 May 2026 14:27:28 GMT + - Wed, 13 May 2026 11:06:19 GMT Pragma: - no-cache Strict-Transport-Security: @@ -586,7 +586,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/keys/3666568 + url: https://api.linode.com/v4beta/object-storage/keys/3687666 method: DELETE response: body: '{}' @@ -614,7 +614,7 @@ interactions: Content-Type: - application/json Expires: - - Mon, 11 May 2026 14:27:28 GMT + - Wed, 13 May 2026 11:06:19 GMT Pragma: - no-cache Strict-Transport-Security: @@ -647,7 +647,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778509641627901000/object-list + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778670370354155000/object-list method: GET response: body: '{"data": [], "next_marker": null, "is_truncated": false}' @@ -675,7 +675,7 @@ interactions: Content-Type: - application/json Expires: - - Mon, 11 May 2026 14:27:30 GMT + - Wed, 13 May 2026 11:06:22 GMT Pragma: - no-cache Strict-Transport-Security: @@ -709,7 +709,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778509641627901000 + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778670370354155000 method: DELETE response: body: '{}' @@ -737,7 +737,7 @@ interactions: Content-Type: - application/json Expires: - - Mon, 11 May 2026 14:27:37 GMT + - Wed, 13 May 2026 11:06:29 GMT Pragma: - no-cache Strict-Transport-Security: diff --git a/test/integration/fixtures/TestLogsDestination_Delete.yaml b/test/integration/fixtures/TestLogsDestination_Delete.yaml index a524158cd..047f8fc09 100644 --- a/test/integration/fixtures/TestLogsDestination_Delete.yaml +++ b/test/integration/fixtures/TestLogsDestination_Delete.yaml @@ -376,7 +376,7 @@ interactions: Content-Type: - application/json Expires: - - Mon, 11 May 2026 14:25:45 GMT + - Wed, 13 May 2026 11:10:26 GMT Pragma: - no-cache Strict-Transport-Security: @@ -402,7 +402,7 @@ interactions: code: 200 duration: "" - request: - body: '{"region":"gb-lon","label":"go-test-logs-monitoring-1778509545074390000","acl":"private","cors_enabled":false}' + body: '{"region":"gb-lon","label":"go-test-logs-monitoring-1778670626316299000","acl":"private","cors_enabled":false}' form: {} headers: Accept: @@ -414,8 +414,8 @@ interactions: url: https://api.linode.com/v4beta/object-storage/buckets method: POST response: - body: '{"hostname": "go-test-logs-monitoring-1778509545074390000.gb-lon-1.linodeobjects.com", - "label": "go-test-logs-monitoring-1778509545074390000", "created": "2018-01-02T03:04:05", + body: '{"hostname": "go-test-logs-monitoring-1778670626316299000.gb-lon-1.linodeobjects.com", + "label": "go-test-logs-monitoring-1778670626316299000", "created": "2018-01-02T03:04:05", "region": "gb-lon", "cluster": "", "size": 0, "objects": 0, "endpoint_type": "E3", "s3_endpoint": "gb-lon-1.linodeobjects.com"}' headers: @@ -442,7 +442,7 @@ interactions: Content-Type: - application/json Expires: - - Mon, 11 May 2026 14:25:50 GMT + - Wed, 13 May 2026 11:10:32 GMT Pragma: - no-cache Strict-Transport-Security: @@ -466,7 +466,7 @@ interactions: code: 200 duration: "" - request: - body: '{"label":"go-test-logs-monitoring-1778509550539184000","regions":["gb-lon"]}' + body: '{"label":"go-test-logs-monitoring-1778670632418571000","regions":["gb-lon"]}' form: {} headers: Accept: @@ -478,7 +478,7 @@ interactions: url: https://api.linode.com/v4beta/object-storage/keys method: POST response: - body: '{"id": 3666532, "label": "go-test-logs-monitoring-1778509550539184000", + body: '{"id": 3687687, "label": "go-test-logs-monitoring-1778670632418571000", "access_key": "[SANITIZED]", "secret_key": "[SANITIZED]", "limited": false, "bucket_access": null, "regions": [{"id": "gb-lon", "s3_endpoint": "gb-lon-1.linodeobjects.com", "endpoint_type": "E3"}]}' @@ -506,7 +506,7 @@ interactions: Content-Type: - application/json Expires: - - Mon, 11 May 2026 14:25:53 GMT + - Wed, 13 May 2026 11:10:35 GMT Pragma: - no-cache Strict-Transport-Security: @@ -530,7 +530,7 @@ interactions: code: 200 duration: "" - request: - body: '{"label":"go-test-logs-monitoring-1778509553204727000","type":"akamai_object_storage","details":{"access_key_id":"8I1CNGBK5HMRA19RGGY6","access_key_secret":"zHkpzPuAJFyIQjZgRdJz39EW8NVRwiDPsBCMd3Uw","bucket_name":"go-test-logs-monitoring-1778509545074390000","host":"go-test-logs-monitoring-1778509545074390000.gb-lon-1.linodeobjects.com"}}' + body: '{"label":"go-test-logs-monitoring-1778670635056408000","type":"akamai_object_storage","details":{"access_key_id":"[SANITIZED]","access_key_secret":"[SANITIZED]","bucket_name":"go-test-logs-monitoring-1778670626316299000","host":"go-test-logs-monitoring-1778670626316299000.gb-lon-1.linodeobjects.com"}}' form: {} headers: Accept: @@ -542,10 +542,10 @@ interactions: url: https://api.linode.com/v4beta/monitor/streams/destinations method: POST response: - body: '{"id": 475, "label": "go-test-logs-monitoring-1778509553204727000", "type": - "akamai_object_storage", "details": {"host": "go-test-logs-monitoring-1778509545074390000.gb-lon-1.linodeobjects.com", - "bucket_name": "go-test-logs-monitoring-1778509545074390000", "access_key_id": - "8I1CNGBK5HMRA19RGGY6"}, "version": 1, "status": "active", "created_by": "dola-klipensk", + body: '{"id": 498, "label": "go-test-logs-monitoring-1778670635056408000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-monitoring-1778670626316299000.gb-lon-1.linodeobjects.com", + "bucket_name": "go-test-logs-monitoring-1778670626316299000", "access_key_id": + "[SANITIZED]"}, "version": 1, "status": "active", "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": "2018-01-02T03:04:05"}' headers: @@ -572,7 +572,7 @@ interactions: Content-Type: - application/json Expires: - - Mon, 11 May 2026 14:25:54 GMT + - Wed, 13 May 2026 11:10:36 GMT Pragma: - no-cache Strict-Transport-Security: @@ -605,7 +605,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations/475 + url: https://api.linode.com/v4beta/monitor/streams/destinations/498 method: DELETE response: body: '{}' @@ -633,7 +633,7 @@ interactions: Content-Type: - application/json Expires: - - Mon, 11 May 2026 14:25:54 GMT + - Wed, 13 May 2026 11:10:36 GMT Pragma: - no-cache Strict-Transport-Security: @@ -666,7 +666,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations/475 + url: https://api.linode.com/v4beta/monitor/streams/destinations/498 method: GET response: body: '{"errors": [{"reason": "Destination not found"}]}' @@ -688,7 +688,7 @@ interactions: Content-Type: - application/json Expires: - - Mon, 11 May 2026 14:25:55 GMT + - Wed, 13 May 2026 11:10:37 GMT Pragma: - no-cache Strict-Transport-Security: @@ -716,7 +716,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations/475 + url: https://api.linode.com/v4beta/monitor/streams/destinations/498 method: GET response: body: '{"errors": [{"reason": "Destination not found"}]}' @@ -738,7 +738,7 @@ interactions: Content-Type: - application/json Expires: - - Mon, 11 May 2026 14:25:55 GMT + - Wed, 13 May 2026 11:10:37 GMT Pragma: - no-cache Strict-Transport-Security: @@ -766,7 +766,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/keys/3666532 + url: https://api.linode.com/v4beta/object-storage/keys/3687687 method: DELETE response: body: '{}' @@ -794,7 +794,7 @@ interactions: Content-Type: - application/json Expires: - - Mon, 11 May 2026 14:25:56 GMT + - Wed, 13 May 2026 11:10:38 GMT Pragma: - no-cache Strict-Transport-Security: @@ -827,11 +827,11 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778509545074390000/object-list + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778670626316299000/object-list method: GET response: - body: '{"data": [{"name": "cloud-logs-test-connection-20260511T142553", "size": - 9, "last_modified": "2018-01-02T03:04:05.143Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", + body: '{"data": [{"name": "cloud-logs-test-connection-20260513T111035", "size": + 9, "last_modified": "2018-01-02T03:04:05.955Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}], "next_marker": null, "is_truncated": false}' headers: @@ -858,7 +858,7 @@ interactions: Content-Type: - application/json Expires: - - Mon, 11 May 2026 14:25:58 GMT + - Wed, 13 May 2026 11:10:40 GMT Pragma: - no-cache Strict-Transport-Security: @@ -883,7 +883,7 @@ interactions: code: 200 duration: "" - request: - body: '{"name":"cloud-logs-test-connection-20260511T142553","method":"DELETE","expires_in":360}' + body: '{"name":"cloud-logs-test-connection-20260513T111035","method":"DELETE","expires_in":360}' form: {} headers: Accept: @@ -892,10 +892,10 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778509545074390000/object-url + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778670626316299000/object-url method: POST response: - body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-monitoring-1778509545074390000/cloud-logs-test-connection-20260511T142553?Signature=iT5Iyuk7%2FbuVWTzxdyodilEMOoI%3D&Expires=1778509922&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCrgsVdHZ3%2BPgdhy6GTD6Ch5qeuIj4zXvMMnkQzJwsDKQ42tIYFQT5ma0RmMPkXnLWaH6u8J6Qz9h4Hoh1rmofSuYnqHpEJ3lFgqS3YUuGa/XqM6GXhAZbH9WD3GXDzSVG8i0cjh6LHaWsDR/xaMAfmqltSNExyqwiTfMxznNRFp7unABNCZ3X4k1z9FPFTcYRVRnH8wgLBI%2BfVxl81z6GlLPTqjwJe6TIlP4LpUO0xjKytFrPeY3rO1ZZdPcolkgeGL4H1ymhq5eG4XvvPKMKl1t0KglFrcB4U3%2BlbOwPgYtzjfBVXRrZh99VCTcTo7o6lvu7zjbDDN96VUxQGJlRL4P7saWYYQbypLHD4UKFtepKB2beTsGGq4Bidl0mQVTq4dDgP/ttc7KuppP8oV0ATvU7sT3RE%2BiXJmQdZG8WUZJBGIPQvHahcbSm19pf6s2L0x6Pmob2UIYV72tED%2BTPjFSivEY", + body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-monitoring-1778670626316299000/cloud-logs-test-connection-20260513T111035?Signature=f0iuz6Xy%2FwcEg7Gf6cf0Lr6NEoY%3D&Expires=1778671002&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCjd24ZerlG8jrR0Moq5F2k/PxFaNAbrqBCZlqrEOgdu3lH/UdNelcN6b2r/0fy3a3NiGGiqa71koVbuLsGm%2BYDzkqvvPFmqxmD%2BY7qOCgOkfe7h5dY4z3ls9m6NaIWxGRRmsVf43sNSgPE6AYVNMrgbikyXZOciVV0e6S0Mt3D8OgBIcdZCT274kXSuEz/JK%2BCA33bQjo2QnUabTZsS11wg/P6%2BoumMVFYNeaDibfahd5aQ/AfFaFEhBllBWVhhIG89HOfafcU7tGFXtArOrnkK2gZULC6Dpv8ui5o2xgqfSpQxnEpqHpV/wcmbqGcjqEVKmnlSNAi6DRloNoz8LW2i41F2BsZ45JE/DeAZXBWnHurIjmcZ1olFgHw/%2BSX95c1iNP3oFCqRLTs07Xw577Ck5Sge863E1fPBtQ71wXg6YjqZ42SWVxpK/BJHDAoV46V3qAf7wt1r6WgYbnsa4eTt7QkSh", "exists": true}' headers: Access-Control-Allow-Credentials: @@ -921,7 +921,7 @@ interactions: Content-Type: - application/json Expires: - - Mon, 11 May 2026 14:26:02 GMT + - Wed, 13 May 2026 11:10:43 GMT Pragma: - no-cache Strict-Transport-Security: @@ -954,7 +954,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778509545074390000 + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778670626316299000 method: DELETE response: body: '{}' @@ -982,7 +982,7 @@ interactions: Content-Type: - application/json Expires: - - Mon, 11 May 2026 14:26:09 GMT + - Wed, 13 May 2026 11:10:50 GMT Pragma: - no-cache Strict-Transport-Security: diff --git a/test/integration/fixtures/TestLogsDestination_Get.yaml b/test/integration/fixtures/TestLogsDestination_Get.yaml index 0c3f959d0..d59c3532f 100644 --- a/test/integration/fixtures/TestLogsDestination_Get.yaml +++ b/test/integration/fixtures/TestLogsDestination_Get.yaml @@ -376,7 +376,7 @@ interactions: Content-Type: - application/json Expires: - - Mon, 11 May 2026 14:26:10 GMT + - Wed, 13 May 2026 11:08:58 GMT Pragma: - no-cache Strict-Transport-Security: @@ -402,7 +402,7 @@ interactions: code: 200 duration: "" - request: - body: '{"region":"gb-lon","label":"go-test-logs-monitoring-1778509570302696000","acl":"private","cors_enabled":false}' + body: '{"region":"gb-lon","label":"go-test-logs-monitoring-1778670538785774000","acl":"private","cors_enabled":false}' form: {} headers: Accept: @@ -414,8 +414,8 @@ interactions: url: https://api.linode.com/v4beta/object-storage/buckets method: POST response: - body: '{"hostname": "go-test-logs-monitoring-1778509570302696000.gb-lon-1.linodeobjects.com", - "label": "go-test-logs-monitoring-1778509570302696000", "created": "2018-01-02T03:04:05", + body: '{"hostname": "go-test-logs-monitoring-1778670538785774000.gb-lon-1.linodeobjects.com", + "label": "go-test-logs-monitoring-1778670538785774000", "created": "2018-01-02T03:04:05", "region": "gb-lon", "cluster": "", "size": 0, "objects": 0, "endpoint_type": "E3", "s3_endpoint": "gb-lon-1.linodeobjects.com"}' headers: @@ -442,7 +442,7 @@ interactions: Content-Type: - application/json Expires: - - Mon, 11 May 2026 14:26:15 GMT + - Wed, 13 May 2026 11:09:04 GMT Pragma: - no-cache Strict-Transport-Security: @@ -466,7 +466,7 @@ interactions: code: 200 duration: "" - request: - body: '{"label":"go-test-logs-monitoring-1778509575596434000","regions":["gb-lon"]}' + body: '{"label":"go-test-logs-monitoring-1778670544604863000","regions":["gb-lon"]}' form: {} headers: Accept: @@ -478,7 +478,7 @@ interactions: url: https://api.linode.com/v4beta/object-storage/keys method: POST response: - body: '{"id": 3666535, "label": "go-test-logs-monitoring-1778509575596434000", + body: '{"id": 3687682, "label": "go-test-logs-monitoring-1778670544604863000", "access_key": "[SANITIZED]", "secret_key": "[SANITIZED]", "limited": false, "bucket_access": null, "regions": [{"id": "gb-lon", "s3_endpoint": "gb-lon-1.linodeobjects.com", "endpoint_type": "E3"}]}' @@ -506,7 +506,7 @@ interactions: Content-Type: - application/json Expires: - - Mon, 11 May 2026 14:26:17 GMT + - Wed, 13 May 2026 11:09:06 GMT Pragma: - no-cache Strict-Transport-Security: @@ -530,7 +530,7 @@ interactions: code: 200 duration: "" - request: - body: '{"label":"go-test-logs-monitoring-1778509577644429000","type":"akamai_object_storage","details":{"access_key_id":"F8CLZI6601QRNZHDWMBX","access_key_secret":"V6xrAA6Q87S80aPC7LcuCzhZkHTd5HJ36HZkKJip","bucket_name":"go-test-logs-monitoring-1778509570302696000","host":"go-test-logs-monitoring-1778509570302696000.gb-lon-1.linodeobjects.com"}}' + body: '{"label":"go-test-logs-monitoring-1778670547006934000","type":"akamai_object_storage","details":{"access_key_id":"[SANITIZED]","access_key_secret":"[SANITIZED]","bucket_name":"go-test-logs-monitoring-1778670538785774000","host":"go-test-logs-monitoring-1778670538785774000.gb-lon-1.linodeobjects.com"}}' form: {} headers: Accept: @@ -542,10 +542,10 @@ interactions: url: https://api.linode.com/v4beta/monitor/streams/destinations method: POST response: - body: '{"id": 476, "label": "go-test-logs-monitoring-1778509577644429000", "type": - "akamai_object_storage", "details": {"host": "go-test-logs-monitoring-1778509570302696000.gb-lon-1.linodeobjects.com", - "bucket_name": "go-test-logs-monitoring-1778509570302696000", "access_key_id": - "F8CLZI6601QRNZHDWMBX"}, "version": 1, "status": "active", "created_by": "dola-klipensk", + body: '{"id": 497, "label": "go-test-logs-monitoring-1778670547006934000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-monitoring-1778670538785774000.gb-lon-1.linodeobjects.com", + "bucket_name": "go-test-logs-monitoring-1778670538785774000", "access_key_id": + "[SANITIZED]"}, "version": 1, "status": "active", "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": "2018-01-02T03:04:05"}' headers: @@ -572,7 +572,7 @@ interactions: Content-Type: - application/json Expires: - - Mon, 11 May 2026 14:26:19 GMT + - Wed, 13 May 2026 11:09:08 GMT Pragma: - no-cache Strict-Transport-Security: @@ -605,13 +605,13 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations/476 + url: https://api.linode.com/v4beta/monitor/streams/destinations/497 method: GET response: - body: '{"id": 476, "label": "go-test-logs-monitoring-1778509577644429000", "type": - "akamai_object_storage", "details": {"host": "go-test-logs-monitoring-1778509570302696000.gb-lon-1.linodeobjects.com", - "bucket_name": "go-test-logs-monitoring-1778509570302696000", "access_key_id": - "F8CLZI6601QRNZHDWMBX"}, "version": 1, "status": "active", "created_by": "dola-klipensk", + body: '{"id": 497, "label": "go-test-logs-monitoring-1778670547006934000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-monitoring-1778670538785774000.gb-lon-1.linodeobjects.com", + "bucket_name": "go-test-logs-monitoring-1778670538785774000", "access_key_id": + "[SANITIZED]"}, "version": 1, "status": "active", "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": "2018-01-02T03:04:05"}' headers: @@ -638,7 +638,7 @@ interactions: Content-Type: - application/json Expires: - - Mon, 11 May 2026 14:26:19 GMT + - Wed, 13 May 2026 11:09:08 GMT Pragma: - no-cache Strict-Transport-Security: @@ -672,13 +672,13 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations/476 + url: https://api.linode.com/v4beta/monitor/streams/destinations/497 method: GET response: - body: '{"id": 476, "label": "go-test-logs-monitoring-1778509577644429000", "type": - "akamai_object_storage", "details": {"host": "go-test-logs-monitoring-1778509570302696000.gb-lon-1.linodeobjects.com", - "bucket_name": "go-test-logs-monitoring-1778509570302696000", "access_key_id": - "F8CLZI6601QRNZHDWMBX"}, "version": 1, "status": "active", "created_by": "dola-klipensk", + body: '{"id": 497, "label": "go-test-logs-monitoring-1778670547006934000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-monitoring-1778670538785774000.gb-lon-1.linodeobjects.com", + "bucket_name": "go-test-logs-monitoring-1778670538785774000", "access_key_id": + "[SANITIZED]"}, "version": 1, "status": "active", "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": "2018-01-02T03:04:05"}' headers: @@ -705,7 +705,7 @@ interactions: Content-Type: - application/json Expires: - - Mon, 11 May 2026 14:26:19 GMT + - Wed, 13 May 2026 11:09:09 GMT Pragma: - no-cache Strict-Transport-Security: @@ -739,7 +739,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations/476 + url: https://api.linode.com/v4beta/monitor/streams/destinations/497 method: DELETE response: body: '{}' @@ -767,7 +767,7 @@ interactions: Content-Type: - application/json Expires: - - Mon, 11 May 2026 14:26:20 GMT + - Wed, 13 May 2026 11:09:09 GMT Pragma: - no-cache Strict-Transport-Security: @@ -800,7 +800,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/keys/3666535 + url: https://api.linode.com/v4beta/object-storage/keys/3687682 method: DELETE response: body: '{}' @@ -828,7 +828,7 @@ interactions: Content-Type: - application/json Expires: - - Mon, 11 May 2026 14:26:20 GMT + - Wed, 13 May 2026 11:09:10 GMT Pragma: - no-cache Strict-Transport-Security: @@ -861,11 +861,11 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778509570302696000/object-list + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778670538785774000/object-list method: GET response: - body: '{"data": [{"name": "cloud-logs-test-connection-20260511T142618", "size": - 9, "last_modified": "2018-01-02T03:04:05.733Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", + body: '{"data": [{"name": "cloud-logs-test-connection-20260513T110907", "size": + 9, "last_modified": "2018-01-02T03:04:05.867Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}], "next_marker": null, "is_truncated": false}' headers: @@ -892,7 +892,7 @@ interactions: Content-Type: - application/json Expires: - - Mon, 11 May 2026 14:26:22 GMT + - Wed, 13 May 2026 11:09:12 GMT Pragma: - no-cache Strict-Transport-Security: @@ -917,7 +917,7 @@ interactions: code: 200 duration: "" - request: - body: '{"name":"cloud-logs-test-connection-20260511T142618","method":"DELETE","expires_in":360}' + body: '{"name":"cloud-logs-test-connection-20260513T110907","method":"DELETE","expires_in":360}' form: {} headers: Accept: @@ -926,10 +926,10 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778509570302696000/object-url + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778670538785774000/object-url method: POST response: - body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-monitoring-1778509570302696000/cloud-logs-test-connection-20260511T142618?Signature=eW0fluVyo4iiJ2ZBHLESgNgmkKw%3D&Expires=1778509946&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCiojPgMtNW3UAnG94MhblItvKlOhc5GGlU/%2BiOb5jEBMCy7rQKl%2BWNI20JhZcxS5F22ScJ9kRJqQ%2BrTHOo2/inp/YN9Q/G3g4rQ1z2D3DitxUYb2uW6bSCyJrS32%2BvuG1oTv4a8Wqpnqj6Y8DZzdXLL43N3zhqH0rCjFFgQTet0o3LuoSh3vsnRCJb7K6wvXPkYeimF4ar/grPWDZA90wnivJwRcsgCFiblJmCkXcNid/hVuFc2y5BREIcJVgFEgz8eMsUIMPdkFa%2BOlzHGd7dHk8PLWhyhkos46yiRG5Kwo7BHCnMsp1rzTbLOAr7A0vRt3Jfj/Ioc7IpiIBGnt96gwio52sj1O94w7njQFwBtkTgLN69PweHzaYGyM/%2BDzlFdPDFRzGJkjPeWDanterQCyu%2BqlThMejeB4MzD2PBcnQwgYjIqOfjJctPgPnWIUanJwSjfeeKBTk3a0ZVU7h832exer", + body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-monitoring-1778670538785774000/cloud-logs-test-connection-20260513T110907?Signature=KAdjlY22W062rFV%2F6Ii4zf3jbO8%3D&Expires=1778670916&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCseKiIAScOzYqhJiGMXUlqxpo38SCx5XDfgvTJnMSzFWH4Qcc8OaqmBrkErqHDyyYsJrw9IMUI0qgwNtsEGVjUesdPE2gl1qf/slBAB8gJSLrRxFnf5NZ9Cuebdx8TUWRc6D5aYkLjQPqMlZMW5axIeJPfD23RUcZgNY4vusbnVCsmOd6Hf0vFGTl0sOUuXqewsJq1WRt5JcJbmb5bkg0RHIjNuB0%2BG6nNk/YJ4WyIY2MpC61o%2BI3aYy3gaqwYnINs6C94F6S5LNTdtiQTMt%2BJq9BUtqa8TYtWasY6Wij/vhHc9ralRjpaMrXtNtIpDUNkZUI8ZCSPotvoFa2ik8/6mcKwXNBjavTjj9V0NNTevpsXZ8NXlSjzmFdyGrds/0K94P47xD6a7qvPe7NEC5bBjZ6qjWaWEIpuDjCwVU55hhI%2BbhWtq2hQuZuzdNFYO7oX5%2BK%2BN2e%2BKUIKuvyRyU0Mxcsky/", "exists": true}' headers: Access-Control-Allow-Credentials: @@ -949,13 +949,13 @@ interactions: Connection: - keep-alive Content-Length: - - "848" + - "850" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Mon, 11 May 2026 14:26:26 GMT + - Wed, 13 May 2026 11:09:16 GMT Pragma: - no-cache Strict-Transport-Security: @@ -988,7 +988,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778509570302696000 + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778670538785774000 method: DELETE response: body: '{}' @@ -1016,7 +1016,7 @@ interactions: Content-Type: - application/json Expires: - - Mon, 11 May 2026 14:26:33 GMT + - Wed, 13 May 2026 11:09:23 GMT Pragma: - no-cache Strict-Transport-Security: diff --git a/test/integration/fixtures/TestLogsDestination_List.yaml b/test/integration/fixtures/TestLogsDestination_List.yaml index b537cc332..30d0d7462 100644 --- a/test/integration/fixtures/TestLogsDestination_List.yaml +++ b/test/integration/fixtures/TestLogsDestination_List.yaml @@ -376,7 +376,7 @@ interactions: Content-Type: - application/json Expires: - - Mon, 11 May 2026 14:25:21 GMT + - Wed, 13 May 2026 11:07:31 GMT Pragma: - no-cache Strict-Transport-Security: @@ -402,7 +402,7 @@ interactions: code: 200 duration: "" - request: - body: '{"region":"gb-lon","label":"go-test-logs-monitoring-1778509521223173000","acl":"private","cors_enabled":false}' + body: '{"region":"gb-lon","label":"go-test-logs-monitoring-1778670451577295000","acl":"private","cors_enabled":false}' form: {} headers: Accept: @@ -414,8 +414,8 @@ interactions: url: https://api.linode.com/v4beta/object-storage/buckets method: POST response: - body: '{"hostname": "go-test-logs-monitoring-1778509521223173000.gb-lon-1.linodeobjects.com", - "label": "go-test-logs-monitoring-1778509521223173000", "created": "2018-01-02T03:04:05", + body: '{"hostname": "go-test-logs-monitoring-1778670451577295000.gb-lon-1.linodeobjects.com", + "label": "go-test-logs-monitoring-1778670451577295000", "created": "2018-01-02T03:04:05", "region": "gb-lon", "cluster": "", "size": 0, "objects": 0, "endpoint_type": "E3", "s3_endpoint": "gb-lon-1.linodeobjects.com"}' headers: @@ -442,7 +442,7 @@ interactions: Content-Type: - application/json Expires: - - Mon, 11 May 2026 14:25:27 GMT + - Wed, 13 May 2026 11:07:36 GMT Pragma: - no-cache Strict-Transport-Security: @@ -466,7 +466,7 @@ interactions: code: 200 duration: "" - request: - body: '{"label":"go-test-logs-monitoring-1778509526910864000","regions":["gb-lon"]}' + body: '{"label":"go-test-logs-monitoring-1778670456257984000","regions":["gb-lon"]}' form: {} headers: Accept: @@ -478,7 +478,7 @@ interactions: url: https://api.linode.com/v4beta/object-storage/keys method: POST response: - body: '{"id": 3666526, "label": "go-test-logs-monitoring-1778509526910864000", + body: '{"id": 3687676, "label": "go-test-logs-monitoring-1778670456257984000", "access_key": "[SANITIZED]", "secret_key": "[SANITIZED]", "limited": false, "bucket_access": null, "regions": [{"id": "gb-lon", "s3_endpoint": "gb-lon-1.linodeobjects.com", "endpoint_type": "E3"}]}' @@ -506,7 +506,7 @@ interactions: Content-Type: - application/json Expires: - - Mon, 11 May 2026 14:25:28 GMT + - Wed, 13 May 2026 11:07:38 GMT Pragma: - no-cache Strict-Transport-Security: @@ -530,7 +530,7 @@ interactions: code: 200 duration: "" - request: - body: '{"label":"go-test-logs-monitoring-1778509528489377000","type":"akamai_object_storage","details":{"access_key_id":"MA8OF2UBBNBX5V1CMO7L","access_key_secret":"XUCFnYBPK2DjEezeVXtJtNjBxSJk3mqO3FOSU21Q","bucket_name":"go-test-logs-monitoring-1778509521223173000","host":"go-test-logs-monitoring-1778509521223173000.gb-lon-1.linodeobjects.com"}}' + body: '{"label":"go-test-logs-monitoring-1778670458443149000","type":"akamai_object_storage","details":{"access_key_id":"[SANITIZED]","access_key_secret":"[SANITIZED]","bucket_name":"go-test-logs-monitoring-1778670451577295000","host":"go-test-logs-monitoring-1778670451577295000.gb-lon-1.linodeobjects.com"}}' form: {} headers: Accept: @@ -542,10 +542,10 @@ interactions: url: https://api.linode.com/v4beta/monitor/streams/destinations method: POST response: - body: '{"id": 474, "label": "go-test-logs-monitoring-1778509528489377000", "type": - "akamai_object_storage", "details": {"host": "go-test-logs-monitoring-1778509521223173000.gb-lon-1.linodeobjects.com", - "bucket_name": "go-test-logs-monitoring-1778509521223173000", "access_key_id": - "MA8OF2UBBNBX5V1CMO7L"}, "version": 1, "status": "active", "created_by": "dola-klipensk", + body: '{"id": 496, "label": "go-test-logs-monitoring-1778670458443149000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-monitoring-1778670451577295000.gb-lon-1.linodeobjects.com", + "bucket_name": "go-test-logs-monitoring-1778670451577295000", "access_key_id": + "[SANITIZED]"}, "version": 1, "status": "active", "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": "2018-01-02T03:04:05"}' headers: @@ -572,7 +572,7 @@ interactions: Content-Type: - application/json Expires: - - Mon, 11 May 2026 14:25:29 GMT + - Wed, 13 May 2026 11:07:39 GMT Pragma: - no-cache Strict-Transport-Security: @@ -611,12 +611,12 @@ interactions: body: '{"pages": 1, "page": 1, "results": 2, "data": [{"id": 445, "label": "test-logs-destination-755957659", "type": "akamai_object_storage", "details": {"host": "us-mia-1.linodeobjects.com", "bucket_name": "test-logs-bucket-755957659", "path": "test-path", "access_key_id": - "7S59WIH9P07VVGJO5Q7E"}, "version": 1, "status": "active", "created_by": "dola-pskupien", + "[SANITIZED]"}, "version": 1, "status": "active", "created_by": "dola-pskupien", "created": "2018-01-02T03:04:05", "updated_by": "dola-pskupien", "updated": - "2018-01-02T03:04:05"}, {"id": 474, "label": "go-test-logs-monitoring-1778509528489377000", - "type": "akamai_object_storage", "details": {"host": "go-test-logs-monitoring-1778509521223173000.gb-lon-1.linodeobjects.com", - "bucket_name": "go-test-logs-monitoring-1778509521223173000", "access_key_id": - "MA8OF2UBBNBX5V1CMO7L"}, "version": 1, "status": "active", "created_by": "dola-klipensk", + "2018-01-02T03:04:05"}, {"id": 496, "label": "go-test-logs-monitoring-1778670458443149000", + "type": "akamai_object_storage", "details": {"host": "go-test-logs-monitoring-1778670451577295000.gb-lon-1.linodeobjects.com", + "bucket_name": "go-test-logs-monitoring-1778670451577295000", "access_key_id": + "[SANITIZED]"}, "version": 1, "status": "active", "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": "2018-01-02T03:04:05"}]}' headers: @@ -641,7 +641,7 @@ interactions: Content-Type: - application/json Expires: - - Mon, 11 May 2026 14:25:30 GMT + - Wed, 13 May 2026 11:07:40 GMT Pragma: - no-cache Strict-Transport-Security: @@ -676,13 +676,13 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations/474 + url: https://api.linode.com/v4beta/monitor/streams/destinations/496 method: GET response: - body: '{"id": 474, "label": "go-test-logs-monitoring-1778509528489377000", "type": - "akamai_object_storage", "details": {"host": "go-test-logs-monitoring-1778509521223173000.gb-lon-1.linodeobjects.com", - "bucket_name": "go-test-logs-monitoring-1778509521223173000", "access_key_id": - "MA8OF2UBBNBX5V1CMO7L"}, "version": 1, "status": "active", "created_by": "dola-klipensk", + body: '{"id": 496, "label": "go-test-logs-monitoring-1778670458443149000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-monitoring-1778670451577295000.gb-lon-1.linodeobjects.com", + "bucket_name": "go-test-logs-monitoring-1778670451577295000", "access_key_id": + "[SANITIZED]"}, "version": 1, "status": "active", "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": "2018-01-02T03:04:05"}' headers: @@ -709,7 +709,7 @@ interactions: Content-Type: - application/json Expires: - - Mon, 11 May 2026 14:25:30 GMT + - Wed, 13 May 2026 11:07:40 GMT Pragma: - no-cache Strict-Transport-Security: @@ -743,7 +743,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations/474 + url: https://api.linode.com/v4beta/monitor/streams/destinations/496 method: DELETE response: body: '{}' @@ -771,7 +771,7 @@ interactions: Content-Type: - application/json Expires: - - Mon, 11 May 2026 14:25:30 GMT + - Wed, 13 May 2026 11:07:40 GMT Pragma: - no-cache Strict-Transport-Security: @@ -804,7 +804,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/keys/3666526 + url: https://api.linode.com/v4beta/object-storage/keys/3687676 method: DELETE response: body: '{}' @@ -832,7 +832,7 @@ interactions: Content-Type: - application/json Expires: - - Mon, 11 May 2026 14:25:31 GMT + - Wed, 13 May 2026 11:07:41 GMT Pragma: - no-cache Strict-Transport-Security: @@ -865,11 +865,11 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778509521223173000/object-list + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778670451577295000/object-list method: GET response: - body: '{"data": [{"name": "cloud-logs-test-connection-20260511T142528", "size": - 9, "last_modified": "2018-01-02T03:04:05.455Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", + body: '{"data": [{"name": "cloud-logs-test-connection-20260513T110738", "size": + 9, "last_modified": "2018-01-02T03:04:05.307Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}], "next_marker": null, "is_truncated": false}' headers: @@ -896,7 +896,7 @@ interactions: Content-Type: - application/json Expires: - - Mon, 11 May 2026 14:25:34 GMT + - Wed, 13 May 2026 11:07:43 GMT Pragma: - no-cache Strict-Transport-Security: @@ -921,7 +921,7 @@ interactions: code: 200 duration: "" - request: - body: '{"name":"cloud-logs-test-connection-20260511T142528","method":"DELETE","expires_in":360}' + body: '{"name":"cloud-logs-test-connection-20260513T110738","method":"DELETE","expires_in":360}' form: {} headers: Accept: @@ -930,10 +930,10 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778509521223173000/object-url + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778670451577295000/object-url method: POST response: - body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-monitoring-1778509521223173000/cloud-logs-test-connection-20260511T142528?Signature=NRGqXSEsSt6cAgMh32JZUp5jKxQ%3D&Expires=1778509898&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCosAD32CSNHHcdufrYP%2BeVxAi2Fc4FjJP7TwXpntNEA/6CIpmb3jIaJl4NjHhUDPkjHOUbwvVPjOtB96yI7PXCzupueDkTaSDoRhBmCORXnJL9RMogTgQ2EhDnJN042CFeqnW8BCNzyt6SisThbSQV0SAL6cDr8e8Th7j%2BxxE%2Blq4BsQEkx36n3uESB6RMz8RS1Iw8Fn9Xo3yDD1aB8p9W%2BPYBsKFIheM1MFbC5Bu08el9EFtTab6SvLoJBJAPqZXTZXI7/od0Vpa2ikkmAebiGG/Me8ix9S44ugwekzWQozguwYCRRWYpfOb6SUXrnNMk8rewTdhxgxjzzNcdN60LG%2BPzMlrfhOkTyqDlG%2Bfr5d5Jf24jWGGlfboiQbTn3R6fWbcQMxeAVPA9mc%2By3OnbTASeLD9jx6iC75mXp3OZUuZqg%2BIBXuoifo09YgjgeDaaxwm0bkUaYyEcLmW8kVwc4B7XsZ", + body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-monitoring-1778670451577295000/cloud-logs-test-connection-20260513T110738?Signature=aEQO%2BlmRNTxRkZhiYGxOnXFVS9E%3D&Expires=1778670827&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCkyUkPQA2n1iLEAkEdbdaSn0pYvzg9EAYlMwZIAYU%2BWUSfE28PIVlbsLHTFBoycKvXV%2BLhFzdFJbVUbzQpI1yMly7Zb8BhK9QALzEebzay9SgAjVvXlB0uASGCDDSkVI6mgD76IeTNixNpM2Bnp8ZFxEsx4f0bHs3ssXyqPSwGa/rs78dGCGmbK4BHRcW/GjUlCEkHxOyERKXu1db5cZ6rlcp%2BD1z4pcBOoZwKw1helMurHcp5dI1lJZqeRtGtf1p9WO9p3cy1BEGdNCe3NLAmkcPUflAsAGFcpgMgk6z3MGNWAq79SH0GoT8QexJ7kyVDnJS7%2Bh5Ewgy/brpId%2BbBVmcfrwxhpCvOzUabkLUaGIwA4paK/HD7eaDY6BIlEDpkV9iwTYX29cXZ8jkRN5EkEck1lWWOSzpgrPWcuELo8CpYdPF6DVlcHb58wk42bln/c6jO1l6J/ppBzzX4%2BIsN/QbhFV", "exists": true}' headers: Access-Control-Allow-Credentials: @@ -953,13 +953,13 @@ interactions: Connection: - keep-alive Content-Length: - - "850" + - "848" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Mon, 11 May 2026 14:25:38 GMT + - Wed, 13 May 2026 11:07:47 GMT Pragma: - no-cache Strict-Transport-Security: @@ -992,7 +992,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778509521223173000 + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778670451577295000 method: DELETE response: body: '{}' @@ -1020,7 +1020,7 @@ interactions: Content-Type: - application/json Expires: - - Mon, 11 May 2026 14:25:44 GMT + - Wed, 13 May 2026 11:07:55 GMT Pragma: - no-cache Strict-Transport-Security: diff --git a/test/integration/fixtures/TestLogsDestination_UpdateAndHistory.yaml b/test/integration/fixtures/TestLogsDestination_UpdateAndHistory.yaml index b7245d42f..566571069 100644 --- a/test/integration/fixtures/TestLogsDestination_UpdateAndHistory.yaml +++ b/test/integration/fixtures/TestLogsDestination_UpdateAndHistory.yaml @@ -376,7 +376,7 @@ interactions: Content-Type: - application/json Expires: - - Mon, 11 May 2026 14:26:33 GMT + - Wed, 13 May 2026 11:11:51 GMT Pragma: - no-cache Strict-Transport-Security: @@ -402,7 +402,7 @@ interactions: code: 200 duration: "" - request: - body: '{"region":"gb-lon","label":"go-test-logs-monitoring-1778509593540443000","acl":"private","cors_enabled":false}' + body: '{"region":"gb-lon","label":"go-test-logs-monitoring-1778670711233974000","acl":"private","cors_enabled":false}' form: {} headers: Accept: @@ -414,8 +414,8 @@ interactions: url: https://api.linode.com/v4beta/object-storage/buckets method: POST response: - body: '{"hostname": "go-test-logs-monitoring-1778509593540443000.gb-lon-1.linodeobjects.com", - "label": "go-test-logs-monitoring-1778509593540443000", "created": "2018-01-02T03:04:05", + body: '{"hostname": "go-test-logs-monitoring-1778670711233974000.gb-lon-1.linodeobjects.com", + "label": "go-test-logs-monitoring-1778670711233974000", "created": "2018-01-02T03:04:05", "region": "gb-lon", "cluster": "", "size": 0, "objects": 0, "endpoint_type": "E3", "s3_endpoint": "gb-lon-1.linodeobjects.com"}' headers: @@ -442,7 +442,7 @@ interactions: Content-Type: - application/json Expires: - - Mon, 11 May 2026 14:26:38 GMT + - Wed, 13 May 2026 11:11:57 GMT Pragma: - no-cache Strict-Transport-Security: @@ -466,7 +466,7 @@ interactions: code: 200 duration: "" - request: - body: '{"label":"go-test-logs-monitoring-1778509598023806000","regions":["gb-lon"]}' + body: '{"label":"go-test-logs-monitoring-1778670717242233000","regions":["gb-lon"]}' form: {} headers: Accept: @@ -478,7 +478,7 @@ interactions: url: https://api.linode.com/v4beta/object-storage/keys method: POST response: - body: '{"id": 3666544, "label": "go-test-logs-monitoring-1778509598023806000", + body: '{"id": 3687690, "label": "go-test-logs-monitoring-1778670717242233000", "access_key": "[SANITIZED]", "secret_key": "[SANITIZED]", "limited": false, "bucket_access": null, "regions": [{"id": "gb-lon", "s3_endpoint": "gb-lon-1.linodeobjects.com", "endpoint_type": "E3"}]}' @@ -506,7 +506,7 @@ interactions: Content-Type: - application/json Expires: - - Mon, 11 May 2026 14:26:39 GMT + - Wed, 13 May 2026 11:11:59 GMT Pragma: - no-cache Strict-Transport-Security: @@ -530,7 +530,7 @@ interactions: code: 200 duration: "" - request: - body: '{"label":"go-test-logs-monitoring-1778509599839570000","type":"akamai_object_storage","details":{"access_key_id":"OGRE82X2MKNINKEJSVXT","access_key_secret":"4OV8SnVLZRJcdpqyRrpgpbZAGUWQVWKfJN9xELOw","bucket_name":"go-test-logs-monitoring-1778509593540443000","host":"go-test-logs-monitoring-1778509593540443000.gb-lon-1.linodeobjects.com"}}' + body: '{"label":"go-test-logs-monitoring-1778670719429722000","type":"akamai_object_storage","details":{"access_key_id":"[SANITIZED]","access_key_secret":"[SANITIZED]","bucket_name":"go-test-logs-monitoring-1778670711233974000","host":"go-test-logs-monitoring-1778670711233974000.gb-lon-1.linodeobjects.com"}}' form: {} headers: Accept: @@ -542,10 +542,10 @@ interactions: url: https://api.linode.com/v4beta/monitor/streams/destinations method: POST response: - body: '{"id": 477, "label": "go-test-logs-monitoring-1778509599839570000", "type": - "akamai_object_storage", "details": {"host": "go-test-logs-monitoring-1778509593540443000.gb-lon-1.linodeobjects.com", - "bucket_name": "go-test-logs-monitoring-1778509593540443000", "access_key_id": - "OGRE82X2MKNINKEJSVXT"}, "version": 1, "status": "active", "created_by": "dola-klipensk", + body: '{"id": 499, "label": "go-test-logs-monitoring-1778670719429722000", "type": + "akamai_object_storage", "details": {"host": "go-test-logs-monitoring-1778670711233974000.gb-lon-1.linodeobjects.com", + "bucket_name": "go-test-logs-monitoring-1778670711233974000", "access_key_id": + "[SANITIZED]"}, "version": 1, "status": "active", "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": "2018-01-02T03:04:05"}' headers: @@ -572,7 +572,7 @@ interactions: Content-Type: - application/json Expires: - - Mon, 11 May 2026 14:26:41 GMT + - Wed, 13 May 2026 11:12:00 GMT Pragma: - no-cache Strict-Transport-Security: @@ -596,7 +596,7 @@ interactions: code: 200 duration: "" - request: - body: '{"label":"go-test-logs-monitoring-1778509599839570000-upd","details":{"access_key_id":"OGRE82X2MKNINKEJSVXT","access_key_secret":"4OV8SnVLZRJcdpqyRrpgpbZAGUWQVWKfJN9xELOw","bucket_name":"go-test-logs-monitoring-1778509593540443000","host":"go-test-logs-monitoring-1778509593540443000.gb-lon-1.linodeobjects.com","path":"updated/logs/path/"}}' + body: '{"label":"go-test-logs-monitoring-1778670719429722000-upd","details":{"access_key_id":"[SANITIZED]","access_key_secret":"[SANITIZED]","bucket_name":"go-test-logs-monitoring-1778670711233974000","host":"go-test-logs-monitoring-1778670711233974000.gb-lon-1.linodeobjects.com","path":"updated/logs/path/"}}' form: {} headers: Accept: @@ -605,15 +605,15 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations/477 + url: https://api.linode.com/v4beta/monitor/streams/destinations/499 method: PUT response: - body: '{"id": 477, "label": "go-test-logs-monitoring-1778509599839570000-upd", - "type": "akamai_object_storage", "details": {"host": "go-test-logs-monitoring-1778509593540443000.gb-lon-1.linodeobjects.com", - "bucket_name": "go-test-logs-monitoring-1778509593540443000", "path": "updated/logs/path/", - "access_key_id": "OGRE82X2MKNINKEJSVXT"}, "version": 2, "status": "active", - "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05", "updated_by": - "dola-klipensk", "updated": "2018-01-02T03:04:05"}' + body: '{"id": 499, "label": "go-test-logs-monitoring-1778670719429722000-upd", + "type": "akamai_object_storage", "details": {"host": "go-test-logs-monitoring-1778670711233974000.gb-lon-1.linodeobjects.com", + "bucket_name": "go-test-logs-monitoring-1778670711233974000", "path": "updated/logs/path/", + "access_key_id": "[SANITIZED]"}, "version": 2, "status": "active", "created_by": + "dola-klipensk", "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", + "updated": "2018-01-02T03:04:05"}' headers: Access-Control-Allow-Credentials: - "true" @@ -638,7 +638,7 @@ interactions: Content-Type: - application/json Expires: - - Mon, 11 May 2026 14:26:42 GMT + - Wed, 13 May 2026 11:12:02 GMT Pragma: - no-cache Strict-Transport-Security: @@ -671,18 +671,18 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations/477/history?page=1 + url: https://api.linode.com/v4beta/monitor/streams/destinations/499/history?page=1 method: GET response: - body: '{"pages": 1, "page": 1, "results": 2, "data": [{"id": 477, "label": "go-test-logs-monitoring-1778509599839570000-upd", - "type": "akamai_object_storage", "details": {"host": "go-test-logs-monitoring-1778509593540443000.gb-lon-1.linodeobjects.com", - "bucket_name": "go-test-logs-monitoring-1778509593540443000", "path": "updated/logs/path/", - "access_key_id": "OGRE82X2MKNINKEJSVXT"}, "version": 2, "status": "active", - "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05", "updated_by": - "dola-klipensk", "updated": "2018-01-02T03:04:05"}, {"id": 477, "label": "go-test-logs-monitoring-1778509599839570000", - "type": "akamai_object_storage", "details": {"host": "go-test-logs-monitoring-1778509593540443000.gb-lon-1.linodeobjects.com", - "bucket_name": "go-test-logs-monitoring-1778509593540443000", "access_key_id": - "OGRE82X2MKNINKEJSVXT"}, "version": 1, "status": "inactive", "created_by": "dola-klipensk", + body: '{"pages": 1, "page": 1, "results": 2, "data": [{"id": 499, "label": "go-test-logs-monitoring-1778670719429722000-upd", + "type": "akamai_object_storage", "details": {"host": "go-test-logs-monitoring-1778670711233974000.gb-lon-1.linodeobjects.com", + "bucket_name": "go-test-logs-monitoring-1778670711233974000", "path": "updated/logs/path/", + "access_key_id": "[SANITIZED]"}, "version": 2, "status": "active", "created_by": + "dola-klipensk", "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", + "updated": "2018-01-02T03:04:05"}, {"id": 499, "label": "go-test-logs-monitoring-1778670719429722000", + "type": "akamai_object_storage", "details": {"host": "go-test-logs-monitoring-1778670711233974000.gb-lon-1.linodeobjects.com", + "bucket_name": "go-test-logs-monitoring-1778670711233974000", "access_key_id": + "[SANITIZED]"}, "version": 1, "status": "inactive", "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", "updated": "2018-01-02T03:04:05"}]}' headers: @@ -707,7 +707,7 @@ interactions: Content-Type: - application/json Expires: - - Mon, 11 May 2026 14:26:42 GMT + - Wed, 13 May 2026 11:12:02 GMT Pragma: - no-cache Strict-Transport-Security: @@ -742,15 +742,15 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations/477 + url: https://api.linode.com/v4beta/monitor/streams/destinations/499 method: GET response: - body: '{"id": 477, "label": "go-test-logs-monitoring-1778509599839570000-upd", - "type": "akamai_object_storage", "details": {"host": "go-test-logs-monitoring-1778509593540443000.gb-lon-1.linodeobjects.com", - "bucket_name": "go-test-logs-monitoring-1778509593540443000", "path": "updated/logs/path/", - "access_key_id": "OGRE82X2MKNINKEJSVXT"}, "version": 2, "status": "active", - "created_by": "dola-klipensk", "created": "2018-01-02T03:04:05", "updated_by": - "dola-klipensk", "updated": "2018-01-02T03:04:05"}' + body: '{"id": 499, "label": "go-test-logs-monitoring-1778670719429722000-upd", + "type": "akamai_object_storage", "details": {"host": "go-test-logs-monitoring-1778670711233974000.gb-lon-1.linodeobjects.com", + "bucket_name": "go-test-logs-monitoring-1778670711233974000", "path": "updated/logs/path/", + "access_key_id": "[SANITIZED]"}, "version": 2, "status": "active", "created_by": + "dola-klipensk", "created": "2018-01-02T03:04:05", "updated_by": "dola-klipensk", + "updated": "2018-01-02T03:04:05"}' headers: Access-Control-Allow-Credentials: - "true" @@ -775,7 +775,7 @@ interactions: Content-Type: - application/json Expires: - - Mon, 11 May 2026 14:26:43 GMT + - Wed, 13 May 2026 11:12:03 GMT Pragma: - no-cache Strict-Transport-Security: @@ -809,7 +809,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/monitor/streams/destinations/477 + url: https://api.linode.com/v4beta/monitor/streams/destinations/499 method: DELETE response: body: '{}' @@ -837,7 +837,7 @@ interactions: Content-Type: - application/json Expires: - - Mon, 11 May 2026 14:26:43 GMT + - Wed, 13 May 2026 11:12:03 GMT Pragma: - no-cache Strict-Transport-Security: @@ -870,7 +870,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/keys/3666544 + url: https://api.linode.com/v4beta/object-storage/keys/3687690 method: DELETE response: body: '{}' @@ -898,7 +898,7 @@ interactions: Content-Type: - application/json Expires: - - Mon, 11 May 2026 14:26:44 GMT + - Wed, 13 May 2026 11:12:04 GMT Pragma: - no-cache Strict-Transport-Security: @@ -931,15 +931,15 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778509593540443000/object-list + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778670711233974000/object-list method: GET response: - body: '{"data": [{"name": "cloud-logs-test-connection-20260511T142640", "size": - 9, "last_modified": "2018-01-02T03:04:05.760Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", + body: '{"data": [{"name": "cloud-logs-test-connection-20260513T111159", "size": + 9, "last_modified": "2018-01-02T03:04:05.282Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "updated/logs/path/", - "size": 0, "last_modified": "2018-01-02T03:04:05.073Z", "etag": "d41d8cd98f00b204e9800998ecf8427e", - "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "updated/logs/path/cloud-logs-test-connection-20260511T142642", - "size": 9, "last_modified": "2018-01-02T03:04:05.261Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", + "size": 0, "last_modified": "2018-01-02T03:04:05.765Z", "etag": "d41d8cd98f00b204e9800998ecf8427e", + "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}, {"name": "updated/logs/path/cloud-logs-test-connection-20260513T111201", + "size": 9, "last_modified": "2018-01-02T03:04:05.949Z", "etag": "06aa6fa8bdc2078e7e1bd903e70c8f6a", "owner": "285755ea-e54d-40f7-8861-0a77cb9e9080"}], "next_marker": null, "is_truncated": false}' headers: @@ -966,7 +966,7 @@ interactions: Content-Type: - application/json Expires: - - Mon, 11 May 2026 14:26:46 GMT + - Wed, 13 May 2026 11:12:05 GMT Pragma: - no-cache Strict-Transport-Security: @@ -991,7 +991,7 @@ interactions: code: 200 duration: "" - request: - body: '{"name":"cloud-logs-test-connection-20260511T142640","method":"DELETE","expires_in":360}' + body: '{"name":"cloud-logs-test-connection-20260513T111159","method":"DELETE","expires_in":360}' form: {} headers: Accept: @@ -1000,10 +1000,10 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778509593540443000/object-url + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778670711233974000/object-url method: POST response: - body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-monitoring-1778509593540443000/cloud-logs-test-connection-20260511T142640?Signature=BqjMbd6DOLRT0LaQ54nPV89q40k%3D&Expires=1778509970&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCnV93tl%2BlllJAlEokngMgjdWAdpeeh4/6Rx8U2XV0D3hWk8KJvhI9Jc6UzxGcErQNN3XkTmSRBGRDUgOA5%2BNppOekJD0xEEh0SV0htz1pL/qOxXHlecPjDQh4A4k/HnVIQ9knJwmNY0QugJeebHMUZeNVnqfAJwmYG4F9zl0CmNkJeAHOcS9i3zTqbJbjG1rzBBx2DfeWNbxeVx0sB7j0kMprBPVUxVdRWJfYTXsxloV9AMKQ9oOr7iIgu96mqY5sn80uPtP6iYQ/Caig7oDcdLu8NYyqHWX3ZVukNDvx7Lql1/kS0bzaPeIrf8HNLyo4S6nKtZRTjAp991oR/RNhcG4iPPuubb8r/My23vttZEtuspzXXc7yhGEqSKVwqW/V%2BCvZxuFoBu%2BH9Add66N%2BNYcy5LHn9i%2B/LuLbceZkJFVo9uI%2BNLAytAS6UBXJ%2B%2BKtHaPJpQgRTBupw5IsuDjLm1CDsW0", + body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-monitoring-1778670711233974000/cloud-logs-test-connection-20260513T111159?Signature=SK8%2ByGdsUSLMPETmKKelH4ZLLaY%3D&Expires=1778671089&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCsY4l9uaDAgtSv50dG9NSivayDy0zwbik%2BVd9Z0lG0/PZ0vImhnAeD%2BfEZELuWGaGxl87v0DTYlFJrBZ3%2B2844JyP3Bb2FWIiC3yzqxOKYRT2s/5YTUWKNBAA%2BfnDrXY4wYhHmkDaP1HydMiHXq1pIzygNHBv5DwqtMp376ZHItEPtxT5hxKToxkS2Gy/AW/L2CZyjOvQdmeVTAErQivePz9wYOT/3oL4cu3G/FEc9KyXG6NhO8eo9j5R4sbrbVyP7hxbpqv2ExTncsqZZXRUDGzapZhvID2%2BGRGr4VnkWQklCe2GrzCDllS2RtATJ%2BWPfyFs3fO9hbaR5tSQjmhPyGdhbwnpjwEYg6Msci//kYb2CP%2BNl%2B%2BkzA0Ie34sx6xr1BdhIwenmXrVws8Q/6ZV4Ozcn0M9CXudMhn0iyKbChXl7MfqyxuJ2A/1TFVvxyS7aNj3Tth%2BTFYF46qJFULs6tb55R2", "exists": true}' headers: Access-Control-Allow-Credentials: @@ -1023,13 +1023,13 @@ interactions: Connection: - keep-alive Content-Length: - - "852" + - "856" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Mon, 11 May 2026 14:26:50 GMT + - Wed, 13 May 2026 11:12:09 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1062,10 +1062,10 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778509593540443000/object-url + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778670711233974000/object-url method: POST response: - body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-monitoring-1778509593540443000/updated/logs/path/?Signature=wxuUSGkrijDFg5A4yOTTAqv9ONs%3D&Expires=1778509974&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCv55jr1ru2zbZVwrvR8lkkSFaFgD1xu5fM2%2BdzeNrwlY61AscnJxauOkEqSMHSlryBVhMHKUDgbmx1s2AzBHvgesAyE0eyHWQuGuvM6AmyS1ta8rZCfWZtRjrh/UXQ1AFp3T3WL8aT1IEpIRv8yxxQrNah0R9nKQOowxtnNqjYlinzao00AOcq2TiyzhdYlsNAsHsnmzIo0OWKNcjK6%2B9PhPubPbNpNMMAXWOCzG6R7JDRDW4sm8kNDr7Gv7%2Bbe6GK2UE58NXAYm84uH3fM7nQ7qoeYuksfm9ndstQTQQO2FKDHCOnwmxY4keeQGhm3CyOXF43ijhWknedTAVvrQpk6Xl596OW4hIrpVydMLwAPHACeLKqErrVU1WmfoA5Wh43FfsgVhtkTpxdESZa3n5oCQEhn4Hpie2qF5evdCanoP7QlknXTFXX7GjQT9ZL01/MFEP2IlNPwyIEAs3CQWb18Svgi2", + body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-monitoring-1778670711233974000/updated/logs/path/?Signature=gp5zjkWxHRmP4unf156Xyp3ULKk%3D&Expires=1778671093&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCvQcMstTC970Dp4tkTC%2Btt4wlzJPcPp5kRCISFBpzhBv%2BJ33WKS1snOFpKHU%2B/Royec4wdRMBsUmK3BbHWNflgHUM0e19Yg9%2BH7fym8RoackOrzG7EDTluxsZAw6EU5SnLZYJ/zDSGC3xy9FhaUKtRAKcrBfPYnOeOLrT6exThZ7/Oh%2BN/p8okzqW/Uu/tHerIqMYxwKkew8lzX3FnasYDaTwhFinAIOUDc0KixTzhVOCmGTyT6gKZMx6HhhBwQkUuRPW6VAY7NuNFrlU%2BWKcvAGnuEqVPJ5ZJACa3x6vvZFg03GNVvaO9yxqIePbBeIINDFeW2jJBfyzGFICnUhzRNx%2BZttabArvcKutCqvxU/KbiUysi7myzROmWH0cC6H2OYSHGCxorFIppCW7fVOpdmIkBbKDsDIf%2BZ/mXelJBd54urwEw97pQbJNtYs/QSmFJgBqSGsW2%2B0tMI38lj%2BDp/xZ3dd", "exists": true}' headers: Access-Control-Allow-Credentials: @@ -1085,13 +1085,13 @@ interactions: Connection: - keep-alive Content-Length: - - "816" + - "830" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Mon, 11 May 2026 14:26:54 GMT + - Wed, 13 May 2026 11:12:13 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1115,7 +1115,7 @@ interactions: code: 200 duration: "" - request: - body: '{"name":"updated/logs/path/cloud-logs-test-connection-20260511T142642","method":"DELETE","expires_in":360}' + body: '{"name":"updated/logs/path/cloud-logs-test-connection-20260513T111201","method":"DELETE","expires_in":360}' form: {} headers: Accept: @@ -1124,10 +1124,10 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778509593540443000/object-url + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778670711233974000/object-url method: POST response: - body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-monitoring-1778509593540443000/updated/logs/path/cloud-logs-test-connection-20260511T142642?Signature=vNmHzGrEhuZj%2BR%2B19cCAJ%2Bgb5Bo%3D&Expires=1778509978&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCh3QGJzwZhZDoslnwJ%2BTfJQ0MACUQwYJ3es7EDScRF46MWnZhysajSbBxNBNq5FTY4Yz3Xvbh/klK%2BIGLkPaKv2o6yodkPKGoLvKoU%2B24soyPwy1Fbeoa42gRklbPU7Yrv0boHk9r1IXcu7itlhMhPZMrFDdkDWWfYc3faMwi1XS6yu%2BHsg3THzSGu1AhLvSpE6R0qtzUyDvVRjKhMO3l5e/s2KtQPHGSBGSJwZAeOOXxcETufWMYsf2hwg1Q41lSY9tYcSZdkvwO8DcbySH6WiDn/B8DY8u9xe4/TEne%2BvfH4Yczdle6R/pkeXzJ8kGp8TO2yjGUPNItAAPqE2qsDPO8nYUx8rNVGmV5iFpY%2BbUXXl9luC5ZfYA6YiO2k8nrfy87BGLmJuxbZXYIDoiLWePYq030XPc7n6uf%2BBDfGBH0wsjJLaymTWFMIIBFdBZFbUffWaebWy8Ry%2Bp65ltUXjObb3g", + body: '{"url": "https://gb-lon-1.linodeobjects.com:443/go-test-logs-monitoring-1778670711233974000/updated/logs/path/cloud-logs-test-connection-20260513T111201?Signature=BNAu6pGTu063GZtrgBWgbc7%2B3g8%3D&Expires=1778671097&AWSAccessKeyID=SANITIZED&x-amz-security-token=MQpmODAwOTNlZTliMTE0ZWY1MTY1ZTA4NzMxMjRkOWJhNzg4YTQ0YjhjNWVkMjk5NGJmYjI1NGM0ZDFlZWJkM2JjCt%2BgSRKmJtEeE1loy3IplMLpPVPjJJkLIPyGu6MzwOIr7d13QxQ%2Bd9NGSRH4za10cRLlonhoO8rRQYPf7%2BvP55PG0P4uB3lFChVD9HY9AL/QsCJs5A4qxy23ognzcAnkc0Hb1F49PHU/MLuhEl7RlUoO/ZNwdcu/umcaU2shGyQmJdEk35eZqRh7J9lYoBqKaiBuDmTjJWc1sjnH9lnCKZYEADn6nd4c0bbSnPmE/4crhJS0wUSj9VsTRFVM4UqEVkOkhi6RY8vxQWvhDDOxuWCAC6vgtmn9Y/1C6rWXpurhGqbXC9XCKzDLmuNYm15hkl3n7oIkL0UVx7kfkcxDb0H%2BywtuRGoLNKNMZeeUTfkdCAfGCeHWxaQfPzPq%2B5ADZWL1UqLwmtrDeijk4YawuGyrLRrkEWdTGvXzL8WfpRPCCYcRnUuk3gH8py0yr8cFzC3lzMCeXN/dhHXmucP7HpuvfQRy", "exists": true}' headers: Access-Control-Allow-Credentials: @@ -1151,7 +1151,7 @@ interactions: Content-Type: - application/json Expires: - - Mon, 11 May 2026 14:26:58 GMT + - Wed, 13 May 2026 11:12:17 GMT Pragma: - no-cache Strict-Transport-Security: @@ -1185,7 +1185,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778509593540443000 + url: https://api.linode.com/v4beta/object-storage/buckets/gb-lon/go-test-logs-monitoring-1778670711233974000 method: DELETE response: body: '{}' @@ -1213,7 +1213,7 @@ interactions: Content-Type: - application/json Expires: - - Mon, 11 May 2026 14:27:04 GMT + - Wed, 13 May 2026 11:12:23 GMT Pragma: - no-cache Strict-Transport-Security: diff --git a/test/integration/integration_suite_test.go b/test/integration/integration_suite_test.go index 3052ae092..053ed5599 100644 --- a/test/integration/integration_suite_test.go +++ b/test/integration/integration_suite_test.go @@ -117,10 +117,27 @@ func testRecorder(t *testing.T, fixturesYaml string, testingMode recorder.Mode, // Sanitize credentials only when saving to cassette, so that real access/secret // keys are available to test code during recording (e.g. for creating a // LogsDestination that requires valid object-storage credentials). + + // Object Storage access_key / secret_key (response and request bodies) re := regexp.MustCompile(`"access_key": "[[:alnum:]]*"`) i.Response.Body = re.ReplaceAllString(i.Response.Body, `"access_key": "[SANITIZED]"`) + i.Request.Body = re.ReplaceAllString(i.Request.Body, `"access_key": "[SANITIZED]"`) re = regexp.MustCompile(`"secret_key": "[[:alnum:]]*"`) i.Response.Body = re.ReplaceAllString(i.Response.Body, `"secret_key": "[SANITIZED]"`) + i.Request.Body = re.ReplaceAllString(i.Request.Body, `"secret_key": "[SANITIZED]"`) + + // LogsDestination credentials (access_key_id / access_key_secret) + re = regexp.MustCompile(`"access_key_id":\s*"[^"]*"`) + i.Response.Body = re.ReplaceAllString(i.Response.Body, `"access_key_id": "[SANITIZED]"`) + i.Request.Body = re.ReplaceAllString(i.Request.Body, `"access_key_id":"[SANITIZED]"`) + re = regexp.MustCompile(`"access_key_secret":\s*"[^"]*"`) + i.Response.Body = re.ReplaceAllString(i.Response.Body, `"access_key_secret": "[SANITIZED]"`) + i.Request.Body = re.ReplaceAllString(i.Request.Body, `"access_key_secret":"[SANITIZED]"`) + + // Custom HTTPS basic authentication password + re = regexp.MustCompile(`"basic_authentication_password":\s*"[^"]*"`) + i.Response.Body = re.ReplaceAllString(i.Response.Body, `"basic_authentication_password": "[SANITIZED]"`) + i.Request.Body = re.ReplaceAllString(i.Request.Body, `"basic_authentication_password":"[SANITIZED]"`) re = regexp.MustCompile("AWSAccessKeyId=[[:alnum:]]{20}") i.Response.Body = re.ReplaceAllString(i.Response.Body, "AWSAccessKeyID=SANITIZED") diff --git a/test/integration/monitor_logs_test.go b/test/integration/monitor_logs_test.go index d91c79df3..894850b99 100644 --- a/test/integration/monitor_logs_test.go +++ b/test/integration/monitor_logs_test.go @@ -3,6 +3,7 @@ package integration import ( "context" "fmt" + "io" "net/http" "os" "testing" @@ -89,6 +90,8 @@ func setupObjectStorageForLogs(t *testing.T, client *linodego.Client) (*linodego t.Errorf("failed to delete object: %s", err) continue } + _, _ = io.Copy(io.Discard, res.Body) + res.Body.Close() if res.StatusCode != 204 { t.Errorf("expected status code to be 204; got %d", res.StatusCode) } From a0165ce363e258f7a760aaabe315088ed6d935c1 Mon Sep 17 00:00:00 2001 From: Kajetan Date: Fri, 15 May 2026 10:42:03 +0200 Subject: [PATCH 17/21] [DPS-42654] [ACLP SDK][Go] ACLP Logs SDK Pull request - fixed lint errors --- monitor_log_destinations.go | 6 +++--- monitor_log_streams.go | 8 ++++---- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/monitor_log_destinations.go b/monitor_log_destinations.go index 74a52ead9..cd7cf08b1 100644 --- a/monitor_log_destinations.go +++ b/monitor_log_destinations.go @@ -141,7 +141,7 @@ const logsDestinationBaseEndpoint = "monitor/streams/destinations" type LogsDestinationCreateOptions struct { Label string `json:"label"` Type LogsDestinationType `json:"type"` - Details interface{} `json:"details"` + Details any `json:"details"` } // LogsDestinationDetailsUpdateOptions represents the details block used when updating @@ -169,8 +169,8 @@ type LogsDestinationCustomHTTPSDetailsUpdateOptions struct { // Set Details to *LogsDestinationDetailsUpdateOptions for akamai_object_storage, // or *LogsDestinationCustomHTTPSDetailsUpdateOptions for custom_https. type LogsDestinationUpdateOptions struct { - Label string `json:"label,omitempty"` - Details interface{} `json:"details,omitempty"` + Label string `json:"label,omitempty"` + Details any `json:"details,omitempty"` } // ListLogsDestinations returns a paginated list of logs destinations. diff --git a/monitor_log_streams.go b/monitor_log_streams.go index d2f011e43..b1bc59472 100644 --- a/monitor_log_streams.go +++ b/monitor_log_streams.go @@ -49,10 +49,10 @@ type StreamDetails struct { // StreamDestination is a destination configured on an ACLP logs stream. type StreamDestination struct { - ID int `json:"id"` - Label string `json:"label"` - Type StreamDestinationType `json:"type"` - Details LogsDestinationDetails `json:"details"` + ID int `json:"id"` + Label string `json:"label"` + Type StreamDestinationType `json:"type"` + Details LogsDestinationDetails `json:"details"` } // Stream represents an ACLP logs stream. From 6e479263989dd3acf9c9b330527ed9b73f536f68 Mon Sep 17 00:00:00 2001 From: klipensk Date: Wed, 20 May 2026 16:05:34 +0200 Subject: [PATCH 18/21] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- test/integration/integration_suite_test.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/integration/integration_suite_test.go b/test/integration/integration_suite_test.go index 053ed5599..fc69dbd5a 100644 --- a/test/integration/integration_suite_test.go +++ b/test/integration/integration_suite_test.go @@ -119,10 +119,10 @@ func testRecorder(t *testing.T, fixturesYaml string, testingMode recorder.Mode, // LogsDestination that requires valid object-storage credentials). // Object Storage access_key / secret_key (response and request bodies) - re := regexp.MustCompile(`"access_key": "[[:alnum:]]*"`) + re := regexp.MustCompile(`"access_key":\s*"[^"]*"`) i.Response.Body = re.ReplaceAllString(i.Response.Body, `"access_key": "[SANITIZED]"`) i.Request.Body = re.ReplaceAllString(i.Request.Body, `"access_key": "[SANITIZED]"`) - re = regexp.MustCompile(`"secret_key": "[[:alnum:]]*"`) + re = regexp.MustCompile(`"secret_key":\s*"[^"]*"`) i.Response.Body = re.ReplaceAllString(i.Response.Body, `"secret_key": "[SANITIZED]"`) i.Request.Body = re.ReplaceAllString(i.Request.Body, `"secret_key": "[SANITIZED]"`) From 0c4d454d43bd0c53689baf80f91f9ae36eb602d8 Mon Sep 17 00:00:00 2001 From: Kajetan Date: Wed, 20 May 2026 16:29:37 +0200 Subject: [PATCH 19/21] [DPS-42654] [ACLP SDK][Go] ACLP Logs SDK Pull request - lint errors --- test/integration/monitor_logs_test.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/integration/monitor_logs_test.go b/test/integration/monitor_logs_test.go index 894850b99..4f4568d2e 100644 --- a/test/integration/monitor_logs_test.go +++ b/test/integration/monitor_logs_test.go @@ -69,7 +69,6 @@ func setupObjectStorageForLogs(t *testing.T, client *linodego.Client) (*linodego Method: http.MethodDelete, ExpiresIn: &objectStorageObjectURLExpirySeconds, }) - if err != nil { t.Errorf("failed to get object DELETE url: %s", err) continue @@ -280,7 +279,8 @@ func TestLogsDestination_List(t *testing.T) { } require.NotNil(t, found, "created destination not found in list") assert.Equal(t, linodego.LogsDestinationTypeAkamaiObjectStorage, found.Type) - assert.Contains(t, + assert.Contains( + t, []linodego.LogsDestinationStatus{ linodego.LogsDestinationStatusActive, linodego.LogsDestinationStatusInactive, From 1f51b5aa65164c3780787e5571f65c67f26fedd8 Mon Sep 17 00:00:00 2001 From: Kajetan Date: Wed, 3 Jun 2026 13:26:37 +0200 Subject: [PATCH 20/21] [DPS-42654] [ACLP SDK][Go] ACLP Logs SDK Pull request - minor fixes --- monitor_log_destinations.go | 58 ++++++++++++++++++------------------- monitor_log_streams.go | 19 ++++++------ 2 files changed, 39 insertions(+), 38 deletions(-) diff --git a/monitor_log_destinations.go b/monitor_log_destinations.go index cd7cf08b1..117979965 100644 --- a/monitor_log_destinations.go +++ b/monitor_log_destinations.go @@ -28,18 +28,18 @@ const ( // Fields are populated based on the destination type. type LogsDestinationDetails struct { // akamai_object_storage fields - AccessKeyID string `json:"access_key_id,omitempty"` - BucketName string `json:"bucket_name,omitempty"` - Host string `json:"host,omitempty"` - Path string `json:"path,omitempty"` + AccessKeyID string `json:"access_key_id,omitzero"` + BucketName string `json:"bucket_name,omitzero"` + Host string `json:"host,omitzero"` + Path string `json:"path,omitzero"` // custom_https fields - EndpointURL string `json:"endpoint_url,omitempty"` - Authentication *LogsDestinationCustomHTTPSAuthDetails `json:"authentication,omitempty"` - ClientCertificateDetails *LogsDestinationClientCertificateDetails `json:"client_certificate_details,omitempty"` - ContentType string `json:"content_type,omitempty"` - CustomHeaders []LogsDestinationCustomHTTPSHeader `json:"custom_headers,omitempty"` - DataCompression string `json:"data_compression,omitempty"` + EndpointURL string `json:"endpoint_url,omitzero"` + Authentication *LogsDestinationCustomHTTPSAuthDetails `json:"authentication,omitzero"` + ClientCertificateDetails *LogsDestinationClientCertificateDetails `json:"client_certificate_details,omitzero"` + ContentType string `json:"content_type,omitzero"` + CustomHeaders []LogsDestinationCustomHTTPSHeader `json:"custom_headers,omitzero"` + DataCompression string `json:"data_compression,omitzero"` } // LogsDestinationDetailsCreateOptions represents the details block used when creating @@ -49,7 +49,7 @@ type LogsDestinationDetailsCreateOptions struct { AccessKeySecret string `json:"access_key_secret"` BucketName string `json:"bucket_name"` Host string `json:"host"` - Path *string `json:"path,omitempty"` + Path *string `json:"path,omitzero"` } // LogsDestinationCustomHTTPSAuthType represents the authentication type for a custom_https destination. @@ -70,7 +70,7 @@ type LogsDestinationCustomHTTPSBasicAuthDetails struct { // LogsDestinationCustomHTTPSAuthDetails holds authentication configuration for a custom_https destination. type LogsDestinationCustomHTTPSAuthDetails struct { Type LogsDestinationCustomHTTPSAuthType `json:"type"` - Details *LogsDestinationCustomHTTPSBasicAuthDetails `json:"details,omitempty"` + Details *LogsDestinationCustomHTTPSBasicAuthDetails `json:"details,omitzero"` } // LogsDestinationCustomHTTPSHeader represents a single custom HTTP header. @@ -92,10 +92,10 @@ type LogsDestinationClientCertificateDetails struct { type LogsDestinationCustomHTTPSDetailsCreateOptions struct { EndpointURL string `json:"endpoint_url"` Authentication *LogsDestinationCustomHTTPSAuthDetails `json:"authentication"` - ClientCertificateDetails *LogsDestinationClientCertificateDetails `json:"client_certificate_details,omitempty"` - ContentType string `json:"content_type,omitempty"` - CustomHeaders []LogsDestinationCustomHTTPSHeader `json:"custom_headers,omitempty"` - DataCompression string `json:"data_compression,omitempty"` + ClientCertificateDetails *LogsDestinationClientCertificateDetails `json:"client_certificate_details,omitzero"` + ContentType string `json:"content_type,omitzero"` + CustomHeaders []LogsDestinationCustomHTTPSHeader `json:"custom_headers,omitzero"` + DataCompression string `json:"data_compression,omitzero"` } // LogsDestination represents a logs destination object. @@ -147,30 +147,30 @@ type LogsDestinationCreateOptions struct { // LogsDestinationDetailsUpdateOptions represents the details block used when updating // an akamai_object_storage LogsDestination. type LogsDestinationDetailsUpdateOptions struct { - AccessKeyID string `json:"access_key_id,omitempty"` - AccessKeySecret string `json:"access_key_secret,omitempty"` - BucketName string `json:"bucket_name,omitempty"` - Host string `json:"host,omitempty"` - Path *string `json:"path,omitempty"` + AccessKeyID string `json:"access_key_id,omitzero"` + AccessKeySecret string `json:"access_key_secret,omitzero"` + BucketName string `json:"bucket_name,omitzero"` + Host string `json:"host,omitzero"` + Path *string `json:"path,omitzero"` } // LogsDestinationCustomHTTPSDetailsUpdateOptions represents the details block used when // updating a custom_https LogsDestination. type LogsDestinationCustomHTTPSDetailsUpdateOptions struct { - EndpointURL string `json:"endpoint_url,omitempty"` - Authentication *LogsDestinationCustomHTTPSAuthDetails `json:"authentication,omitempty"` - ClientCertificateDetails *LogsDestinationClientCertificateDetails `json:"client_certificate_details,omitempty"` - ContentType string `json:"content_type,omitempty"` - CustomHeaders []LogsDestinationCustomHTTPSHeader `json:"custom_headers,omitempty"` - DataCompression string `json:"data_compression,omitempty"` + EndpointURL string `json:"endpoint_url,omitzero"` + Authentication *LogsDestinationCustomHTTPSAuthDetails `json:"authentication,omitzero"` + ClientCertificateDetails *LogsDestinationClientCertificateDetails `json:"client_certificate_details,omitzero"` + ContentType string `json:"content_type,omitzero"` + CustomHeaders []LogsDestinationCustomHTTPSHeader `json:"custom_headers,omitzero"` + DataCompression string `json:"data_compression,omitzero"` } // LogsDestinationUpdateOptions are the options used to update a LogsDestination. // Set Details to *LogsDestinationDetailsUpdateOptions for akamai_object_storage, // or *LogsDestinationCustomHTTPSDetailsUpdateOptions for custom_https. type LogsDestinationUpdateOptions struct { - Label string `json:"label,omitempty"` - Details any `json:"details,omitempty"` + Label string `json:"label,omitzero"` + Details any `json:"details,omitzero"` } // ListLogsDestinations returns a paginated list of logs destinations. diff --git a/monitor_log_streams.go b/monitor_log_streams.go index b1bc59472..994358192 100644 --- a/monitor_log_streams.go +++ b/monitor_log_streams.go @@ -38,12 +38,14 @@ type StreamDestinationType string const ( // StreamDestinationTypeAkamaiObjectStorage sends logs to Akamai Object Storage. StreamDestinationTypeAkamaiObjectStorage StreamDestinationType = "akamai_object_storage" + // StreamDestinationTypeCustomHTTPS sends logs to a custom HTTPS endpoint. + StreamDestinationTypeCustomHTTPS StreamDestinationType = "custom_https" ) // StreamDetails contains additional details for a logs stream. // This only applies to streams with a Type of StreamTypeLKEAuditLogs. type StreamDetails struct { - ClusterIDs []int `json:"cluster_ids,omitempty"` + ClusterIDs []int `json:"cluster_ids,omitzero"` IsAutoAddAllClustersEnabled bool `json:"is_auto_add_all_clusters_enabled"` } @@ -63,7 +65,7 @@ type Stream struct { Status StreamStatus `json:"status"` Version int `json:"version"` Destinations []StreamDestination `json:"destinations"` - Details *StreamDetails `json:"details,omitempty"` + Details *StreamDetails `json:"details,omitzero"` Created *time.Time `json:"-"` Updated *time.Time `json:"-"` CreatedBy string `json:"created_by"` @@ -75,17 +77,16 @@ type StreamCreateOptions struct { Destinations []int `json:"destinations"` Label string `json:"label"` Type StreamType `json:"type"` - Status *StreamStatus `json:"status,omitempty"` - Details *StreamDetails `json:"details,omitempty"` + Status *StreamStatus `json:"status,omitzero"` + Details *StreamDetails `json:"details,omitzero"` } // StreamUpdateOptions are the fields used to update an ACLP logs stream. type StreamUpdateOptions struct { - Destinations []int `json:"destinations,omitempty"` - Label *string `json:"label,omitempty"` - Type *StreamType `json:"type,omitempty"` - Status *StreamStatus `json:"status,omitempty"` - Details *StreamDetails `json:"details,omitempty"` + Destinations []int `json:"destinations,omitzero"` + Label *string `json:"label,omitzero"` + Status *StreamStatus `json:"status,omitzero"` + Details *StreamDetails `json:"details,omitzero"` } // UnmarshalJSON implements the json.Unmarshaler interface. From e23f316d8599dd8f5b0aff557358894be375c3c6 Mon Sep 17 00:00:00 2001 From: Kajetan Date: Wed, 3 Jun 2026 13:32:45 +0200 Subject: [PATCH 21/21] [DPS-42654] [ACLP SDK][Go] ACLP Logs SDK Pull request - minor fixes --- test/unit/monitor_logs_test.go | 2 -- 1 file changed, 2 deletions(-) diff --git a/test/unit/monitor_logs_test.go b/test/unit/monitor_logs_test.go index 1ddb9f637..e7a3c7d72 100644 --- a/test/unit/monitor_logs_test.go +++ b/test/unit/monitor_logs_test.go @@ -369,12 +369,10 @@ func TestUpdateLogStream(t *testing.T) { base.MockPut("monitor/streams/456", fixtureData) label := "AuditLog-config" - streamType := linodego.StreamTypeAuditLogs status := linodego.StreamStatusActive updateOpts := linodego.StreamUpdateOptions{ Destinations: []int{testLogsDestinationID}, Label: &label, - Type: &streamType, Status: &status, }