
    d{ik                         d dl Z d dlmZmZmZmZmZmZmZ d dl	m
Z
 d dlmZ d dlmZmZ d dlmZ d dlmZ  G d d	e      Zy)
    N)AnyAsyncIteratorDictIteratorOptionalTupleUnion)values)Domain)TwilioRestExceptionTwilioServiceException)Page)Responsec                   F   e Zd ZdZdedefdZdedefdZdedefdZ	 	 	 	 	 	 d5d
edede	e
eef      de	e
eef      de	e
eef      de	eeef      de	e   dedefdZ	 	 	 	 	 	 d5d
edede	e
eef      de	e
eef      de	e
eef      de	eeef      de	e   dedefdZed
ededededeeef   f
d       Zd
edededefdZ	 	 	 	 	 	 d5d
edede	e
eef      de	e
eef      de	e
eef      de	eeef      de	e   dedefdZ	 	 	 	 	 	 d5d
edede	e
eef      de	e
eef      de	e
eef      de	eeef      de	e   dedefdZ	 	 	 	 	 	 d5d
edede	e
eef      de	e
eef      de	e
eef      de	eeef      de	e   dedeeee
eef   f   fdZ	 	 	 	 	 	 d5d
edede	e
eef      de	e
eef      de	e
eef      de	eeef      de	e   dedeeee
eef   f   fdZd
edededefdZ	 	 	 	 	 	 d5d
edede	e
eef      de	e
eef      de	e
eef      de	eeef      de	e   dedefdZ	 	 	 	 	 	 d5d
edede	e
eef      de	e
eef      de	e
eef      de	eeef      de	e   dedefdZ 	 	 	 	 	 	 d5d
edede	e
eef      de	e
eef      de	e
eef      de	eeef      de	e   dedeeee
eef   f   fdZ!	 	 	 	 	 	 d5d
edede	e
eef      de	e
eef      de	e
eef      de	eeef      de	e   dedeeee
eef   f   fdZ"d
edededefd Z#	 	 	 	 	 	 d5d
edede	e
eef      de	e
eef      de	e
eef      de	eeef      de	e   dedefd!Z$	 	 	 	 	 	 d5d
edede	e
eef      de	e
eef      de	e
eef      de	eeef      de	e   dedefd"Z%	 	 	 	 	 	 d5d
edede	e
eef      de	e
eef      de	e
eef      de	eeef      de	e   dedeeee
eef   f   fd#Z&	 	 	 	 	 	 d5d
edede	e
eef      de	e
eef      de	e
eef      de	eeef      de	e   dedeeee
eef   f   fd$Z'	 d6d%e	e   d&e	e   de
eef   fd'Z(	 	 	 	 	 	 d5d
edede	e
eef      de	e
eef      de	e
eef      de	eeef      de	e   dedefd(Z)	 	 	 	 	 	 d5d
edede	e
eef      de	e
eef      de	e
eef      de	eeef      de	e   dedefd)Z*	 	 	 	 	 	 d5d
edede	e
eef      de	e
eef      de	e
eef      de	eeef      de	e   dedeeee
eef   f   fd*Z+	 	 	 	 	 	 d5d
edede	e
eef      de	e
eef      de	e
eef      de	eeef      de	e   dedeeee
eef   f   fd+Z,	 	 d6d,e	e-   d%e	e   d-e	e   de.e   fd.Z/	 	 d6d,e	e-   d%e	e   d-e	e   de0e   fd/Z1d
edededefd0Z2	 	 	 	 	 	 d5d
edede	e
eef      de	e
eef      de	e
eef      de	eeef      de	e   dedefd1Z3	 	 	 	 	 	 d5d
edede	e
eef      de	e
eef      de	e
eef      de	eeef      de	e   dedefd2Z4	 	 	 	 	 	 d5d
edede	e
eef      de	e
eef      de	e
eef      de	eeef      de	e   dedeeee
eef   f   fd3Z5	 	 	 	 	 	 d5d
edede	e
eef      de	e
eef      de	e
eef      de	eeef      de	e   dedeeee
eef   f   fd4Z6y	)7Versionz$
    Represents an API version.
    domainversionc                      || _         || _        y N)r   r   )selfr   r   s      Q/home/sas/my/fyp/ringai/.venv/lib/python3.12/site-packages/twilio/base/version.py__init__zVersion.__init__   s        urireturnc                 V    | j                   j                  | j                  |            S )z<
        Turns a relative uri into an absolute url.
        )r   absolute_urlrelative_urir   r   s     r   r   zVersion.absolute_url   s$     {{''(9(9#(>??r   c                 v    dj                  | j                  j                  d      |j                  d            S )zE
        Turns a relative uri into a versioned relative uri.
        z{}/{}/)formatr   stripr   s     r   r   zVersion.relative_uri   s,     ~~dll005syy~FFr   Nmethodparamsdataheadersauthtimeoutallow_redirectsc	           
      j    | j                  |      }	| j                  j                  ||	||||||      S )z'
        Make an HTTP request.
        r%   r&   r'   r(   r)   r*   )r   r   request
r   r$   r   r%   r&   r'   r(   r)   r*   urls
             r   r-   zVersion.request    sH     ${{""+ # 	
 		
r   c	           
         K   | j                  |      }	| j                  j                  ||	||||||       d{   S 7 w)z3
        Make an asynchronous HTTP request
        r,   N)r   r   request_asyncr.   s
             r   r1   zVersion.request_async:   sV      $[[..+ / 	
 	
 		
 	
s   8A?Aresponsemessagec                 *   	 t        j                  |j                        t        fddD              rMt	        d   d   d   d   j                  d      j                  d      j                  d	      ||
	      S dv rdj                  |d         }j                  d      }j                  d|j                        }t        |j                  |||||      S # t        $ r& t        |j                  |||j                  |      cY S w xY w)a>  
        Wraps an exceptional response in a `TwilioRestException` or `TwilioServiceException`.

        If the response is RFC-9457 compliant (contains 'type', 'title', 'status', and 'code' fields),
        returns a TwilioServiceException. Otherwise, returns a TwilioRestException for backward compatibility.
        c              3   &   K   | ]  }|v  
 y wr    ).0keyerror_payloads     r   	<genexpr>z$Version.exception.<locals>.<genexpr>d   s     WC3-'Ws   )typetitlestatuscoder;   r<   r=   r>   detailinstanceerrors)	type_urir<   r=   r>   r?   r@   rA   r$   r   r3   z{}: {}details)
