diff --git a/internal/services/cockpit/alert_manager.go b/internal/services/cockpit/alert_manager.go index 508c0376ca..2bc4d7f93c 100644 --- a/internal/services/cockpit/alert_manager.go +++ b/internal/services/cockpit/alert_manager.go @@ -4,6 +4,7 @@ import ( "context" "errors" "fmt" + "strings" "github.com/hashicorp/terraform-plugin-sdk/v2/diag" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" @@ -123,7 +124,11 @@ func ResourceCockpitAlertManagerRead(ctx context.Context, d *schema.ResourceData return diag.FromErr(err) } - projectID := d.Get("project_id").(string) + // Parse the ID to get projectID + _, projectID, err := ResourceCockpitAlertManagerParseID(d.Id()) + if err != nil { + return diag.FromErr(err) + } alertManager, err := api.GetAlertManager(&cockpit.RegionalAPIGetAlertManagerRequest{ Region: region, @@ -136,6 +141,7 @@ func ResourceCockpitAlertManagerRead(ctx context.Context, d *schema.ResourceData _ = d.Set("enable_managed_alerts", alertManager.ManagedAlertsEnabled) _ = d.Set("region", alertManager.Region) _ = d.Set("alert_manager_url", alertManager.AlertManagerURL) + _ = d.Set("project_id", projectID) contactPoints, err := api.ListContactPoints(&cockpit.RegionalAPIListContactPointsRequest{ Region: region, @@ -167,7 +173,11 @@ func ResourceCockpitAlertManagerUpdate(ctx context.Context, d *schema.ResourceDa return diag.FromErr(err) } - projectID := d.Get("project_id").(string) + // Parse the ID to get projectID + _, projectID, err := ResourceCockpitAlertManagerParseID(d.Id()) + if err != nil { + return diag.FromErr(err) + } if d.HasChange("enable_managed_alerts") { enable := d.Get("enable_managed_alerts").(bool) @@ -247,7 +257,11 @@ func ResourceCockpitAlertManagerDelete(ctx context.Context, d *schema.ResourceDa return diag.FromErr(err) } - projectID := d.Get("project_id").(string) + // Parse the ID to get projectID + _, projectID, err := ResourceCockpitAlertManagerParseID(d.Id()) + if err != nil { + return diag.FromErr(err) + } contactPoints, err := api.ListContactPoints(&cockpit.RegionalAPIListContactPointsRequest{ Region: region, @@ -291,6 +305,19 @@ func ResourceCockpitAlertManagerDelete(ctx context.Context, d *schema.ResourceDa return nil } +// ResourceCockpitAlertManagerID builds the resource identifier +// The resource identifier format is "Region/ProjectID/1" func ResourceCockpitAlertManagerID(region scw.Region, projectID string) (resourceID string) { return fmt.Sprintf("%s/%s/1", region, projectID) } + +// ResourceCockpitAlertManagerParseID extracts region and project ID from the resource identifier. +// The resource identifier format is "Region/ProjectID/1" +func ResourceCockpitAlertManagerParseID(resourceID string) (region scw.Region, projectID string, err error) { + parts := strings.Split(resourceID, "/") + if len(parts) != 3 { + return "", "", fmt.Errorf("invalid alert manager ID format: %s", resourceID) + } + + return scw.Region(parts[0]), parts[1], nil +} diff --git a/internal/services/cockpit/alert_manager_test.go b/internal/services/cockpit/alert_manager_test.go index 4822b10811..bfc63ee632 100644 --- a/internal/services/cockpit/alert_manager_test.go +++ b/internal/services/cockpit/alert_manager_test.go @@ -1,7 +1,10 @@ package cockpit_test import ( + "errors" "fmt" + "strconv" + "strings" "testing" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" @@ -166,6 +169,67 @@ func TestAccCockpitAlertManager_EnableDisable(t *testing.T) { }) } +func TestAccCockpitAlertManager_IDHandling(t *testing.T) { + tt := acctest.NewTestTools(t) + defer tt.Cleanup() + + resource.ParallelTest(t, resource.TestCase{ + PreCheck: func() { acctest.PreCheck(t) }, + ProviderFactories: tt.ProviderFactories, + CheckDestroy: testAccCockpitAlertManagerAndContactsDestroy(tt), + Steps: []resource.TestStep{ + { + Config: ` + resource "scaleway_account_project" "project" { + name = "tf_test_cockpit_alert_manager_id_parsing" + } + + resource "scaleway_cockpit_alert_manager" "main" { + project_id = scaleway_account_project.project.id + enable_managed_alerts = true + + contact_points { + email = "test@example.com" + } + } + `, + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttrSet("scaleway_cockpit_alert_manager.main", "id"), + resource.TestCheckResourceAttrSet("scaleway_cockpit_alert_manager.main", "project_id"), + resource.TestCheckResourceAttrSet("scaleway_cockpit_alert_manager.main", "region"), + resource.TestCheckResourceAttr("scaleway_cockpit_alert_manager.main", "enable_managed_alerts", "true"), + resource.TestCheckResourceAttrSet("scaleway_cockpit_alert_manager.main", "alert_manager_url"), + resource.TestCheckResourceAttr("scaleway_cockpit_alert_manager.main", "contact_points.0.email", "test@example.com"), + testAccCheckAlertManagerIDFormat(tt, "scaleway_cockpit_alert_manager.main"), + ), + }, + { + Config: ` + resource "scaleway_account_project" "project" { + name = "tf_test_cockpit_alert_manager_id_parsing" + } + + resource "scaleway_cockpit_alert_manager" "main" { + project_id = scaleway_account_project.project.id + enable_managed_alerts = true + + contact_points { + email = "updated@example.com" + } + } + `, + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttrSet("scaleway_cockpit_alert_manager.main", "id"), + resource.TestCheckResourceAttrSet("scaleway_cockpit_alert_manager.main", "project_id"), + resource.TestCheckResourceAttrSet("scaleway_cockpit_alert_manager.main", "region"), + resource.TestCheckResourceAttr("scaleway_cockpit_alert_manager.main", "contact_points.0.email", "updated@example.com"), + testAccCheckAlertManagerIDFormat(tt, "scaleway_cockpit_alert_manager.main"), + ), + }, + }, + }) +} + func testAccCockpitAlertManagerConfigWithContacts(contactPoints []map[string]string) string { contactsConfig := "" for _, contact := range contactPoints { @@ -205,7 +269,7 @@ func testAccCheckAlertManagerEnabled(tt *acctest.TestTools, resourceName string, return func(s *terraform.State) error { rs, ok := s.RootModule().Resources[resourceName] if !ok { - return fmt.Errorf("alert manager not found: %s", resourceName) + return errors.New("alert manager not found: " + resourceName) } api := cockpit.NewRegionalAPI(meta.ExtractScwClient(tt.Meta)) @@ -230,7 +294,7 @@ func testAccCheckCockpitContactPointExists(tt *acctest.TestTools, resourceName s return func(s *terraform.State) error { rs, ok := s.RootModule().Resources[resourceName] if !ok { - return fmt.Errorf("alert manager not found: %s", resourceName) + return errors.New("alert manager not found: " + resourceName) } api := cockpit.NewRegionalAPI(meta.ExtractScwClient(tt.Meta)) @@ -249,7 +313,7 @@ func testAccCheckCockpitContactPointExists(tt *acctest.TestTools, resourceName s } } - return fmt.Errorf("contact point with email %s not found in project %s", rs.Primary.Attributes["emails.0"], projectID) + return errors.New("contact point with email " + rs.Primary.Attributes["emails.0"] + " not found in project " + projectID) } } @@ -277,10 +341,57 @@ func testAccCockpitAlertManagerAndContactsDestroy(tt *acctest.TestTools) resourc } if alertManager.AlertManagerEnabled { - return fmt.Errorf("cockpit alert manager (%s) is still enabled", rs.Primary.ID) + return errors.New("cockpit alert manager (" + rs.Primary.ID + ") is still enabled") } } return nil } } + +// testAccCheckAlertManagerIDFormat verifies the ID format +func testAccCheckAlertManagerIDFormat(tt *acctest.TestTools, resourceName string) resource.TestCheckFunc { + return func(s *terraform.State) error { + rs, ok := s.RootModule().Resources[resourceName] + if !ok { + return errors.New("alert manager not found: " + resourceName) + } + + id := rs.Primary.ID + if id == "" { + return errors.New("alert manager ID is empty") + } + + parts := strings.Split(id, "/") + if len(parts) != 3 { + return errors.New("alert manager ID should have 3 parts, got " + strconv.Itoa(len(parts)) + ": " + id) + } + + region := parts[0] + projectID := parts[1] + + if region == "" { + return errors.New("region part of ID is empty") + } + + if projectID == "" { + return errors.New("project ID part of ID is empty") + } + + if parts[2] != "1" { + return errors.New("third part of ID should be '1', got " + parts[2]) + } + + expectedProjectID := rs.Primary.Attributes["project_id"] + if expectedProjectID != projectID { + return errors.New("project_id in attributes (" + expectedProjectID + ") doesn't match project_id in ID (" + projectID + ")") + } + + expectedRegion := rs.Primary.Attributes["region"] + if expectedRegion != region { + return errors.New("region in attributes (" + expectedRegion + ") doesn't match region in ID (" + region + ")") + } + + return nil + } +} diff --git a/internal/services/cockpit/testdata/cockpit-alert-manager-id-handling.cassette.yaml b/internal/services/cockpit/testdata/cockpit-alert-manager-id-handling.cassette.yaml new file mode 100644 index 0000000000..a8a6b2c4d5 --- /dev/null +++ b/internal/services/cockpit/testdata/cockpit-alert-manager-id-handling.cassette.yaml @@ -0,0 +1,1289 @@ +--- +version: 2 +interactions: + - id: 0 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 125 + transfer_encoding: [] + trailer: {} + host: api.scaleway.com + remote_addr: "" + request_uri: "" + body: '{"name":"tf_test_cockpit_alert_manager_id_parsing","organization_id":"105bdce1-64c0-48ab-899d-868455867ecf","description":""}' + form: {} + headers: + Content-Type: + - application/json + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.24.0; darwin; arm64) terraform-provider/develop terraform/terraform-tests + url: https://api.scaleway.com/account/v3/projects + method: POST + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 282 + uncompressed: false + body: '{"created_at":"2025-08-01T06:09:47.722664Z","description":"","id":"325b0fc9-1f88-48ca-bc6c-788541294135","name":"tf_test_cockpit_alert_manager_id_parsing","organization_id":"105bdce1-64c0-48ab-899d-868455867ecf","qualification":null,"updated_at":"2025-08-01T06:09:47.722664Z"}' + headers: + Content-Length: + - "282" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Fri, 01 Aug 2025 06:09:48 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - d00c1e77-d375-4b1a-9276-ea16b6ae0d24 + status: 200 OK + code: 200 + duration: 1.0251935s + - id: 1 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: api.scaleway.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.24.0; darwin; arm64) terraform-provider/develop terraform/terraform-tests + url: https://api.scaleway.com/account/v3/projects/325b0fc9-1f88-48ca-bc6c-788541294135 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 327 + uncompressed: false + body: '{"created_at":"2025-08-01T06:09:47.722664Z","description":"","id":"325b0fc9-1f88-48ca-bc6c-788541294135","name":"tf_test_cockpit_alert_manager_id_parsing","organization_id":"105bdce1-64c0-48ab-899d-868455867ecf","qualification":{"architecture_type":"unknown_architecture_type"},"updated_at":"2025-08-01T06:09:47.722664Z"}' + headers: + Content-Length: + - "327" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Fri, 01 Aug 2025 06:09:48 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - bfa8dfd7-7127-4aaa-8553-0479a5765198 + status: 200 OK + code: 200 + duration: 191.72875ms + - id: 2 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 53 + transfer_encoding: [] + trailer: {} + host: api.scaleway.com + remote_addr: "" + request_uri: "" + body: '{"project_id":"325b0fc9-1f88-48ca-bc6c-788541294135"}' + form: {} + headers: + Content-Type: + - application/json + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.24.0; darwin; arm64) terraform-provider/develop terraform/terraform-tests + url: https://api.scaleway.com/cockpit/v1/regions/fr-par/alert-manager/enable + method: POST + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 187 + uncompressed: false + body: '{"alert_manager_enabled":true,"alert_manager_url":"https://ba877492-58da-4080-8279-ff38cc70c3fb.alertmanager.cockpit.fr-par.scw.cloud","managed_alerts_enabled":false,"region":"fr-par"}' + headers: + Content-Length: + - "187" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Fri, 01 Aug 2025 06:09:48 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 4c484ec3-5ca6-4837-bc91-c95df324e8e3 + status: 200 OK + code: 200 + duration: 427.569833ms + - id: 3 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 53 + transfer_encoding: [] + trailer: {} + host: api.scaleway.com + remote_addr: "" + request_uri: "" + body: '{"project_id":"325b0fc9-1f88-48ca-bc6c-788541294135"}' + form: {} + headers: + Content-Type: + - application/json + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.24.0; darwin; arm64) terraform-provider/develop terraform/terraform-tests + url: https://api.scaleway.com/cockpit/v1/regions/fr-par/alert-manager/managed-alerts/enable + method: POST + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 186 + uncompressed: false + body: '{"alert_manager_enabled":true,"alert_manager_url":"https://ba877492-58da-4080-8279-ff38cc70c3fb.alertmanager.cockpit.fr-par.scw.cloud","managed_alerts_enabled":true,"region":"fr-par"}' + headers: + Content-Length: + - "186" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Fri, 01 Aug 2025 06:09:50 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 7d2d48e7-9e21-46e2-a42f-1c3a501608a2 + status: 200 OK + code: 200 + duration: 1.794140667s + - id: 4 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 87 + transfer_encoding: [] + trailer: {} + host: api.scaleway.com + remote_addr: "" + request_uri: "" + body: '{"project_id":"325b0fc9-1f88-48ca-bc6c-788541294135","email":{"to":"test@example.com"}}' + form: {} + headers: + Content-Type: + - application/json + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.24.0; darwin; arm64) terraform-provider/develop terraform/terraform-tests + url: https://api.scaleway.com/cockpit/v1/regions/fr-par/alert-manager/contact-points + method: POST + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 90 + uncompressed: false + body: '{"email":{"to":"test@example.com"},"region":"fr-par","send_resolved_notifications":true}' + headers: + Content-Length: + - "90" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Fri, 01 Aug 2025 06:09:50 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 080a8133-468d-4bb1-a71a-f8fbda18ff46 + status: 200 OK + code: 200 + duration: 536.418208ms + - id: 5 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: api.scaleway.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.24.0; darwin; arm64) terraform-provider/develop terraform/terraform-tests + url: https://api.scaleway.com/cockpit/v1/regions/fr-par/alert-manager?project_id=325b0fc9-1f88-48ca-bc6c-788541294135 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 186 + uncompressed: false + body: '{"alert_manager_enabled":true,"alert_manager_url":"https://ba877492-58da-4080-8279-ff38cc70c3fb.alertmanager.cockpit.fr-par.scw.cloud","managed_alerts_enabled":true,"region":"fr-par"}' + headers: + Content-Length: + - "186" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Fri, 01 Aug 2025 06:09:51 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 5f8525b1-46da-45b6-8a29-37fc91f32126 + status: 200 OK + code: 200 + duration: 106.753583ms + - id: 6 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: api.scaleway.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.24.0; darwin; arm64) terraform-provider/develop terraform/terraform-tests + url: https://api.scaleway.com/cockpit/v1/regions/fr-par/alert-manager/contact-points?project_id=325b0fc9-1f88-48ca-bc6c-788541294135 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 201 + uncompressed: false + body: '{"contact_points":[{"email":{"to":"test@example.com"},"region":"fr-par","send_resolved_notifications":true}],"has_additional_contact_points":false,"has_additional_receivers":false,"total_count":1}' + headers: + Content-Length: + - "201" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Fri, 01 Aug 2025 06:09:52 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 2819a698-8473-445b-8217-959521f26fbe + status: 200 OK + code: 200 + duration: 1.000865958s + - id: 7 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: api.scaleway.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.24.0; darwin; arm64) terraform-provider/develop terraform/terraform-tests + url: https://api.scaleway.com/account/v3/projects/325b0fc9-1f88-48ca-bc6c-788541294135 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 327 + uncompressed: false + body: '{"created_at":"2025-08-01T06:09:47.722664Z","description":"","id":"325b0fc9-1f88-48ca-bc6c-788541294135","name":"tf_test_cockpit_alert_manager_id_parsing","organization_id":"105bdce1-64c0-48ab-899d-868455867ecf","qualification":{"architecture_type":"unknown_architecture_type"},"updated_at":"2025-08-01T06:09:47.722664Z"}' + headers: + Content-Length: + - "327" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Fri, 01 Aug 2025 06:09:53 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 9fcc7c87-bf99-494b-97a1-98134e794cc0 + status: 200 OK + code: 200 + duration: 190.501875ms + - id: 8 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: api.scaleway.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.24.0; darwin; arm64) terraform-provider/develop terraform/terraform-tests + url: https://api.scaleway.com/cockpit/v1/regions/fr-par/alert-manager?project_id=325b0fc9-1f88-48ca-bc6c-788541294135 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 186 + uncompressed: false + body: '{"alert_manager_enabled":true,"alert_manager_url":"https://ba877492-58da-4080-8279-ff38cc70c3fb.alertmanager.cockpit.fr-par.scw.cloud","managed_alerts_enabled":true,"region":"fr-par"}' + headers: + Content-Length: + - "186" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Fri, 01 Aug 2025 06:09:53 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 5326db7d-3d8d-4943-88a7-e2fb048f983a + status: 200 OK + code: 200 + duration: 106.741042ms + - id: 9 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: api.scaleway.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.24.0; darwin; arm64) terraform-provider/develop terraform/terraform-tests + url: https://api.scaleway.com/cockpit/v1/regions/fr-par/alert-manager/contact-points?project_id=325b0fc9-1f88-48ca-bc6c-788541294135 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 201 + uncompressed: false + body: '{"contact_points":[{"email":{"to":"test@example.com"},"region":"fr-par","send_resolved_notifications":true}],"has_additional_contact_points":false,"has_additional_receivers":false,"total_count":1}' + headers: + Content-Length: + - "201" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Fri, 01 Aug 2025 06:09:53 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - de774ebc-b78c-484a-873c-791ab137541b + status: 200 OK + code: 200 + duration: 117.345875ms + - id: 10 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: api.scaleway.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.24.0; darwin; arm64) terraform-provider/develop terraform/terraform-tests + url: https://api.scaleway.com/account/v3/projects/325b0fc9-1f88-48ca-bc6c-788541294135 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 327 + uncompressed: false + body: '{"created_at":"2025-08-01T06:09:47.722664Z","description":"","id":"325b0fc9-1f88-48ca-bc6c-788541294135","name":"tf_test_cockpit_alert_manager_id_parsing","organization_id":"105bdce1-64c0-48ab-899d-868455867ecf","qualification":{"architecture_type":"unknown_architecture_type"},"updated_at":"2025-08-01T06:09:47.722664Z"}' + headers: + Content-Length: + - "327" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Fri, 01 Aug 2025 06:09:54 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 60b7d670-38db-4590-ab3d-72a2f601dfef + status: 200 OK + code: 200 + duration: 199.500416ms + - id: 11 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: api.scaleway.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.24.0; darwin; arm64) terraform-provider/develop terraform/terraform-tests + url: https://api.scaleway.com/cockpit/v1/regions/fr-par/alert-manager?project_id=325b0fc9-1f88-48ca-bc6c-788541294135 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 186 + uncompressed: false + body: '{"alert_manager_enabled":true,"alert_manager_url":"https://ba877492-58da-4080-8279-ff38cc70c3fb.alertmanager.cockpit.fr-par.scw.cloud","managed_alerts_enabled":true,"region":"fr-par"}' + headers: + Content-Length: + - "186" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Fri, 01 Aug 2025 06:09:54 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - f57662c3-6372-4306-83a2-fb52a9eb2d88 + status: 200 OK + code: 200 + duration: 92.711625ms + - id: 12 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: api.scaleway.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.24.0; darwin; arm64) terraform-provider/develop terraform/terraform-tests + url: https://api.scaleway.com/cockpit/v1/regions/fr-par/alert-manager/contact-points?project_id=325b0fc9-1f88-48ca-bc6c-788541294135 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 201 + uncompressed: false + body: '{"contact_points":[{"email":{"to":"test@example.com"},"region":"fr-par","send_resolved_notifications":true}],"has_additional_contact_points":false,"has_additional_receivers":false,"total_count":1}' + headers: + Content-Length: + - "201" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Fri, 01 Aug 2025 06:09:54 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 3c5464f9-ff08-4db1-832e-113122a35874 + status: 200 OK + code: 200 + duration: 179.122708ms + - id: 13 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 87 + transfer_encoding: [] + trailer: {} + host: api.scaleway.com + remote_addr: "" + request_uri: "" + body: '{"project_id":"325b0fc9-1f88-48ca-bc6c-788541294135","email":{"to":"test@example.com"}}' + form: {} + headers: + Content-Type: + - application/json + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.24.0; darwin; arm64) terraform-provider/develop terraform/terraform-tests + url: https://api.scaleway.com/cockpit/v1/regions/fr-par/alert-manager/contact-points/delete + method: POST + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 0 + uncompressed: false + body: "" + headers: + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Fri, 01 Aug 2025 06:09:56 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - a431b9fd-6f21-4f52-a723-d20282dcb216 + status: 204 No Content + code: 204 + duration: 1.3748575s + - id: 14 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 90 + transfer_encoding: [] + trailer: {} + host: api.scaleway.com + remote_addr: "" + request_uri: "" + body: '{"project_id":"325b0fc9-1f88-48ca-bc6c-788541294135","email":{"to":"updated@example.com"}}' + form: {} + headers: + Content-Type: + - application/json + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.24.0; darwin; arm64) terraform-provider/develop terraform/terraform-tests + url: https://api.scaleway.com/cockpit/v1/regions/fr-par/alert-manager/contact-points + method: POST + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 93 + uncompressed: false + body: '{"email":{"to":"updated@example.com"},"region":"fr-par","send_resolved_notifications":true}' + headers: + Content-Length: + - "93" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Fri, 01 Aug 2025 06:09:57 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 251a5d22-466e-40ac-a3a1-172ae29fba01 + status: 200 OK + code: 200 + duration: 369.625125ms + - id: 15 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: api.scaleway.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.24.0; darwin; arm64) terraform-provider/develop terraform/terraform-tests + url: https://api.scaleway.com/cockpit/v1/regions/fr-par/alert-manager?project_id=325b0fc9-1f88-48ca-bc6c-788541294135 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 186 + uncompressed: false + body: '{"alert_manager_enabled":true,"alert_manager_url":"https://ba877492-58da-4080-8279-ff38cc70c3fb.alertmanager.cockpit.fr-par.scw.cloud","managed_alerts_enabled":true,"region":"fr-par"}' + headers: + Content-Length: + - "186" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Fri, 01 Aug 2025 06:09:57 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 6c593004-fdef-4bc7-b59d-658c0922715b + status: 200 OK + code: 200 + duration: 90.644834ms + - id: 16 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: api.scaleway.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.24.0; darwin; arm64) terraform-provider/develop terraform/terraform-tests + url: https://api.scaleway.com/cockpit/v1/regions/fr-par/alert-manager/contact-points?project_id=325b0fc9-1f88-48ca-bc6c-788541294135 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 204 + uncompressed: false + body: '{"contact_points":[{"email":{"to":"updated@example.com"},"region":"fr-par","send_resolved_notifications":true}],"has_additional_contact_points":false,"has_additional_receivers":false,"total_count":1}' + headers: + Content-Length: + - "204" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Fri, 01 Aug 2025 06:09:57 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 4c34b2cd-c6db-40b4-955d-d6323b07df1b + status: 200 OK + code: 200 + duration: 275.197458ms + - id: 17 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: api.scaleway.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.24.0; darwin; arm64) terraform-provider/develop terraform/terraform-tests + url: https://api.scaleway.com/account/v3/projects/325b0fc9-1f88-48ca-bc6c-788541294135 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 327 + uncompressed: false + body: '{"created_at":"2025-08-01T06:09:47.722664Z","description":"","id":"325b0fc9-1f88-48ca-bc6c-788541294135","name":"tf_test_cockpit_alert_manager_id_parsing","organization_id":"105bdce1-64c0-48ab-899d-868455867ecf","qualification":{"architecture_type":"unknown_architecture_type"},"updated_at":"2025-08-01T06:09:47.722664Z"}' + headers: + Content-Length: + - "327" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Fri, 01 Aug 2025 06:09:58 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - a0e49678-8c70-4c3d-8afb-b1cd75a0fcc4 + status: 200 OK + code: 200 + duration: 198.338125ms + - id: 18 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: api.scaleway.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.24.0; darwin; arm64) terraform-provider/develop terraform/terraform-tests + url: https://api.scaleway.com/cockpit/v1/regions/fr-par/alert-manager?project_id=325b0fc9-1f88-48ca-bc6c-788541294135 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 186 + uncompressed: false + body: '{"alert_manager_enabled":true,"alert_manager_url":"https://ba877492-58da-4080-8279-ff38cc70c3fb.alertmanager.cockpit.fr-par.scw.cloud","managed_alerts_enabled":true,"region":"fr-par"}' + headers: + Content-Length: + - "186" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Fri, 01 Aug 2025 06:09:58 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 5780388d-24c1-4ecf-aeea-fb47b8091487 + status: 200 OK + code: 200 + duration: 264.073292ms + - id: 19 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: api.scaleway.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.24.0; darwin; arm64) terraform-provider/develop terraform/terraform-tests + url: https://api.scaleway.com/cockpit/v1/regions/fr-par/alert-manager/contact-points?project_id=325b0fc9-1f88-48ca-bc6c-788541294135 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 204 + uncompressed: false + body: '{"contact_points":[{"email":{"to":"updated@example.com"},"region":"fr-par","send_resolved_notifications":true}],"has_additional_contact_points":false,"has_additional_receivers":false,"total_count":1}' + headers: + Content-Length: + - "204" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Fri, 01 Aug 2025 06:09:58 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 3af4ba59-a46d-4228-98cd-9306f85d8c66 + status: 200 OK + code: 200 + duration: 139.166833ms + - id: 20 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: api.scaleway.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.24.0; darwin; arm64) terraform-provider/develop terraform/terraform-tests + url: https://api.scaleway.com/cockpit/v1/regions/fr-par/alert-manager/contact-points?project_id=325b0fc9-1f88-48ca-bc6c-788541294135 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 204 + uncompressed: false + body: '{"contact_points":[{"email":{"to":"updated@example.com"},"region":"fr-par","send_resolved_notifications":true}],"has_additional_contact_points":false,"has_additional_receivers":false,"total_count":1}' + headers: + Content-Length: + - "204" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Fri, 01 Aug 2025 06:09:59 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 5083a09f-f433-4682-801d-aa02401cee0d + status: 200 OK + code: 200 + duration: 237.193875ms + - id: 21 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 90 + transfer_encoding: [] + trailer: {} + host: api.scaleway.com + remote_addr: "" + request_uri: "" + body: '{"project_id":"325b0fc9-1f88-48ca-bc6c-788541294135","email":{"to":"updated@example.com"}}' + form: {} + headers: + Content-Type: + - application/json + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.24.0; darwin; arm64) terraform-provider/develop terraform/terraform-tests + url: https://api.scaleway.com/cockpit/v1/regions/fr-par/alert-manager/contact-points/delete + method: POST + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 0 + uncompressed: false + body: "" + headers: + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Fri, 01 Aug 2025 06:10:00 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 54781bf4-a34c-4104-9edf-02d6dc5ce875 + status: 204 No Content + code: 204 + duration: 352.791959ms + - id: 22 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 53 + transfer_encoding: [] + trailer: {} + host: api.scaleway.com + remote_addr: "" + request_uri: "" + body: '{"project_id":"325b0fc9-1f88-48ca-bc6c-788541294135"}' + form: {} + headers: + Content-Type: + - application/json + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.24.0; darwin; arm64) terraform-provider/develop terraform/terraform-tests + url: https://api.scaleway.com/cockpit/v1/regions/fr-par/alert-manager/managed-alerts/disable + method: POST + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 187 + uncompressed: false + body: '{"alert_manager_enabled":true,"alert_manager_url":"https://ba877492-58da-4080-8279-ff38cc70c3fb.alertmanager.cockpit.fr-par.scw.cloud","managed_alerts_enabled":false,"region":"fr-par"}' + headers: + Content-Length: + - "187" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Fri, 01 Aug 2025 06:10:00 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - c68d49fd-8e4e-4ad3-b4b1-c6f7feed4bee + status: 200 OK + code: 200 + duration: 324.423042ms + - id: 23 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 53 + transfer_encoding: [] + trailer: {} + host: api.scaleway.com + remote_addr: "" + request_uri: "" + body: '{"project_id":"325b0fc9-1f88-48ca-bc6c-788541294135"}' + form: {} + headers: + Content-Type: + - application/json + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.24.0; darwin; arm64) terraform-provider/develop terraform/terraform-tests + url: https://api.scaleway.com/cockpit/v1/regions/fr-par/alert-manager/disable + method: POST + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 108 + uncompressed: false + body: '{"alert_manager_enabled":false,"alert_manager_url":null,"managed_alerts_enabled":false,"region":"fr-par"}' + headers: + Content-Length: + - "108" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Fri, 01 Aug 2025 06:10:00 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - b28c119c-3819-483c-9e89-dc17b22b1bc8 + status: 200 OK + code: 200 + duration: 259.15775ms + - id: 24 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: api.scaleway.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.24.0; darwin; arm64) terraform-provider/develop terraform/terraform-tests + url: https://api.scaleway.com/account/v3/projects/325b0fc9-1f88-48ca-bc6c-788541294135 + method: DELETE + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 0 + uncompressed: false + body: "" + headers: + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Fri, 01 Aug 2025 06:10:02 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 47fcab67-9ca6-44f7-8b53-9dab198f2c85 + status: 204 No Content + code: 204 + duration: 1.598917583s + - id: 25 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: api.scaleway.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + User-Agent: + - scaleway-sdk-go/v1.0.0-beta.7+dev (go1.24.0; darwin; arm64) terraform-provider/develop terraform/terraform-tests + url: https://api.scaleway.com/cockpit/v1/regions/fr-par/alert-manager?project_id=325b0fc9-1f88-48ca-bc6c-788541294135 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 117 + uncompressed: false + body: '{"details":[{"action":"read","resource":"cockpit"}],"message":"insufficient permissions","type":"permissions_denied"}' + headers: + Content-Length: + - "117" + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Content-Type: + - application/json + Date: + - Fri, 01 Aug 2025 06:10:02 GMT + Server: + - Scaleway API Gateway (fr-par-1;edge01) + Strict-Transport-Security: + - max-age=63072000 + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-Request-Id: + - 8521459a-0f11-4a2d-996f-9342e299786a + status: 403 Forbidden + code: 403 + duration: 382.2005ms