def METHOD_NAME(url='', data='', headers='', cookies='', timeout=30):
    try:
        if isinstance(data, dict):
            response = requests.put(url, json=data, headers=headers, cookies=cookies, timeout=timeout)
        else:
            response = requests.put(url, data=data, headers=headers, cookies=cookies, timeout=timeout)
    except requests.Timeout as err:
        soclogging.logDebug(1, "Connection Timeout")
        raise
    except:
        soclogging.logDebug(1, "HTTP Error")
        raise
    if response.status_code == 200 or response.status_code == 204:
        return response.text
    else:
        try:
            responseDict = json.loads(response.text)
            if response.status_code == 408:
                errorString = "[" + responseDict['resCode'] + "] " + responseDict['resMsg']
            else:
                errorString = "[" + responseDict['errCode'] + "] " + responseDict['errMsg']
        except:
            errorString = "[XXXX] Unidentified Error"
        soclogging.logDebug(1, 'Request failed, StatusCode: ' + str(response.status_code) + ', Error: ' + errorString)
        raise RuntimeError
    return