Skip to content

Change Approval Level

Multi level approval process of Change module requires that the change request be approved by levels of approvers. Approvers whom the application administrator has configured as Level 1 approvers will review the change request first. After they have provided their signatures and thereby given approval, the approvers on Level 2 are notified and must review the change request. If an approver rejects a change request, the approval process is finished.

Attributes

id (long)
Primary id for approval level

id (long)
Numerical digits which are considered to have larger values.

Example

234759602834500

level (int)
Level number of the approval level

level (int)
Numerical digits which are considered to have smaller numbers.

Example

39

change_stage (change_stage)
Information about the change stage to which the approval is associated.  The information about the change stage will be provided only if the approval is associated to a change.

change_stage (change_stage)

Example

{
  "change_stage": {
    "name": "test-change_stage",
    "id": "234567890123456"
  }
}

rule (approval_rule)
Options to be configured while processing the approval level. Available options are,1. Anyone to Approve - If any of the approvers approves, the approval is approved. If all reject, the approval is rejected.2. Everyone to approve - If everyone of the approvers approves, the approval is approved. If anybody rejects, the approval is rejected.3. First response action - If the first one to respond to the approval approves, the approval is approved. If he rejects, the approval is rejected4. % to approve- The level gets approved when the number of approvers crosses a custom threshold. The threshold in percentage should be given as an input.

rule (approval_rule)

Example

{
  "rule": {
    "name": "test-rule",
    "id": "234567890123456"
  }
}

status (approval_status)read only
Status of the approval level

status (approval_status)

Example

{
  "status": {
    "name": "Open",
    "id": "234567890123456"
  }
}

created_time (datetime)read only
Approval level created time

created_time (datetime)
Represents a date/time as a JSON Object. Would contain the value and the display_value attributes.

value : The time in long format (No. of milliseconds from Jan 1, 1970 ).

display_value : The time in a readable form in a format as personalized by the user. If not personalized, default format would be used.

More Attributes Expand all

created_by (user)read only

User details of the approval level creator

created_by (user)

Example

{
  "created_by": {
    "email_id": "andrews@zmail.com",
    "name": "test-created_by",
    "id": "234567890123456"
  }
}

associated_entity (string)read only

Holds the value of this approval belongs to which entity [request, purchase_order, change]

associated_entity (string)
A text in a plain format. No rich text or new line characters allowed.

Example

change

change (change)read only

Information about the change to which the approval is associated.  The information about the change will be provided only if the approval is associated to that change.

change (change)

Example

{
  "change": {
    "id": "234567890123456"
  }
}

workflow_instance (workflow_instance)read only

Indicates the workflow instance of the change, to which the approval level belongs to. This will be shown in response only when the workflow is associated to change.

workflow_instance (workflow_instance)

Example

{
  "workflow_instance": {
    "name": "test-workflow_instance",
    "id": "234567890123456"
  }
}

statement (statement)read only

Indicates the statement(workflow instance) of the change to which the approval level belongs to

statement (statement)

Example

{
  "statement": {
    "name": "test-statement",
    "id": "234567890123456"
  }
}

Add Change Approval Level

This operation helps you Add change approval level.

Url

<service domain|custom domain>/app/<portal>/api/v3/changes/{change_id}/approval_levels

Attributes

id (long)
Primary id for approval level

id (long)
Numerical digits which are considered to have larger values.

Example

234759602834500

level (int)
Level number of the approval level

level (int)
Numerical digits which are considered to have smaller numbers.

Example

39

change_stage (change_stage)
Information about the change stage to which the approval is associated.  The information about the change stage will be provided only if the approval is associated to a change.

change_stage (change_stage)

Example

{
  "change_stage": {
    "name": "test-change_stage",
    "id": "234567890123456"
  }
}

rule (approval_rule)
Options to be configured while processing the approval level. Available options are,1. Anyone to Approve - If any of the approvers approves, the approval is approved. If all reject, the approval is rejected.2. Everyone to approve - If everyone of the approvers approves, the approval is approved. If anybody rejects, the approval is rejected.3. First response action - If the first one to respond to the approval approves, the approval is approved. If he rejects, the approval is rejected4. % to approve- The level gets approved when the number of approvers crosses a custom threshold. The threshold in percentage should be given as an input.

rule (approval_rule)

Example

{
  "rule": {
    "name": "test-rule",
    "id": "234567890123456"
  }
}

status (approval_status)read only
Status of the approval level

status (approval_status)

Example

