
    <@g%,                         d dl mZ d dlmZ d dlmZ d dlmZ d dlm	Z	 d dl
mZmZmZmZmZ d dlmZmZmZmZ  G d d	ed	   ed	         Zy
)    )CreateableAPIResource)
ListObject)ListableAPIResource)RequestOptions)StripeObject)ClassVarDictListOptionalcast)LiteralNotRequired	TypedDictUnpackc                      e Zd ZU dZdZeed      ed<    G d de      Z	 G d de      Z
 G d d	e      Z G d
 de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Zeed<   	 eed<   	 eed<   	 eeeef      ed<   	 ed   ed<   	 eed<   	 eed      ed<   	 ee	   ed<   	 ee
   ed<   	 ee   ed <   	 ee   ed!<   	 ed"ed#   d$d fd%       Zed"ed#   d$d fd&       Zed"ed'   d$ed    fd(       Zed"ed'   d$ed    fd)       Z eded"ed*   d$d fd+       Z!eded"ed*   d$d fd,       Z"e	e
ed-Z#y.)/Requesta(  
    Instructs Stripe to make a request on your behalf using the destination URL. The destination URL
    is activated by Stripe at the time of onboarding. Stripe verifies requests with your credentials
    provided during onboarding, and injects card details from the payment_method into the request.

    Stripe redacts all sensitive fields and headers, including authentication credentials and card numbers,
    before storing the request and response data in the forwarding Request object, which are subject to a
    30-day retention period.

    You can provide a Stripe idempotency key to make sure that requests with the same key result in only one
    outbound request. The Stripe idempotency key provided should be unique and different from any idempotency
    keys provided on the underlying third-party request.

    Forwarding Requests are synchronous requests that return a response or time out according to
    Stripe's limits.

    Related guide: [Forward card details to third-party API endpoints](https://docs.stripe.com/payments/forwarding).
    zforwarding.requestOBJECT_NAMEc                   $    e Zd ZU eed<   	 eed<   y)Request.RequestContextdestination_durationdestination_ip_addressN)__name__
__module____qualname__int__annotations__str     Y/var/www/html/AdoubleTech/venv/lib/python3.12/site-packages/stripe/forwarding/_request.pyRequestContextr   $   s    !!	 !$#	r   r!   c                   \    e Zd ZU  G d de      Zeed<   	 ee   ed<   	 ed   ed<   	 deiZ	y)Request.RequestDetailsc                   $    e Zd ZU eed<   	 eed<   y)Request.RequestDetails.HeadernamevalueNr   r   r   r   r   r   r   r    Headerr%   /       I Jr   r)   bodyheadersPOSThttp_methodN)
r   r   r   r   r)   r   r   r
   r   _inner_class_typesr   r   r    RequestDetailsr#   .   sI    	\ 	 		 f	 V_$	 (0r   r0   c                   V    e Zd ZU  G d de      Zeed<   	 ee   ed<   	 eed<   	 deiZ	y)Request.ResponseDetailsc                   $    e Zd ZU eed<   	 eed<   y)Request.ResponseDetails.Headerr&   r'   Nr(   r   r   r    r)   r4   H   r*   r   r)   r+   r,   statusN)
r   r   r   r   r)   r   r   r
   r   r/   r   r   r    ResponseDetailsr2   G   sD    	\ 	 		 f	 	 (0r   r6   c                   |    e Zd ZU eee      ed<   	 eeeef      ed<   	 eed<   	 eed      ed<   	 ded<   	 eed<   y	)
