# Update an existing IP scope Updates an existing IP scope identified by boundary ID. Supports range and subnet types. ## Endpoint `PUT /dcapi/som/ip-scopes/{ip_scope_id}` ## Request ### Request URL `https://{server-hostname}:8383/dcapi/som/ip-scopes/{ip_scope_id}` ### Scope `SOM.UPDATE` ### Header `Authorization: d92d4xxxxxxxxxxxxx15f52` ### Request Parameters #### Request Headers - **Content-Type** (`string`, Mandatory): `application/ipScopeDetail.v1+json` - **Accept** (`string`, Mandatory): `application/ipScopeUpdatedStatus.v1+json` #### Path Parameters - **ip_scope_id** (`string`, Mandatory): A unique identifier assigned to the IP Scope. Refer to the boundaryID value obtained from the response of [IP Scope Details](https://www.manageengine.com/products/desktop-central/help/api/onpremise/ipscopes-list-ipscopes.html) Api. #### Request Body `application/json` JSON Object: - **remoteOfficeID** (`string`, Optional): Unique Identifier of the remote office this IP scope will assigned to. Fetch `branch_office_id` from [Get Remote Offices](https://www.manageengine.com/products/desktop-central/help/api/onpremise/remoteoffices_getremoteoffice.html) api - **boundaryID** (`string`, Optional): Unique identifier of the IP scope boundary. - **ipScopeType** (`string`, Optional): Type of IP scope definition. Allowed values: `RANGE` (start-to-end IP address range) or `SUBNET` (network address with subnet mask) - **subnetClass** (`string`, Optional): Indicates the subnet class classification. Permitted values: A, B, or C. Required only when ipScopeType is `SUBNET` - **networkAddress** (`string`, Optional): The network address of the subnet (for example, `192.168.1.0`). This field is required when ipScopeType is set to `SUBNET` - **subnetMask** (`string`, Optional): Subnet mask for the network (e.g., `255.255.255.0`). Required only when ipScopeType is `SUBNET` - **startIPAddress** (`string`, Optional): Specifies the starting IP address of the range (for example, `192.168.1.1`). Required only when ipScopeType is `RANGE` - **endIPAddress** (`string`, Optional): Specifies the ending IP address of the range (for example, `192.168.1.254`). Required only when ipScopeType is `RANGE` - **description** (`string`, Optional): Optional administrator-provided description for the IP scope (max 250 characters) ### Sample Request ```curl curl --request PUT \ --url https://appdomain/dcapi/som/ip-scopes/{ip_scope_id} \ --header 'Accept: application/ipScopeUpdatedStatus.v1+json' \ --header 'Authorization: d92d4xxxxxxxxxxxxx15f52' \ --header 'Content-Type: application/ipScopeDetail.v1+json' \ --data '{"boundaryID":"301","description":"HQ Network Range","remoteOfficeID":"101","ipScopeType":"RANGE","startIPAddress":"192.168.1.1","endIPAddress":"192.168.1.254"}' ``` ### Sample Request Body #### Update IP scope with range type ```json { "boundaryID": "301", "description": "HQ Network Range", "remoteOfficeID": "101", "ipScopeType": "RANGE", "startIPAddress": "192.168.1.1", "endIPAddress": "192.168.1.254" } ``` #### Update IP scope with subnet type ```json { "subnetClass": "C", "boundaryID": "302", "description": "Branch Office Subnet", "remoteOfficeID": "102", "ipScopeType": "SUBNET", "subnetMask": "255.255.255.0", "networkAddress": "10.0.1.0" } ``` ## Response Parameters ### HTTP Code 200 Response Body: `application/json` JSON Object: - **status** (`boolean`): Indicates whether the IP scope operation (create, update, or delete) completed successfully - **message** (`string`): Descriptive message providing details about the operation outcome or the reason for failure ### HTTP Code 404 Response Body: `application/json` JSON Object: - **statusCode** (`string`): HTTP status code (404) - **errorCode** (`string`): Error code identifying the resource that was not found - **message** (`string`): Error message describing the missing resource ### HTTP Code 412 Response Body: `application/json` JSON Object: - **statusCode** (`string`): HTTP status code (412) - **errorCode** (`string`): Precondition failed error code identifying the business logic violation - **message** (`string`): Error message describing the precondition failed while processing request ### Possible Response Codes - `200` — HTTP code - `404` — HTTP code - `412` — HTTP code ### Sample Response: HTTP 200 #### IP scope updated ```json { "message": "Success", "status": true } ``` ### Sample Response: HTTP 404 #### IP scope not found ```json { "errorCode": "30024", "message": "IP scope does not exist", "statusCode": 404 } ``` #### Remote office not found for given remoteOfficeID ```json { "errorCode": "30028", "message": "Remote office not found", "statusCode": 404 } ``` ### Sample Response: HTTP 412 #### Required IP scope parameters are missing ```json { "errorCode": "30022", "message": "Required IP scope parameters are missing", "statusCode": 412 } ``` #### IP scope with same range already exists ```json { "errorCode": "30023", "message": "An IP scope with the same range already exists", "statusCode": 412 } ``` #### Invalid IP range or subnet mask ```json { "errorCode": "30086", "message": "Invalid IP range or subnet mask parameters", "statusCode": 412 } ``` ## Rate Limits **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.