{
  "status": {
    "name": "Open",
    "id": "234567890123456"
  }
}

created_time (datetime)read only
Approval level created time

created_time (datetime)
Represents a date/time as a JSON Object. Would contain the value and the display_value attributes.

value : The time in long format (No. of milliseconds from Jan 1, 1970 ).

display_value : The time in a readable form in a format as personalized by the user. If not personalized, default format would be used.

More Attributes Expand all

created_by (user)read only

User details of the approval level creator

created_by (user)

Example

{
  "created_by": {
    "email_id": "andrews@zmail.com",
    "name": "test-created_by",
    "id": "234567890123456"
  }
}

associated_entity (string)read only

Holds the value of this approval belongs to which entity [request, purchase_order, change]

associated_entity (string)
A text in a plain format. No rich text or new line characters allowed.

Example

change

change (change)read only

Information about the change to which the approval is associated.  The information about the change will be provided only if the approval is associated to that change.

change (change)

Example

{
  "change": {
    "id": "234567890123456"
  }
}

workflow_instance (workflow_instance)read only

Indicates the workflow instance of the change, to which the approval level belongs to. This will be shown in response only when the workflow is associated to change.

workflow_instance (workflow_instance)

Example

{
  "workflow_instance": {
    "name": "test-workflow_instance",
    "id": "234567890123456"
  }
}

statement (statement)read only

Indicates the statement(workflow instance) of the change to which the approval level belongs to

statement (statement)

Example

{
  "statement": {
    "name": "test-statement",
    "id": "234567890123456"
  }
}

$ curl <service domain|custom domain>/app/<portal>/api/v3/changes/{change_id}/approval_levels\
      -X POST\
      -H "Accept: application/vnd.manageengine.sdp.v3+json"\
      -H "Authorization: Zoho-oauthtoken 1000.7xxx98976ab0xxxxxx19901e7551be57.bxxxx921ed64c04f79622bebcfxxxxxx"\
      -H "Content-Type: application/x-www-form-urlencoded"\
      -d input_data='{
  "approval_level": {
    "change_stage": {
      "internal_name": "cab_evaluation"
    },
    "level": 48,
    "rule": {
      "name": "sdp.approval.everyone_approves"
    }
  }
}'
// Deluge Sample script
url = "<service domain|custom domain>/app/<portal>/api/v3/changes/{change_id}/approval_levels";
headers = {"Accept":"application/vnd.manageengine.sdp.v3+json",
           "Content-Type": "application/x-www-form-urlencoded",
           "Authorization": "Zoho-oauthtoken 1000.7xxx98976ab0xxxxxx19901e7551be57.bxxxx921ed64c04f79622bebcfxxxxxx"};
input_data = {
  "approval_level": {
    "change_stage": {
      "internal_name": "cab_evaluation"
    },
    "level": 48,
    "rule": {
      "name": "sdp.approval.everyone_approves"
    }
  }
};
params = {"input_data": input_data};
response = invokeurl
[
    url: url
    type: POST
    parameters: params
    headers: headers
];
info response;
#Powershell version - 5.1
$url = "<service domain|custom domain>/app/<portal>/api/v3/changes/{change_id}/approval_levels"
$headers = @{ "Accept" = "application/vnd.manageengine.sdp.v3+json"
    "Authorization" = "Zoho-oauthtoken 1000.7xxx98976ab0xxxxxx19901e7551be57.bxxxx921ed64c04f79622bebcfxxxxxx"
    "Content-Type" = "application/x-www-form-urlencoded"}
$input_data = @'
{
  "approval_level": {
    "change_stage": {
      "internal_name": "cab_evaluation"
    },
    "level": 48,
    "rule": {
      "name": "sdp.approval.everyone_approves"
    }
  }
}
'@
$data = @{ 'input_data' = $input_data}
$response = Invoke-RestMethod -Uri $url -Method post -Body $data -Headers $headers
$response
#Python version - 3.10
from urllib.error import HTTPError
from urllib.parse import urlencode
from urllib.request import urlopen,Request

url = "<service domain|custom domain>/app/<portal>/api/v3/changes/{change_id}/approval_levels"
headers ={"Accept": "application/vnd.manageengine.sdp.v3+json", 
          "Authorization" : "Zoho-oauthtoken 1000.7xxx98976ab0xxxxxx19901e7551be57.bxxxx921ed64c04f79622bebcfxxxxxx", 
          "Content-Type" : "application/x-www-form-urlencoded"}