jsonloadstextallr   getr"   status_coder   	Exception)clsr$   r   r2   r3   rC   r>   r9   s          @r   	exceptionzVersion.exceptionT   s$   	 JJx}}5M W3VWW-*62'0(2&v.(,,X6*..z:(,,X6!
 
 -&oog}Y7OPG'++I6$((1E1EF*((#wfg   	&$$c7H4H4H& 	s   A?C# AC# #,DDc                     |j                   dk  s|j                   dk\  r| j                  |||d      t        j                  |j                        S )z,
        Parses fetch response JSON
           i  zUnable to fetch recordrI   rL   rD   rE   rF   r   r$   r   r2   s       r   _parse_fetchzVersion._parse_fetch   sH    
 #%)=)=)D..h8PQQzz(--((r   c	           
      Z    | j                  ||||||||      }	| j                  |||	      S )z,
        Fetch a resource instance.
        r,   )r-   rQ   
r   r$   r   r%   r&   r'   r(   r)   r*   r2   s
             r   fetchzVersion.fetch   sF     <<+   	
   h77r   c	           
      v   K   | j                  ||||||||       d{   }	| j                  |||	      S 7 w)z;
        Asynchronously fetch a resource instance.
        r,   N)r1   rQ   rS   s
             r   fetch_asynczVersion.fetch_async   sV      +++ , 	
 	
   h77	
   979c	           
          | j                  ||||||||      }	| j                  |||	      }
|
|	j                  t        |	j                  xs i       fS )aV  
        Fetch a resource and return response metadata

        Returns:
            tuple: (payload_dict, status_code, headers_dict)
                - payload_dict: The JSON response body as a dictionary
                - status_code: HTTP status code (typically 200)
                - headers_dict: Response headers as a dictionary
        r,   )r-   rQ   rI   dictr'   r   r$   r   r%   r&   r'   r(   r)   r*   r2   payloads              r   fetch_with_response_infoz Version.fetch_with_response_info   sh    ( <<+   	
 ##FC:,,d83C3C3Ir.JJJr   c	           
         K   | j                  ||||||||       d{   }	| j                  |||	      }
