# 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 ### Request URL ```text https://{server-hostname}:8383/dcapi/scap/compliance/policygroups/{policyGrpId} ``` ### Scope ```text VulnerabilityMgmt.UPDATE ``` ### Header ```text Authorization: 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/onpremise/list-policy-groups.html). #### Request Body `application/json` - **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/onpremise/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://appdomain/dcapi/scap/compliance/policygroups/{policyGrpId} \ --header 'Accept: application/editPolicyGrp.v1+json' \ --header 'Authorization: d92d4xxxxxxxxxxxxx15f52' \ --header 'Content-Type: application/editPolicyGrp.v1+json' \ --data '{"groupName":"Updated Policy Group Name","profiles":[{"id":"50001","type":1},{"id":"50003","type":1}]}' ``` ## 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` - **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` - **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` - **errorCode** (`long`): Unauthorized error code returned when authentication credentials are missing, expired, or invalid (authentication=required). - **errorMsg** (`string`): Authentication failure reason. ### HTTP Code 429 Response Body: `application/json` - **errorCode** (`long`): Rate limit error code returned when the API call threshold (configured via threshold/duration in security XML) is exceeded; client is locked out for lock-period minutes. - **errorMsg** (`string`): Rate limit exceeded message with retry guidance. ## Possible Response Codes - `200` - `400` - `401` - `429` ## Sample Responses ### HTTP 200 Policy group modified successfully. ```json { "status": true } ``` Policy group ID not found. ```json { "statusMsg": "policy grp id not present", "status": false } ``` ### 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." } ``` ### HTTP 401 User is action-restricted for this policy group. ```json { "errorMessage": "User Not Authorized", "errorCode": "UAC_UNAUTHORIZED" } ``` ### HTTP 429 API call threshold exceeded. ```json { "errorMessage": "Rate limit exceeded. Retry after some time", "errorCode": "TOO_MANY_REQUESTS" } ``` ## Rate Limiting ![](https://www.zohowebstatic.com/sites/zweb/images/people/ico-help.png) **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.