input_data = '''{
  "approval_level": {
    "change_stage": {
      "internal_name": "cab_evaluation"
    },
    "level": 48,
    "rule": {
      "name": "sdp.approval.everyone_approves"
    }
  }
}'''
data = urlencode({"input_data":input_data}).encode()
httprequest = Request(url, headers=headers,data=data, method="POST")
try:
    with urlopen(httprequest) as response:
        print(response.read().decode())
except HTTPError as e:
    print(e.read().decode())
{
  "response_status": {
    "status_code": 2000,
    "status": "success"
  },
  "approval_level": {
    "created_time": {
      "display_value": "Nov 10, 2016 11:44 AM",
      "value": "1478758440000"
    },
    "change_stage": {
      "internal_name": "cab_evaluation",
      "stage_index": 48,
      "name": "Cab Evaluation\t",
      "id": "2051935247348063"
    },
    "level": 48,
    "associated_entity": "change",
    "change": {
      "display_id": {
        "display_value": "CH 44",
        "value": "44"
      },
      "id": "2450403303362918",
      "title": "test-title"
    },
    "rule": {
      "name": "test-name",
      "id": "2006918057316524",
      "type": "test-type",
      "value": "1478758440000"
    },
    "created_by": {
      "email_id": "lincoln@zmail.com",
      "is_technician": false,
      "sms_mail": "linc123@xys_sms.co",
      "phone": "test-phone",
      "name": "Lincoln",
      "mobile": "test-mobile",
      "id": "2064164843530622",
      "photo_url": "test-photo_url",
      "is_vip_user": false
    },
    "id": "1509303571944455",
    "status": {
      "name": "To be Sent",
      "id": "2354664786958421"
    }
  }
}

Get Change Approval Level

This operation helps you Get change approval level.

Url

<service domain|custom domain>/app/<portal>/api/v3/changes/{change_id}/approval_levels/{approval_level_id}

Attributes

id (long)
Primary id for approval level

id (long)
Numerical digits which are considered to have larger values.

Example

234759602834500

level (int)
Level number of the approval level

level (int)
Numerical digits which are considered to have smaller numbers.

Example

39

change_stage (change_stage)
Information about the change stage to which the approval is associated.  The information about the change stage will be provided only if the approval is associated to a change.

change_stage (change_stage)

Example

{
  "change_stage": {
    "name": "test-change_stage",
    "id": "234567890123456"
  }
}

rule (approval_rule)
Options to be configured while processing the approval level. Available options are,1. Anyone to Approve - If any of the approvers approves, the approval is approved. If all reject, the approval is rejected.2. Everyone to approve - If everyone of the approvers approves, the approval is approved. If anybody rejects, the approval is rejected.3. First response action - If the first one to respond to the approval approves, the approval is approved. If he rejects, the approval is rejected4. % to approve- The level gets approved when the number of approvers crosses a custom threshold. The threshold in percentage should be given as an input.

rule (approval_rule)

Example

{
  "rule": {
    "name": "test-rule",
    "id": "234567890123456"
  }
}

status (approval_status)read only
Status of the approval level

status (approval_status)

Example

{
  "status": {
    "name": "Open",
    "id": "234567890123456"
  }
}

created_time (datetime)read only
Approval level created time

created_time (datetime)
Represents a date/time as a JSON Object. Would contain the value and the display_value attributes.

value : The time in long format (No. of milliseconds from Jan 1, 1970 ).

display_value : The time in a readable form in a format as personalized by the user. If not personalized, default format would be used.

More Attributes Expand all

created_by (user)read only

User details of the approval level creator

created_by (user)

Example

{
  "created_by": {
    "email_id": "andrews@zmail.com",
    "name": "test-created_by",
    "id": "234567890123456"
  }
}

associated_entity (string)read only

Holds the value of this approval belongs to which entity [request, purchase_order, change]

associated_entity (string)
A text in a plain format. No rich text or new line characters allowed.

Example

change

change (change)read only

Information about the change to which the approval is associated.  The information about the change will be provided only if the approval is associated to that change.

change (change)

Example

{
  "change": {
    "id": "234567890123456"
  }
}

workflow_instance (workflow_instance)read only

Indicates the workflow instance of the change, to which the approval level belongs to. This will be shown in response only when the workflow is associated to change.

workflow_instance (workflow_instance)

Example

{
  "workflow_instance": {
    "name": "test-workflow_instance",
    "id": "234567890123456"
  }
}

statement (statement)read only