|
|	j                  t        |	j                  xs i       fS 7 =w)ae  
        Asynchronously fetch a resource and return response metadata

        Returns:
            tuple: (payload_dict, status_code, headers_dict)
                - payload_dict: The JSON response body as a dictionary
                - status_code: HTTP status code (typically 200)
                - headers_dict: Response headers as a dictionary
        r,   N)r1   rQ   rI   rY   r'   rZ   s              r   fetch_with_response_info_asyncz&Version.fetch_with_response_info_async   sx     ( +++ , 	
 	
 ##FC:,,d83C3C3Ir.JJJ	
   AA>Ac                     |j                   dk  s|j                   dk\  r| j                  |||d      t        j                  |j                        S )z-
        Parses update response JSON
        rN   ,  zUnable to update recordrO   rP   s       r   _parse_updatezVersion._parse_update   H     #%)=)=)D..h8QRRzz(--((r   c	           
      Z    | j                  ||||||||      }	| j                  |||	      S )z-
        Update a resource instance.
        r,   )r-   rb   rS   s
             r   updatezVersion.update	  F     <<+   	
 !!&#x88r   c	           
      v   K   | j                  ||||||||       d{   }	| j                  |||	      S 7 w)z<
        Asynchronously update a resource instance.
        r,   N)r1   rb   rS   s
             r   update_asynczVersion.update_async$  V      +++ , 	
 	
 !!&#x88	
rW   c	           
          | j                  ||||||||      }	| j                  |||	      }
|
|	j                  t        |	j                  xs i       fS )aW  
        Update a resource and return response metadata

        Returns:
            tuple: (payload_dict, status_code, headers_dict)
                - payload_dict: The JSON response body as a dictionary
                - status_code: HTTP status code (typically 200)
                - headers_dict: Response headers as a dictionary
        r,   )r-   rb   rI   rY   r'   rZ   s              r   update_with_response_infoz!Version.update_with_response_info?  h    ( <<+   	
 $$VS(;,,d83C3C3Ir.JJJr   c	           
         K   | j                  ||||||||       d{   }	| j                  |||	      }
|
|	j                  t        |	j                  xs i       fS 7 =w)af  
        Asynchronously update a resource and return response metadata

        Returns:
            tuple: (payload_dict, status_code, headers_dict)
                - payload_dict: The JSON response body as a dictionary
                - status_code: HTTP status code (typically 200)
                - headers_dict: Response headers as a dictionary
        r,   N)r1   rb   rI   rY   r'   rZ   s              r   update_with_response_info_asyncz'Version.update_with_response_info_async`  x     ( +++ , 	
 	
 $$VS(;,,d83C3C3Ir.JJJ	
r_   c                 h    |j                   dk  s|j                   dk\  r| j                  |||d      y)z-
        Parses delete response JSON
        rN   ra   zUnable to delete recordT)rI   rL   rP   s       r   _parse_deletezVersion._parse_delete  s8     #%)=)=)D..h8QRRr   c	           
      Z    | j                  ||||||||      }	| j                  |||	      S )z$
        Delete a resource.
        r,   )r-   rq   rS   s
             r   deletezVersion.delete  rf   r   c	           
      v   K   | j                  ||||||||       d{   }	| j                  |||	      S 7 w)z3
        Asynchronously delete a resource.
        r,   N)r1   rq   rS   s
             r   delete_asynczVersion.delete_async  ri   rW   c	           
          | j                  ||||||||      }	| j                  |||	      }
|
|	j                  t        |	j                  xs i       fS )a{  
        Delete a resource and return response metadata

        Returns:
            tuple: (success_boolean, status_code, headers_dict)
                - success_boolean: True if deletion was successful (2XX response)
                - status_code: HTTP status code (typically 204 for successful delete)
                - headers_dict: Response headers as a dictionary
        r,   )r-   rq   rI   rY   r'   r   r$   r   r%   r&   r'   r(   r)   r*   r2   successs              r   delete_with_response_infoz!Version.delete_with_response_info  rl   r   c	           
         K   | j                  ||||||||       d{   }	| j                  |||	      }
|
|	j                  t        |	j                  xs i       fS 7 =w)a  
        Asynchronously delete a resource and return response metadata

        Returns:
            tuple: (success_boolean, status_code, headers_dict)
                - success_boolean: True if deletion was successful (2XX response)
                - status_code: HTTP status code (typically 204 for successful delete)
                - headers_dict: Response headers as a dictionary
        r,   N)r1   rq   rI   rY   r'   rw   s              r   delete_with_response_info_asyncz'Version.delete_with_response_info_async  ro   r_   limit	page_sizec                 `    |||}|xs t         j                  |xs t         j                  dS )a  
        Takes a limit on the max number of records to read and a max page_size
        and calculates the max number of pages to read.

        :param limit: Max number of records to read.
        :param page_size: Max page size.
        :return A dictionary of paging limits.
        )r|   r}   )r
   unset)r   r|   r}   s      r   read_limitszVersion.read_limits  s8     !2I *fll"2fll
 	
