# Modify an existing CIS compliance policy group Modifies an existing custom CIS compliance policy group, updating its name and replacing the associated benchmark profiles ## Endpoint **POST** `/dcapi/scap/compliance/policygroups/{policyGrpId}` ## Request URL `https://{serverurl}/dcapi/scap/compliance/policygroups/{policyGrpId}` ## Scope `DesktopCentralCloud.VulnerabilityMgmt.UPDATE` ## Header `Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52` ## Request Parameters ### Request Headers - **Content-Type** `string` **Mandatory**: `application/editPolicyGrp.v1+json` - **Accept** `string` **Mandatory**: `application/editPolicyGrp.v1+json` ### Path Parameters - **policyGrpId** `string` **Mandatory** The ID of the policy group to delete. Fetch from [List Policy Groups](https://www.manageengine.com/products/desktop-central/help/api/cloud/list-policy-groups.html) ### Request Body `application/json` - `JSON Object` - **profiles** `JSON Array` *Optional* List of CIS benchmark profile objects to associate with the policy group. Fetch available profiles from [Get Profiles List for Platform](https://www.manageengine.com/products/desktop-central/help/api/cloud/get-profiles-list-for-platform.html) - **groupName** `string` *Optional* Name of the policy group - **platform** `string` *Optional* Platform identifier. 1 = Windows, 3 = Linux ## Sample Request ```curl curl --request POST \ --url https://appdomains/dcapi/scap/compliance/policygroups/{policyGrpId} \ --header 'Accept: application/editPolicyGrp.v1+json' \ --header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52' \ --header 'Content-Type: application/editPolicyGrp.v1+json' \ --data '{}' ``` ## Sample Request Body Modify an existing policy group name and replace its profiles ```json { "groupName": "Updated Policy Group Name", "profiles": [ { "id": "50001", "type": 1 }, { "id": "50003", "type": 1 } ] } ``` ## Response Parameters ### HTTP Code 200 Response Body: `application/json` - `JSON Object` - **status** `boolean` true if the policy group was modified successfully, false otherwise - **statusMsg** `string` Error message when the policy group ID is not found ### HTTP Code 400 Response Body: `application/json` - `JSON Object` - **statusCode** `string` HTTP status code (400) - **errorCode** `string` API-specific error code identifying the validation failure - **message** `string` Error message describing the validation failure ### HTTP Code 401 Response Body: `application/json` - `JSON Object` - **errorCode** `long` Unauthorized error code: credentials missing, expired, or invalid - **errorMsg** `string` Authentication failure reason ### HTTP Code 429 Response Body: `application/json` - `JSON Object` - **errorCode** `long` Rate limit error code returned when the API call reached threshold - **errorMsg** `string` Rate limit exceeded message with retry guidance ## Possible Response Codes - **200** HTTP code - **400** HTTP code - **401** HTTP code - **429** HTTP code ## Sample Response: HTTP 200 Policy group modified successfully ```json { "status": true } ``` Policy group ID not found ```json { "statusMsg": "policy grp id not present", "status": false } ``` ## Sample Response: HTTP 400 A request body parameter has an invalid format or type ```json { "errorCode": "IAM0025", "url": "/dcapi/scap/compliance/policygroups/{policyGrpId}", "errorMsg": "id is an invalid parameter format." } ``` ## Sample Response: HTTP 401 User is action-restricted for this policy group ```json { "errorMessage": "User Not Authorized", "errorCode": "UAC_UNAUTHORIZED" } ``` ## Sample Response: HTTP 429 API call threshold exceeded ```json { "errorMessage": "Rate limit exceeded. Retry after some time", "errorCode": "TOO_MANY_REQUESTS" } ``` ## Rate Limit **Duration:** 1 minute | **Threshold:** 30 | **Lock period:** 5 minutes Duration - Time window for the threshold. Threshold - Number of API calls allowed within the specified duration. Lock Period - Wait time before consecutive API requests.