Indicates the statement(workflow instance) of the change to which the approval level belongs to

statement (statement)

Example

{
  "statement": {
    "name": "test-statement",
    "id": "234567890123456"
  }
}

$ curl -G <service domain|custom domain>/app/<portal>/api/v3/changes/{change_id}/approval_levels/{approval_level_id}\
      -X GET\
      -H "Accept: application/vnd.manageengine.sdp.v3+json"\
      -H "Authorization: Zoho-oauthtoken 1000.7xxx98976ab0xxxxxx19901e7551be57.bxxxx921ed64c04f79622bebcfxxxxxx"\
      -H "Content-Type: application/x-www-form-urlencoded"
// Deluge Sample script
url = "<service domain|custom domain>/app/<portal>/api/v3/changes/{change_id}/approval_levels/{approval_level_id}";
headers = {"Accept":"application/vnd.manageengine.sdp.v3+json",
           "Content-Type": "application/x-www-form-urlencoded",
           "Authorization": "Zoho-oauthtoken 1000.7xxx98976ab0xxxxxx19901e7551be57.bxxxx921ed64c04f79622bebcfxxxxxx"};          
response = invokeurl
[
    url: url
    type: GET
    headers: headers
];
info response;
#Powershell version - 5.1
$url = "<service domain|custom domain>/app/<portal>/api/v3/changes/{change_id}/approval_levels/{approval_level_id}"
$headers = @{ "Accept" = "application/vnd.manageengine.sdp.v3+json"
    "Authorization" = "Zoho-oauthtoken 1000.7xxx98976ab0xxxxxx19901e7551be57.bxxxx921ed64c04f79622bebcfxxxxxx"
    "Content-Type" = "application/x-www-form-urlencoded"}  
$response = Invoke-RestMethod -Uri $url -Method get -Headers $headers 
$response
#Python version - 3.8
#This script requires requests module installed in python.
from urllib.error import HTTPError
from urllib.parse import urlencode
from urllib.request import urlopen,Request

url = "<service domain|custom domain>/app/<portal>/api/v3/changes/{change_id}/approval_levels/{approval_level_id}"
headers ={"Accept": "application/vnd.manageengine.sdp.v3+json", 
          "Authorization" : "Zoho-oauthtoken 1000.7xxx98976ab0xxxxxx19901e7551be57.bxxxx921ed64c04f79622bebcfxxxxxx", 
          "Content-Type" : "application/x-www-form-urlencoded"}
httprequest = Request(url, headers=headers)
try:
    with urlopen(httprequest) as response:
        print(response.read().decode())
except HTTPError as e:
    print(e.read().decode())
{
  "response_status": {
    "status_code": 2000,
    "status": "success"
  },
  "approval_level": {
    "created_time": {
      "display_value": "Nov 10, 2016 11:44 AM",
      "value": "1478758440000"
    },
    "change_stage": {
      "internal_name": "cab_evaluation",
      "stage_index": 23,
      "name": "Cab Evaluation\t",
      "id": "1522028657586448"
    },
    "level": 12,
    "associated_entity": "change",
    "change": {
      "display_id": {
        "display_value": "CH 44",
        "value": "44"
      },
      "id": "2063694704518380",
      "title": "test-title"
    },
    "rule": {
      "name": "test-name",
      "id": "1550955460052754",
      "type": "test-type",
      "value": "1478758440000"
    },
    "created_by": {
      "email_id": "lincoln@zmail.com",
      "is_technician": false,
      "sms_mail": "linc123@xys_sms.co",
      "phone": "test-phone",
      "name": "Lincoln",
      "mobile": "test-mobile",
      "id": "1901562974433126",
      "photo_url": "test-photo_url",
      "is_vip_user": false
    },
    "id": "2331339022153652",
    "status": {
      "name": "To be Sent",
      "id": "2328534893246566"
    }
  }
}

Get List Change Approval Level

This operation helps you Get all change approval levels.

Url

<service domain|custom domain>/app/<portal>/api/v3/changes/{change_id}/approval_levels

Attributes

id (long)
Primary id for approval level

id (long)
Numerical digits which are considered to have larger values.

Example

234759602834500

level (int)
Level number of the approval level

level (int)
Numerical digits which are considered to have smaller numbers.

Example

39

change_stage (change_stage)
Information about the change stage to which the approval is associated.  The information about the change stage will be provided only if the approval is associated to a change.

change_stage (change_stage)

Example

{
  "change_stage": {
    "name": "test-change_stage",
    "id": "234567890123456"
  }
}