r   c	           
      4    | j                  ||||||||      S )z(
        Makes an HTTP request.
        r,   )r-   	r   r$   r   r%   r&   r'   r(   r)   r*   s	            r   pagezVersion.page  s2     ||+  	
 		
r   c	           
      P   K   | j                  ||||||||       d{   S 7 w)z5
        Makes an asynchronous HTTP request.
        r,   N)r1   r   s	            r   
page_asynczVersion.page_async.  sB      ''+ ( 	
 	
 		
 	
s   &$&c	           
          | j                  ||||||||      }	|	|	j                  t        |	j                  xs i       fS )aG  
        Fetch a page and return response metadata

        Returns:
            tuple: (response_object, status_code, headers_dict)
                - response_object: The Response object (not parsed JSON)
                - status_code: HTTP status code
                - headers_dict: Response headers as a dictionary
        r,   )r-   rI   rY   r'   rS   s
             r   page_with_response_infozVersion.page_with_response_infoG  sT    ( <<+   	
 --tH4D4D4J/KKKr   c	           
         K   | j                  ||||||||       d{   }	|	|	j                  t        |	j                  xs i       fS 7 *w)aV  
        Asynchronously fetch a page and return response metadata

        Returns:
            tuple: (response_object, status_code, headers_dict)
                - response_object: The Response object (not parsed JSON)
                - status_code: HTTP status code
                - headers_dict: Response headers as a dictionary
        r,   N)r1   rI   rY   r'   rS   s
             r   page_with_response_info_asyncz%Version.page_with_response_info_asyncg  sd     ( +++ , 	
 	
 --tH4D4D4J/KKK	
s   AA
+Ar   
page_limitc              #      K   d}d}|`|D ](  }| |dz  }|s|t         j                  us"||k  s( y |dz  }|r|t         j                  ur||k  ry|j                         }|_yywz
        Generates records one a time from a page, stopping at prescribed limits.

        :param page: The page to stream.
        :param limit: The max number of records to read.
        :param page_limit: The max number of pages to read.
           N)r
   r   	next_pager   r   r|   r   current_recordcurrent_pagerecords          r   streamzVersion.stream  s       !#U&,,65>;Q	 ALfll2->>#D s   A*A*A*4A*(A*c                   K   d}d}|i|D ])  }| |dz  }|s|t         j                  us#||k  s) y |dz  }|r|t         j                  ur||k  ry|j                          d{   }|hyy7 	wr   )r
   r   next_page_asyncr   s          r   stream_asynczVersion.stream_async  s       !#U&,,65>;Q	 ALfll2---//D  0s&   A5A5A55A5)A3*A51A5c                     |j                   dk  s|j                   dk\  r| j                  |||d      t        j                  |j                        S )z,
        Parse create response JSON
        rN   ra   zUnable to create recordrO   rP   s       r   _parse_createzVersion._parse_create  rc   r   c	           
      Z    | j                  ||||||||      }	| j                  |||	      S )z-
        Create a resource instance.
        r,   )r-   r   rS   s
             r   createzVersion.create  sF     <<+   	
 !!&#x88r   c	           
      v   K   | j                  ||||||||       d{   }	| j                  |||	      S 7 w)z<
        Asynchronously create a resource instance.
        r,   N)r1   r   rS   s
             r   create_asynczVersion.create_async  sV      +++ , 	
 	
 !!&#x88	
rW   c	           
          | j                  ||||||||      }	| j                  |||	      }
|
|	j                  t        |	j                  xs i       fS )aS  
        Create a resource and return response metadata

        Returns:
            tuple: (payload_dict, status_code, headers_dict)
                - payload_dict: The JSON response body as a dictionary
                - status_code: HTTP status code (e.g., 201)
                - headers_dict: Response headers as a dictionary
        r,   )r-   r   rI   rY   r'   rZ   s              r   create_with_response_infoz!Version.create_with_response_info  rl   r   c	           
         K   | j                  ||||||||       d{   }	| j                  |||	      }
