@@ -11,6 +11,7 @@ import (
1111 "github.com/scaleway/scaleway-sdk-go/api/cockpit/v1"
1212 "github.com/scaleway/scaleway-sdk-go/scw"
1313 "github.com/scaleway/terraform-provider-scaleway/v2/internal/httperrors"
14+ "github.com/scaleway/terraform-provider-scaleway/v2/internal/identity"
1415 "github.com/scaleway/terraform-provider-scaleway/v2/internal/locality/regional"
1516 "github.com/scaleway/terraform-provider-scaleway/v2/internal/services/account"
1617 "github.com/scaleway/terraform-provider-scaleway/v2/internal/types"
@@ -27,9 +28,17 @@ func ResourceCockpitAlertManager() *schema.Resource {
2728 StateContext : schema .ImportStatePassthroughContext ,
2829 },
2930 SchemaFunc : alertManagerSchema ,
31+ Identity : alertManagerIdentity (),
3032 }
3133}
3234
35+ func alertManagerIdentity () * schema.ResourceIdentity {
36+ return identity .WrapSchemaMap (map [string ]* schema.Schema {
37+ "region" : identity .DefaultRegionAttribute (),
38+ "project_id" : identity .DefaultProjectIDAttribute (),
39+ })
40+ }
41+
3342func alertManagerSchema () map [string ]* schema.Schema {
3443 return map [string ]* schema.Schema {
3544 "project_id" : account .ProjectIDSchema (),
@@ -163,7 +172,9 @@ func ResourceCockpitAlertManagerCreate(ctx context.Context, d *schema.ResourceDa
163172 }
164173 }
165174
166- d .SetId (ResourceCockpitAlertManagerID (region , projectID ))
175+ if err := setCockpitAlertManagerIdentity (d , region , projectID ); err != nil {
176+ return diag .FromErr (err )
177+ }
167178
168179 return ResourceCockpitAlertManagerRead (ctx , d , meta )
169180}
@@ -195,12 +206,18 @@ func ResourceCockpitAlertManagerRead(ctx context.Context, d *schema.ResourceData
195206 _ = d .Set ("alert_manager_url" , alertManager .AlertManagerURL )
196207 _ = d .Set ("project_id" , projectID )
197208
209+ if err := setCockpitAlertManagerIdentity (d , alertManager .Region , projectID ); err != nil {
210+ return diag .FromErr (err )
211+ }
212+
198213 var userRequestedIDs []string
199214
215+ isPreconfigured := true
216+
200217 alerts , err := api .ListAlerts (& cockpit.RegionalAPIListAlertsRequest {
201218 Region : region ,
202219 ProjectID : projectID ,
203- IsPreconfigured : new ( true ) ,
220+ IsPreconfigured : & isPreconfigured ,
204221 }, scw .WithContext (ctx ), scw .WithAllPages ())
205222 if err != nil {
206223 return diag .FromErr (err )
@@ -464,6 +481,25 @@ func ResourceCockpitAlertManagerID(region scw.Region, projectID string) (resourc
464481 return fmt .Sprintf ("%s/%s/1" , region , projectID )
465482}
466483
484+ func setCockpitAlertManagerIdentity (d * schema.ResourceData , region scw.Region , projectID string ) error {
485+ resourceIdentity , err := d .Identity ()
486+ if err != nil {
487+ return err
488+ }
489+
490+ if err := resourceIdentity .Set ("region" , region .String ()); err != nil {
491+ return err
492+ }
493+
494+ if err := resourceIdentity .Set ("project_id" , projectID ); err != nil {
495+ return err
496+ }
497+
498+ d .SetId (ResourceCockpitAlertManagerID (region , projectID ))
499+
500+ return nil
501+ }
502+
467503func shouldEnableLegacyManagedAlerts (d * schema.ResourceData ) bool {
468504 if ! d .Get ("enable_managed_alerts" ).(bool ) {
469505 return false
0 commit comments