@@ -382,14 +382,28 @@ async def update_with_response_info_async(
382382 payload = self ._parse_update (method , uri , response )
383383 return payload , response .status_code , dict (response .headers or {})
384384
385- def _parse_delete (self , method : str , uri : str , response : Response ) -> bool :
385+ def _parse_delete (self , method : str , uri : str , response : Response ) -> Any :
386386 """
387- Parses delete response JSON
387+ Parses delete response. Returns response body as dict if present, otherwise True.
388+
389+ For V1 APIs that return response bodies on delete (e.g., 202 with JSON),
390+ this returns the parsed JSON payload. For traditional deletes (e.g., 204 No Content),
391+ this returns True for backward compatibility.
388392 """
389393 if response .status_code < 200 or response .status_code >= 300 :
390394 raise self .exception (method , uri , response , "Unable to delete record" )
391395
392- return True # if response code is 2XX, deletion was successful
396+ # If response has content, parse and return it (V1 delete with response body)
397+ if response .content and response .text :
398+ try :
399+ return json .loads (response .text )
400+ except (ValueError , json .JSONDecodeError ):
401+ # If JSON parsing fails, fall back to boolean
402+ pass
403+
404+ return (
405+ True # Traditional delete: if response code is 2XX, deletion was successful
406+ )
393407
394408 def delete (
395409 self ,
@@ -455,14 +469,15 @@ def delete_with_response_info(
455469 auth : Optional [Tuple [str , str ]] = None ,
456470 timeout : Optional [float ] = None ,
457471 allow_redirects : bool = False ,
458- ) -> Tuple [bool , int , Dict [str , str ]]:
472+ ) -> Tuple [Union [ Dict [ str , Any ], bool ] , int , Dict [str , str ]]:
459473 """
460474 Delete a resource and return response metadata
461475
462476 Returns:
463- tuple: (success_boolean, status_code, headers_dict)
464- - success_boolean: True if deletion was successful (2XX response)
465- - status_code: HTTP status code (typically 204 for successful delete)
477+ tuple: (payload_or_success, status_code, headers_dict)
478+ - payload_or_success: Response body dict if present (V1 APIs with response body),
479+ or True boolean for traditional deletes (204 No Content)
480+ - status_code: HTTP status code (typically 202 or 204 for successful delete)
466481 - headers_dict: Response headers as a dictionary
467482 """
468483 response = self .request (
@@ -475,8 +490,8 @@ def delete_with_response_info(
475490 timeout = timeout ,
476491 allow_redirects = allow_redirects ,
477492 )
478- success = self ._parse_delete (method , uri , response )
479- return success , response .status_code , dict (response .headers or {})
493+ result = self ._parse_delete (method , uri , response )
494+ return result , response .status_code , dict (response .headers or {})
480495
481496 async def delete_with_response_info_async (
482497 self ,
@@ -488,14 +503,15 @@ async def delete_with_response_info_async(
488503 auth : Optional [Tuple [str , str ]] = None ,
489504 timeout : Optional [float ] = None ,
490505 allow_redirects : bool = False ,
491- ) -> Tuple [bool , int , Dict [str , str ]]:
506+ ) -> Tuple [Union [ Dict [ str , Any ], bool ] , int , Dict [str , str ]]:
492507 """
493508 Asynchronously delete a resource and return response metadata
494509
495510 Returns:
496- tuple: (success_boolean, status_code, headers_dict)
497- - success_boolean: True if deletion was successful (2XX response)
498- - status_code: HTTP status code (typically 204 for successful delete)
511+ tuple: (payload_or_success, status_code, headers_dict)
512+ - payload_or_success: Response body dict if present (V1 APIs with response body),
513+ or True boolean for traditional deletes (204 No Content)
514+ - status_code: HTTP status code (typically 202 or 204 for successful delete)
499515 - headers_dict: Response headers as a dictionary
500516 """
501517 response = await self .request_async (
@@ -508,8 +524,8 @@ async def delete_with_response_info_async(
508524 timeout = timeout ,
509525 allow_redirects = allow_redirects ,
510526 )
511- success = self ._parse_delete (method , uri , response )
512- return success , response .status_code , dict (response .headers or {})
527+ result = self ._parse_delete (method , uri , response )
528+ return result , response .status_code , dict (response .headers or {})
513529
514530 def read_limits (
515531 self , limit : Optional [int ] = None , page_size : Optional [int ] = None
0 commit comments