rule (approval_rule)
Options to be configured while processing the approval level. Available options are,1. Anyone to Approve - If any of the approvers approves, the approval is approved. If all reject, the approval is rejected.2. Everyone to approve - If everyone of the approvers approves, the approval is approved. If anybody rejects, the approval is rejected.3. First response action - If the first one to respond to the approval approves, the approval is approved. If he rejects, the approval is rejected4. % to approve- The level gets approved when the number of approvers crosses a custom threshold. The threshold in percentage should be given as an input.

rule (approval_rule)

Example

{
  "rule": {
    "name": "test-rule",
    "id": "234567890123456"
  }
}

status (approval_status)read only
Status of the approval level

status (approval_status)

Example

{
  "status": {
    "name": "Open",
    "id": "234567890123456"
  }
}

created_time (datetime)read only
Approval level created time

created_time (datetime)
Represents a date/time as a JSON Object. Would contain the value and the display_value attributes.

value : The time in long format (No. of milliseconds from Jan 1, 1970 ).

display_value : The time in a readable form in a format as personalized by the user. If not personalized, default format would be used.

More Attributes Expand all

created_by (user)read only

User details of the approval level creator

created_by (user)

Example

{
  "created_by": {
    "email_id": "andrews@zmail.com",
    "name": "test-created_by",
    "id": "234567890123456"
  }
}

associated_entity (string)read only

Holds the value of this approval belongs to which entity [request, purchase_order, change]

associated_entity (string)
A text in a plain format. No rich text or new line characters allowed.

Example

change

change (change)read only

Information about the change to which the approval is associated.  The information about the change will be provided only if the approval is associated to that change.

change (change)

Example

{
  "change": {
    "id": "234567890123456"
  }
}

workflow_instance (workflow_instance)read only

Indicates the workflow instance of the change, to which the approval level belongs to. This will be shown in response only when the workflow is associated to change.

workflow_instance (workflow_instance)

Example

{
  "workflow_instance": {
    "name": "test-workflow_instance",
    "id": "234567890123456"
  }
}

statement (statement)read only

Indicates the statement(workflow instance) of the change to which the approval level belongs to

statement (statement)

Example

{
  "statement": {
    "name": "test-statement",
    "id": "234567890123456"
  }
}

$ curl -G <service domain|custom domain>/app/<portal>/api/v3/changes/{change_id}/approval_levels\
      -X GET\ 
      -H "Accept: application/vnd.manageengine.sdp.v3+json"\
      -H "Authorization: Zoho-oauthtoken 1000.7xxx98976ab0xxxxxx19901e7551be57.bxxxx921ed64c04f79622bebcfxxxxxx"\
      -H "Content-Type: application/x-www-form-urlencoded"\
      --data-urlencode input_data='{}'
// Deluge Sample script
url = "<service domain|custom domain>/app/<portal>/api/v3/changes/{change_id}/approval_levels";
headers = {"Accept":"application/vnd.manageengine.sdp.v3+json",
           "Content-Type": "application/x-www-form-urlencoded",
           "Authorization": "Zoho-oauthtoken 1000.7xxx98976ab0xxxxxx19901e7551be57.bxxxx921ed64c04f79622bebcfxxxxxx"};
input_data = {};
params = {"input_data":input_data};           
response = invokeurl
[
    url: url
    type: GET
    parameters:params
    headers: headers
];
info response;
#Powershell version - 5.1
$url = "<service domain|custom domain>/app/<portal>/api/v3/changes/{change_id}/approval_levels"
$headers = @{ "Accept" = "application/vnd.manageengine.sdp.v3+json"
    "Authorization" = "Zoho-oauthtoken 1000.7xxx98976ab0xxxxxx19901e7551be57.bxxxx921ed64c04f79622bebcfxxxxxx"
    "Content-Type" = "application/x-www-form-urlencoded"}
$input_data = @'{}'@
$data = @{ 'input_data' = $input_data}    
$response = Invoke-RestMethod -Uri $url -Method get -Body $data -Headers $headers 
$response
#Python version - 3.8
#This script requires requests module installed in python.
from urllib.error import HTTPError
from urllib.parse import urlencode
from urllib.request import urlopen,Request

url = "<service domain|custom domain>/app/<portal>/api/v3/changes/{change_id}/approval_levels"
headers ={"Accept": "application/vnd.manageengine.sdp.v3+json", 
          "Authorization" : "Zoho-oauthtoken 1000.7xxx98976ab0xxxxxx19901e7551be57.bxxxx921ed64c04f79622bebcfxxxxxx", 
          "Content-Type" : "application/x-www-form-urlencoded"}
