Skip to content

Commit a50ee6a

Browse files
add delete api (#514)
1 parent dd66925 commit a50ee6a

File tree

2 files changed

+39
-4
lines changed

2 files changed

+39
-4
lines changed

sysdig/internal/client/v2/posture_policies.go

+20
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,15 @@ const (
1010
PosturePolicyListPath = "%s/api/cspm/v1/policy/policies/list"
1111
PosturePolicyCreatePath = "%s/api/cspm/v1/policy"
1212
PosturePolicyGetPath = "%s/api/cspm/v1/policy/posture/policies/%d?include_controls=true"
13+
PosturePolicyDeletePath = "%s/api/cspm/v1/policy/policies/%d"
1314
)
1415

1516
type PosturePolicyInterface interface {
1617
Base
1718
ListPosturePolicies(ctx context.Context) ([]PosturePolicy, error)
1819
CreateOrUpdatePosturePolicy(ctx context.Context, p *CreatePosturePolicy) (*FullPosturePolicy, string, error)
1920
GetPosturePolicy(ctx context.Context, id int64) (*FullPosturePolicy, error)
21+
DeletePosturePolicy(ctx context.Context, id int64) error
2022
}
2123

2224
func (client *Client) ListPosturePolicies(ctx context.Context) ([]PosturePolicy, error) {
@@ -69,10 +71,28 @@ func (client *Client) GetPosturePolicy(ctx context.Context, id int64) (*FullPost
6971
return &wrapper.Data, nil
7072
}
7173

74+
func (client *Client) DeletePosturePolicy(ctx context.Context, id int64) error {
75+
response, err := client.requester.Request(ctx, http.MethodDelete, client.deletePolicyUrl(id), nil)
76+
if err != nil {
77+
return err
78+
}
79+
defer response.Body.Close()
80+
81+
if response.StatusCode != http.StatusNoContent && response.StatusCode != http.StatusOK && response.StatusCode != http.StatusNotFound {
82+
return client.ErrorFromResponse(response)
83+
}
84+
85+
return nil
86+
}
87+
7288
func (client *Client) getPolicyUrl(id int64) string {
7389
return fmt.Sprintf(PosturePolicyGetPath, client.config.url, id)
7490
}
7591

92+
func (client *Client) deletePolicyUrl(id int64) string {
93+
return fmt.Sprintf(PosturePolicyDeletePath, client.config.url, id)
94+
}
95+
7696
func (client *Client) getPosturePolicyURL(path string) string {
7797
return fmt.Sprintf(path, client.config.url)
7898
}

sysdig/resource_sysdig_secure_posture_policy.go

+19-4
Original file line numberDiff line numberDiff line change
@@ -288,6 +288,25 @@ func resourceSysdigSecurePosturePolicyRead(ctx context.Context, d *schema.Resour
288288
return nil
289289
}
290290

291+
func resourceSysdigSecurePosturePolicyDelete(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
292+
client, err := getPosturePolicyClient(meta.(SysdigClients))
293+
if err != nil {
294+
return diag.FromErr(err)
295+
}
296+
297+
id, err := strconv.ParseInt(d.Id(), 10, 64)
298+
if err != nil {
299+
return diag.FromErr(err)
300+
}
301+
302+
err = client.DeletePosturePolicy(ctx, id)
303+
if err != nil {
304+
return diag.FromErr(err)
305+
}
306+
307+
return nil
308+
}
309+
291310
func setGroups(d *schema.ResourceData, groups []v2.RequirementsGroup) error {
292311
var groupsData []interface{}
293312
for _, group := range groups {
@@ -343,10 +362,6 @@ func setControls(controls []v2.Control) []interface{} {
343362
}
344363
return controlsData
345364
}
346-
func resourceSysdigSecurePosturePolicyDelete(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
347-
// TODO: implement deletion
348-
return nil
349-
}
350365

351366
// Helper function to retrieve string value from ResourceData and handle nil case
352367
func getStringValue(d *schema.ResourceData, key string) string {

0 commit comments

Comments
 (0)