Request.CreateParamsexpandmetadatapayment_methodcard_cvccard_expirycard_numbercardholder_namerequest_signaturereplacementsRequest.CreateParamsRequestrequesturlN)	r   r   r   r   r
   r   r   r	   r   r   r   r    CreateParamsr8   `   sw    DI&&	 d38n--	 	 %
 	
	 /.	 	r   rF   c                   6    e Zd ZU ee   ed<   	 eed      ed<   y)rC   r+   !Request.CreateParamsRequestHeaderr,   N)r   r   r   r   r   r   r
   r   r   r    CreateParamsRequestzRequest.CreateParamsRequest   s*    #	 T"EFGG	r   rI   c                   $    e Zd ZU eed<   	 eed<   y)rH   r&   r'   Nr(   r   r   r    CreateParamsRequestHeaderz!Request.CreateParamsRequestHeader   s    		 
	r   rK   c                   l    e Zd ZU ed   ed<   	 ee   ed<   	 eee      ed<   	 ee   ed<   	 ee   ed<   y)Request.ListParamsRequest.ListParamsCreatedcreatedending_beforer9   limitstarting_afterN)r   r   r   r   r   r   r
   r   r   r   r    
ListParamsrM      s_    899	 #3''	 DI&&	 3	 $C((	r   rS   c                   T    e Zd ZU ee   ed<   	 ee   ed<   	 ee   ed<   	 ee   ed<   y)rN   gtgteltlteN)r   r   r   r   r   r   r   r   r    ListParamsCreatedzRequest.ListParamsCreated   sH    	 	 	 	r   rY   c                   $    e Zd ZU eee      ed<   y)Request.RetrieveParamsr9   N)r   r   r   r   r
   r   r   r   r   r    RetrieveParamsr[      s    DI&&	r   r\   rO   idlivemoder:   objectr;   r<   rB   request_contextrequest_detailsresponse_detailsrE   paramsr8   returnc                 Z    t        d| j                  d| j                         |            S )5
        Creates a ForwardingRequest object.
        r   postrc   )r   _static_request	class_urlclsrc   s     r    createzRequest.create   s6    
    
 	
r   c                 v   K   t        d| j                  d| j                         |       d{         S 7 w)rf   r   rg   rh   N)r   _static_request_asyncrj   rk   s     r    create_asynczRequest.create_async  sD      ++ ,  
 	
s   ,97
	9rM   c                     | j                  d| j                         |      }t        |t              s!t	        dt        |      j                  z        |S )6
        Lists all ForwardingRequest objects.
        getrh   %Expected list object from API, got %s)ri   rj   
isinstancer   	TypeErrortyper   rl   rc   results      r    listzRequest.list  s]     $$MMO % 

 &*-7<((* 
 r   c                    K   | j                  d| j                         |       d{   }t        |t              s!t	        dt        |      j                  z        |S 7 7w)rr   rs   rh   Nrt   )ro   rj   ru   r   rv   rw   r   rx   s      r    
list_asynczRequest.list_async+  sk      00MMO 1 
 

 &*-7<((* 
 
s   &A"A 8A"r[   c                 8     | |fi |}|j                          |S )7
        Retrieves a ForwardingRequest object.
        )refreshrl   r]   rc   instances       r    retrievezRequest.retrieve?  s$     r$V$r   c                 T   K    | |fi |}|j                          d{    |S 7 w)r~   N)refresh_asyncr   s       r    retrieve_asynczRequest.retrieve_asyncJ  s3      r$V$$$&&& 	's   (&()r`   ra   rb   N)$r   r   r   __doc__r   r   r   r   r   r!   r0   r6   r   rF   r   rI   rK   rS   rY   r\   r   r   boolr   r	   r
   classmethodr   rm   rp   r   rz   r|   r   r   r/   r   r   r    r   r      sy   & <PK'"678O 1 121, 12 ~  Di I ^ ,I $  L 	G N tCH~&& ())  !	
  n-- n-- // 
# 
f%;< 
 
 
 
45
	
 
 23	I	 & 23	I	 &  &'? @	   &'? @	  *)+r   r   N)stripe._createable_api_resourcer   stripe._list_objectr   stripe._listable_api_resourcer   stripe._request_optionsr   stripe._stripe_objectr   typingr   r	   r
   r   r   typing_extensionsr   r   r   r   r   r   r   r    <module>r      s?    B * = 2 . 7 7 E EM)$&9)&DMr   