input_data = '''{}'''       
url += "?" + urlencode({"input_data":input_data})
httprequest = Request(url, headers=headers)
try:
    with urlopen(httprequest) as response:
        print(response.read().decode())
except HTTPError as e:
    print(e.read().decode())
{
  "response_status": [
    {
      "status_code": 2000,
      "status": "success"
    }
  ],
  "approval_levels": [
    {
      "created_time": {
        "display_value": "Nov 10, 2016 11:44 AM",
        "value": "1478758440000"
      },
      "change_stage": {
        "internal_name": "cab_evaluation",
        "stage_index": 17,
        "name": "Cab Evaluation\t",
        "id": "2025234591290337"
      },
      "level": 27,
      "associated_entity": "change",
      "change": {
        "display_id": {
          "display_value": "CH 44",
          "value": "44"
        },
        "id": "2328965180572171",
        "title": "test-title"
      },
      "rule": {
        "name": "test-name",
        "id": "2264336875777765",
        "type": "test-type",
        "value": "1478758440000"
      },
      "created_by": {
        "email_id": "lincoln@zmail.com",
        "is_technician": false,
        "sms_mail": "linc123@xys_sms.co",
        "phone": "test-phone",
        "name": "Lincoln",
        "mobile": "test-mobile",
        "id": "1676744976959264",
        "photo_url": "test-photo_url",
        "is_vip_user": false
      },
      "id": "2465340975685907",
      "status": {
        "name": "To be Sent",
        "id": "2289792457487055"
      }
    }
  ],
  "list_info": {
    "has_more_rows": false,
    "row_count": 1
  }
}

Delete Change Approval Level

This operation helps you Delete change approval level.

Url

<service domain|custom domain>/app/<portal>/api/v3/changes/{change_id}/approval_levels/{approval_level_id}

$ curl <service domain|custom domain>/app/<portal>/api/v3/changes/{change_id}/approval_levels/{approval_level_id}\
      -X DELETE\ 
      -H "Accept: application/vnd.manageengine.sdp.v3+json"\
      -H "Authorization: Zoho-oauthtoken 1000.7xxx98976ab0xxxxxx19901e7551be57.bxxxx921ed64c04f79622bebcfxxxxxx"\
      -H "Content-Type: application/x-www-form-urlencoded"
// Deluge Sample script
url = "<service domain|custom domain>/app/<portal>/api/v3/changes/{change_id}/approval_levels/{approval_level_id}";
headers = {"Accept":"application/vnd.manageengine.sdp.v3+json",
           "Content-Type": "application/x-www-form-urlencoded",
           "Authorization": "Zoho-oauthtoken 1000.7xxx98976ab0xxxxxx19901e7551be57.bxxxx921ed64c04f79622bebcfxxxxxx"};
response = invokeurl
[
    url: url
    type: DELETE
    headers: headers
];
info response;
#Powershell version - 5.1
$url = "<service domain|custom domain>/app/<portal>/api/v3/changes/{change_id}/approval_levels/{approval_level_id}"
$headers = @{ "Accept" = "application/vnd.manageengine.sdp.v3+json"
    "Authorization" = "Zoho-oauthtoken 1000.7xxx98976ab0xxxxxx19901e7551be57.bxxxx921ed64c04f79622bebcfxxxxxx"
    "Content-Type" = "application/x-www-form-urlencoded"}
$response = Invoke-RestMethod -Uri $url -Method delete -Headers $headers
$response
#Python version - 3.10
from urllib.error import HTTPError
from urllib.request import urlopen,Request

url = "<service domain|custom domain>/app/<portal>/api/v3/changes/{change_id}/approval_levels/{approval_level_id}"
headers ={"Accept": "application/vnd.manageengine.sdp.v3+json", 
          "Authorization" : "Zoho-oauthtoken 1000.7xxx98976ab0xxxxxx19901e7551be57.bxxxx921ed64c04f79622bebcfxxxxxx", 
          "Content-Type" : "application/x-www-form-urlencoded"}
httprequest = Request(url, headers=headers,method="DELETE")
try:
    with urlopen(httprequest) as response:
        print(response.read().decode())
except HTTPError as e:
    print(e.read().decode())
{
  "response_status": {
    "status_code": 2000,
    "status": "success"
  }
}