|
|	j                  t        |	j                  xs i       fS 7 =w)ab  
        Asynchronously create a resource and return response metadata

        Returns:
            tuple: (payload_dict, status_code, headers_dict)
                - payload_dict: The JSON response body as a dictionary
                - status_code: HTTP status code (e.g., 201)
                - headers_dict: Response headers as a dictionary
        r,   N)r1   r   rI   rY   r'   rZ   s              r   create_with_response_info_asyncz'Version.create_with_response_info_async'  ro   r_   )NNNNNF)NN)7__name__
__module____qualname____doc__r   strr   r   r   r   r   objectr   floatboolr   r-   r1   classmethodr	   r   r   rL   r   rQ   rT   rV   intr\   r^   rb   re   rh   rk   rn   rq   rs   ru   ry   r{   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r6   r   r   r   r      s   v  @ @ @G G G /3,0,0*.#' %

 
 c6k*+	

 tCK()
 $sCx.)
 uS#X'
 %
 
 

< /3,0,0*.#' %

 
 c6k*+	

 tCK()
 $sCx.)
 uS#X'
 %
 
 

4 (("(.6(AD(	"$::	;( (T)3 )S )H ) ) /3,0,0*.#' %88 8 c6k*+	8
 tCK()8 $sCx.)8 uS#X'8 %8 8 
8> /3,0,0*.#' %88 8 c6k*+	8
 tCK()8 $sCx.)8 uS#X'8 %8 8 
8< /3,0,0*.#' %KK K c6k*+	K
 tCK()K $sCx.)K uS#X'K %K K 
sCc3h'	(KJ /3,0,0*.#' %KK K c6k*+	K
 tCK()K $sCx.)K uS#X'K %K K 
sCc3h'	(KB)C )c )X )# ) /3,0,0*.#' %99 9 c6k*+	9
 tCK()9 $sCx.)9 uS#X'9 %9 9 
9> /3,0,0*.#' %99 9 c6k*+	9
 tCK()9 $sCx.)9 uS#X'9 %9 9 
9> /3,0,0*.#' %KK K c6k*+	K
 tCK()K $sCx.)K uS#X'K %K K 
sCc3h'	(KJ /3,0,0*.#' %KK K c6k*+	K
 tCK()K $sCx.)K uS#X'K %K K 
sCc3h'	(KBC c X $  /3,0,0*.#' %99 9 c6k*+	9
 tCK()9 $sCx.)9 uS#X'9 %9 9 
9> /3,0,0*.#' %99 9 c6k*+	9
 tCK()9 $sCx.)9 uS#X'9 %9 9 
9> /3,0,0*.#' %KK K c6k*+	K
 tCK()K $sCx.)K uS#X'K %K K 
tS$sCx.(	)KJ /3,0,0*.#' %KK K c6k*+	K
 tCK()K $sCx.)K uS#X'K %K K 
tS$sCx.(	)KD GK
c]
6>sm
	c6k	
. /3,0,0*.#' %

 
 c6k*+	

 tCK()
 $sCx.)
 uS#X'
 %
 
 

: /3,0,0*.#' %

 
 c6k*+	

 tCK()
 $sCx.)
 uS#X'
 %
 
 

: /3,0,0*.#' %LL L c6k*+	L
 tCK()L $sCx.)L uS#X'L %L L 
xd38n,	-LH /3,0,0*.#' %LL L c6k*+	L
 tCK()L $sCx.)L uS#X'L %L L 
xd38n,	-LF  $$(	$tn$ }$ SM	$
 
#$H  $$(	0tn0 }0 SM	0
 
s	0B)C )c )X )# ) /3,0,0*.#' %99 9 c6k*+	9
 tCK()9 $sCx.)9 uS#X'9 %9 9 
9< /3,0,0*.#' %99 9 c6k*+	9
 tCK()9 $sCx.)9 uS#X'9 %9 9 
9< /3,0,0*.#' %KK K c6k*+	K
 tCK()K $sCx.)K uS#X'K %K K 
sCc3h'	(KJ /3,0,0*.#' %KK K c6k*+	K
 tCK()K $sCx.)K uS#X'K %K K 
sCc3h'	(Kr   r   )rD   typingr   r   r   r   r   r   r	   twilio.baser
   twilio.base.domainr   twilio.base.exceptionsr   r   twilio.base.pager   twilio.http.responser   r   r   r6   r   r   <module>r      s0     M M M  % N ! ){Kf {Kr   