o
    i\0                    @   s  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 d dlmZ d dlmZ d d	lmZmZ d d
lmZmZmZmZmZmZ d dlmZmZmZmZ erd 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* d dl+m,Z, d dl-m.Z. d dl/m0Z0 d dl1m2Z2 d dl3m4Z4 d dl5m6Z6 d dl7m8Z8 d dl9m:Z: d dl;m<Z< d dl=m>Z> d dl?m@Z@ d dlAmBZB d dlCmDZD d dlEmFZF d d lGmHZH d d!lImJZJ G d"d# d#ed# ed# e	d# ed# ZKeKeKjL_Md$S )%    )CreateableAPIResource)DeletableAPIResource)ExpandableField)
ListObject)ListableAPIResource)StripeObject)APIResourceTestHelpers)UpdateableAPIResource)class_method_variantsanitize_id)ClassVarDictListOptionalcastoverload)LiteralTypeUnpackTYPE_CHECKING)Charge)PaymentIntent)PaymentMethod)Refund)SetupIntent)ReaderCancelActionParams)ReaderCollectInputsParams) ReaderCollectPaymentMethodParams) ReaderConfirmPaymentIntentParams)ReaderCreateParams)ReaderDeleteParams)ReaderListParams)ReaderModifyParams) ReaderPresentPaymentMethodParams) ReaderProcessPaymentIntentParams)ReaderProcessSetupIntentParams)ReaderRefundPaymentParams)ReaderRetrieveParams)ReaderSetReaderDisplayParams)"ReaderSucceedInputCollectionParams)"ReaderTimeoutInputCollectionParams)Locationc                   @   sz
  e Zd ZU dZdZeed  ed< G dd deZ	e
e	 ed< 	 e
ed  ed< 	 e
e ed	< 	 ed
 ed< 	 eed< 	 e
e ed< 	 eed< 	 e
e ed< 	 eed< 	 e
ed  ed< 	 eeef ed< 	 ed ed< 	 eed< 	 e
ed  ed< 	 ededed dd fddZeededed dd fddZeded dd fd dZed!ded dd fd"dZededed dd fd#d$Zeededed dd fd%d&Zeded dd fd'd&Zed(ded dd fd)d&Zededed* dd fd+d,Zeededed* dd fd-d.Zeded* dd fd/d.Zed0ded* dd fd1d.Zededed* dd fd2d3Zeededed* dd fd4d5Zeded* dd fd6d5Zed7ded* dd fd8d5Zededed9 dd fd:d;Zeededed9 dd fd<d=Zeded9 dd fd>d=Zed?ded9 dd fd@d=Zededed9 dd fdAdBZeededed9 dd fdCdDZ eded9 dd fdEdDZ edFded9 dd fdGdDZ edededH dd fdIdJZ!eedededH dd fdKdLZ"ededH dd fdMdLZ"edNdedH dd fdOdLZ"edededH dd fdPdQZ#eedededH dd fdRdSZ$ededH dd fdTdSZ$edUdedH dd fdVdSZ$ededW dd fdXdYZ%ededW dd fdZd[Z&ed\eded] dd fd^d_Z'eed\eded] dd fd`daZ(eded] dd fdbdaZ(edcded] dd fdddaZ(ed\eded] dd fdedfZ)eed\eded] dd fdgdhZ*eded] dd fdidhZ*edjded] dd fdkdhZ*ededl de+d  fdmdnZ,ededl de+d  fdodpZ-edededq dd fdrdsZ.edededq dd fdtduZ/edededv dd fdwdxZ0eedededv dd fdydzZ1ededv dd fd{dzZ1ed|dedv dd fd}dzZ1edededv dd fd~dZ2eedededv dd fddZ3ededv dd fddZ3eddedv dd fddZ3ededed dd fddZ4eededed dd fddZ5eded dd fddZ5edded dd fddZ5ededed dd fddZ6eededed dd fddZ7eded dd fddZ7edded dd fddZ7ededed dd fddZ8eededed dd fddZ9eded dd fddZ9edded dd fddZ9ededed dd fddZ:eededed dd fddZ;eded dd fddZ;edded dd fddZ;ededed dd fddZ<ededed dd fddZ=ededed dd fddZ>eededed dd fddZ?eded dd fddZ?edded dd fddZ?ededed dd fddZ@eededed dd fddZAeded dd fddZAedded dd fddZAG dd deBd  ZCeDdd ZEde	iZFdS )Readerz
    A Reader represents a physical device for accepting payment details.

    Related guide: [Connecting to a reader](https://stripe.com/docs/terminal/payments/connect-reader)
    zterminal.readerOBJECT_NAMEc                   @   s,  e Zd ZU G dd deZG dd deZG dd deZG dd deZG d	d
 d
eZG dd deZ	G dd deZ
ee ed< 	 ee ed< 	 ee ed< 	 ee ed< 	 ee ed< 	 ee ed< 	 ee ed< 	 ee	 ed< 	 ee
 ed< 	 ed ed< 	 ed ed< 	 eeeeee	e
dZdS )zReader.Actionc                   @   sJ   e Zd ZU G dd deZee ed< 	 eee	e	f  ed< 	 deiZ
dS )zReader.Action.CollectInputsc                	   @   sB  e Zd ZU G dd deZG dd deZG dd deZG dd deZG d	d
 d
eZG dd deZ	G dd deZ
G dd deZee ed< 	 ee ed< 	 ee ed< 	 ee ed< 	 ee ed< 	 ee ed< 	 ee	 ed< 	 ee ed< 	 ee
 ed< 	 eee  ed< 	 ed ed< 	 eeeeee	e
edZdS )z!Reader.Action.CollectInputs.Inputc                   @   sD   e Zd ZU ee ed< 	 ee ed< 	 ee ed< 	 ee ed< dS )z,Reader.Action.CollectInputs.Input.CustomTextdescriptionskip_buttonsubmit_buttontitleN__name__
__module____qualname__r   str__annotations__ r8   r8   w/var/www/snowflake_co_dev_github/snow_flake_back_end_deploy/env/lib/python3.10/site-packages/stripe/terminal/_reader.py
CustomTextQ   s   
 r:   c                   @      e Zd ZU ee ed< dS )z'Reader.Action.CollectInputs.Input.EmailvalueNr2   r8   r8   r8   r9   Emailc      
 r=   c                   @   r;   )z)Reader.Action.CollectInputs.Input.Numericr<   Nr2   r8   r8   r8   r9   Numerici   r>   r?   c                   @   r;   )z'Reader.Action.CollectInputs.Input.Phoner<   Nr2   r8   r8   r8   r9   Phoneo   r>   r@   c                   @   sP   e Zd ZU G dd deZee ed< 	 ee ed< 	 ee ed< 	 deiZ	dS )z+Reader.Action.CollectInputs.Input.Selectionc                   @   s6   e Zd ZU ee ed< 	 eed  ed< 	 eed< dS )z2Reader.Action.CollectInputs.Input.Selection.Choiceid)primary	secondarystyletextN)r3   r4   r5   r   r6   r7   r   r8   r8   r8   r9   Choicev   s   
 rF   choicesrA   rE   N)
r3   r4   r5   r   rF   r   r7   r   r6   _inner_class_typesr8   r8   r8   r9   	Selectionu   s   
 rI   c                   @   r;   )z+Reader.Action.CollectInputs.Input.Signaturer<   Nr2   r8   r8   r8   r9   	Signature   r>   rJ   c                   @   r;   )z&Reader.Action.CollectInputs.Input.Textr<   Nr2   r8   r8   r8   r9   Text   r>   rK   c                   @   sL   e Zd ZU eed  ed< 	 ee ed< 	 ee ed< 	 eed  ed< dS )z(Reader.Action.CollectInputs.Input.Toggle)disabledenableddefault_valuer.   r1   r<   N)r3   r4   r5   r   r   r7   r6   r8   r8   r8   r9   Toggle   s   
 rO   custom_textemailnumericphonerequired	selection	signatureskippedrE   toggles)rQ   rR   rS   rU   rV   rE   type)rP   rQ   rR   rS   rU   rV   rE   rX   N)r3   r4   r5   r   r:   r=   r?   r@   rI   rJ   rK   rO   r   r7   boolr   r   rH   r8   r8   r8   r9   InputP   sT   
 
r[   inputsmetadataN)r3   r4   r5   r   r[   r   r7   r   r   r6   rH   r8   r8   r8   r9   CollectInputsO   s   
  r^   c                   @   sP   e Zd ZU G dd deZee ed< 	 ed ed< 	 ed ed< 	 deiZdS )	z"Reader.Action.CollectPaymentMethodc                   @   sP   e Zd ZU G dd deZee ed< 	 ee ed< 	 ee ed< 	 deiZdS )z0Reader.Action.CollectPaymentMethod.CollectConfigc                   @   r;   )z8Reader.Action.CollectPaymentMethod.CollectConfig.Tippingamount_eligibleNr3   r4   r5   r   intr7   r8   r8   r8   r9   Tipping   r>   rb   enable_customer_cancellationskip_tippingtippingN)	r3   r4   r5   r   rb   r   rZ   r7   rH   r8   r8   r8   r9   CollectConfig      
 rf   collect_configr   payment_intentr   payment_methodN)	r3   r4   r5   r   rf   r   r7   r   rH   r8   r8   r8   r9   CollectPaymentMethod   s   
 rk   c                   @   sB   e Zd ZU G dd deZee ed< 	 ed ed< 	 deiZdS )z"Reader.Action.ConfirmPaymentIntentc                   @   r;   )z0Reader.Action.ConfirmPaymentIntent.ConfirmConfig
return_urlNr2   r8   r8   r8   r9   ConfirmConfig!  r>   rm   confirm_configr   ri   N)	r3   r4   r5   r   rm   r   r7   r   rH   r8   r8   r8   r9   ConfirmPaymentIntent   s   
 ro   c                   @   sB   e Zd ZU G dd deZed ed< 	 ee ed< 	 deiZdS )z"Reader.Action.ProcessPaymentIntentc                   @   s^   e Zd ZU G dd deZee ed< 	 ee ed< 	 ee ed< 	 ee ed< 	 deiZ	dS )z0Reader.Action.ProcessPaymentIntent.ProcessConfigc                   @   r;   )z8Reader.Action.ProcessPaymentIntent.ProcessConfig.Tippingr_   Nr`   r8   r8   r8   r9   rb   3  r>   rb   rc   rl   rd   re   N)
r3   r4   r5   r   rb   r   rZ   r7   r6   rH   r8   r8   r8   r9   ProcessConfig2  s   
 rp   r   ri   process_configN)	r3   r4   r5   r   rp   r   r7   r   rH   r8   r8   r8   r9   ProcessPaymentIntent1  s   
 rr   c                   @   sP   e Zd ZU G dd deZee ed< 	 ee ed< 	 ed ed< 	 deiZ	dS )z Reader.Action.ProcessSetupIntentc                   @   r;   )z.Reader.Action.ProcessSetupIntent.ProcessConfigrc   Nr3   r4   r5   r   rZ   r7   r8   r8   r8   r9   rp   V  r>   rp   generated_cardrq   r   setup_intentN)
r3   r4   r5   r   rp   r   r6   r7   r   rH   r8   r8   r8   r9   ProcessSetupIntentU  rg   rv   c                   @   s   e Zd ZU G dd deZee ed< 	 eed  ed< 	 ee	e
e
f  ed< 	 eed  ed< 	 eed	  ed
< 	 eed  ed< 	 ee ed< 	 ee ed< 	 ee ed< 	 deiZdS )zReader.Action.RefundPaymentc                   @   r;   )z/Reader.Action.RefundPayment.RefundPaymentConfigrc   Nrs   r8   r8   r8   r9   RefundPaymentConfigk  r>   rw   amountr   charger]   r   ri   )	duplicate
fraudulentrequested_by_customerreasonr   refundrefund_application_feerefund_payment_configreverse_transferN)r3   r4   r5   r   rw   r   ra   r7   r   r   r6   r   rZ   rH   r8   r8   r8   r9   RefundPaymentj  s.   
 r   c                   @   sB   e Zd ZU G dd deZee ed< 	 ed ed< 	 deiZdS )zReader.Action.SetReaderDisplayc                   @   sV   e Zd ZU G dd deZeed< 	 ee ed< 	 ee	 ed< 	 e	ed< 	 deiZ
dS )z#Reader.Action.SetReaderDisplay.Cartc                   @   s*   e Zd ZU eed< 	 eed< 	 eed< dS )z,Reader.Action.SetReaderDisplay.Cart.LineItemrx   r.   quantityN)r3   r4   r5   ra   r7   r6   r8   r8   r8   r9   LineItem  s   
 r   currency
line_itemstaxtotalN)r3   r4   r5   r   r   r6   r7   r   r   ra   rH   r8   r8   r8   r9   Cart  s   
 r   cartrY   N)	r3   r4   r5   r   r   r   r7   r   rH   r8   r8   r8   r9   SetReaderDisplay  s   
 !r   collect_inputscollect_payment_methodconfirm_payment_intentfailure_codefailure_messageprocess_payment_intentprocess_setup_intentrefund_paymentset_reader_display)failedin_progress	succeededstatus)r   r   r   r   r   r   r   rY   N)r3   r4   r5   r   r^   rk   ro   rr   rv   r   r   r   r7   r6   r   rH   r8   r8   r8   r9   ActionN   sR   
  *($/,	
r   actionTdeleteddevice_sw_version)	bbpos_chipper2xbbpos_wisepad3bbpos_wisepos_emobile_phone_readersimulated_stripe_s700simulated_wisepos_e	stripe_m2stripe_s700verifone_P400device_typerA   
ip_addresslabellast_seen_atlivemoder+   locationr]   objectserial_number)offlineonliner   readerparamsr   returnc                 K   "   t d| jddjt|d|dS )
        Cancels the current reader action. See [Programmatic Cancellation](https://docs.stripe.com/docs/terminal/payments/collect-card-payment?terminal-sdk-platform=server-driven#programmatic-cancellation) for more details.
        r,   post+/v1/terminal/readers/{reader}/cancel_actionr   r   r   _static_requestformatr   clsr   r   r8   r8   r9   _cls_cancel_actionF     zReader._cls_cancel_actionc                 K      dS r   Nr8   r   r   r8   r8   r9   cancel_actionX     zReader.cancel_actionc                 K   r   r   r8   selfr   r8   r8   r9   r   b     r   c              	   K   (   t d| jddjt| dd|dS )r   r,   r   r   rA   r   r   r   _requestr   r   getr   r8   r8   r9   r   k     c                    *   t d| jddjt|d|dI dH S )r   r,   r   r   r   r   Nr   _static_request_asyncr   r   r   r8   r8   r9   _cls_cancel_action_async}     
zReader._cls_cancel_action_asyncc                       dS r   r8   r   r8   r8   r9   cancel_action_async     zReader.cancel_action_asyncc                    r   r   r8   r   r8   r8   r9   r        r   c              	      0   t d| jddjt| dd|dI dH S )r   r,   r   r   rA   r   r   Nr   _request_asyncr   r   r   r   r8   r8   r9   r        
r   c                 K   r   )
        Initiates an [input collection flow](https://docs.stripe.com/docs/terminal/features/collect-inputs) on a Reader to display input forms and collect information from your customers.
        r,   r   ,/v1/terminal/readers/{reader}/collect_inputsr   r   r   r   r8   r8   r9   _cls_collect_inputs  r   zReader._cls_collect_inputsc                 K   r   r   Nr8   r   r8   r8   r9   r     r   zReader.collect_inputsc                 K   r   r   r8   r   r8   r8   r9   r     r   r   c              	   K   r   )r   r,   r   r   rA   r   r   r   r   r8   r8   r9   r     r   c                    r   )r   r,   r   r   r   r   Nr   r   r8   r8   r9   _cls_collect_inputs_async  r   z Reader._cls_collect_inputs_asyncc                    r   r   r8   r   r8   r8   r9   collect_inputs_async  r   zReader.collect_inputs_asyncc                    r   r   r8   r   r8   r8   r9   r     r   r   c              	      r   )r   r,   r   r   rA   r   r   Nr   r   r8   r8   r9   r     r   r   c                 K   r   )G  
        Initiates a payment flow on a Reader and updates the PaymentIntent with card details before manual confirmation. See [Collecting a Payment method](https://docs.stripe.com/docs/terminal/payments/collect-card-payment?terminal-sdk-platform=server-driven&process=inspect#collect-a-paymentmethod) for more details.
        r,   r   4/v1/terminal/readers/{reader}/collect_payment_methodr   r   r   r   r8   r8   r9   _cls_collect_payment_method"  r   z"Reader._cls_collect_payment_methodc                 K   r   r   Nr8   r   r8   r8   r9   r   4  r   zReader.collect_payment_methodc                 K   r   r   r8   r   r8   r8   r9   r   >  r   r   c              	   K   r   )r   r,   r   r   rA   r   r   r   r   r8   r8   r9   r   G  r   c                    r   )r   r,   r   r   r   r   Nr   r   r8   r8   r9   !_cls_collect_payment_method_asyncY  r   z(Reader._cls_collect_payment_method_asyncc                    r   r   r8   r   r8   r8   r9   collect_payment_method_asynck  r   z#Reader.collect_payment_method_asyncc                    r   r   r8   r   r8   r8   r9   r   u  r   r   c              	      r   )r   r,   r   r   rA   r   r   Nr   r   r8   r8   r9   r   ~  r   r   c                 K   r   )
        Finalizes a payment on a Reader. See [Confirming a Payment](https://docs.stripe.com/docs/terminal/payments/collect-card-payment?terminal-sdk-platform=server-driven&process=inspect#confirm-the-paymentintent) for more details.
        r,   r   4/v1/terminal/readers/{reader}/confirm_payment_intentr   r   r   r   r8   r8   r9   _cls_confirm_payment_intent  r   z"Reader._cls_confirm_payment_intentc                 K   r   r   Nr8   r   r8   r8   r9   r     r   zReader.confirm_payment_intentc                 K   r   r   r8   r   r8   r8   r9   r     r   r   c              	   K   r   )r   r,   r   r   rA   r   r   r   r   r8   r8   r9   r     r   c                    r   )r   r,   r   r   r   r   Nr   r   r8   r8   r9   !_cls_confirm_payment_intent_async  r   z(Reader._cls_confirm_payment_intent_asyncc                    r   r   r8   r   r8   r8   r9   confirm_payment_intent_async  r   z#Reader.confirm_payment_intent_asyncc                    r   r   r8   r   r8   r8   r9   r     r   r   c              	      r   )r   r,   r   r   rA   r   r   Nr   r   r8   r8   r9   r     r   r   c                 K   s   t d| jd|  |dS ).
        Creates a new Reader object.
        r,   r   r   )r   r   	class_urlr   r   r8   r8   r9   create  s   zReader.createc                    s"   t d| jd|  |dI dH S )r   r,   r   r   N)r   r   r   r   r8   r8   r9   create_async  s   
zReader.create_asyncsidr    c                 K   *   d|   t|f }td| jd||dS )*
        Deletes a Reader object.
        %s/%sr,   deleter   r   r   r   r   r   r   r   urlr8   r8   r9   _cls_delete     zReader._cls_deletec                 K   r   r   Nr8   r   r   r8   r8   r9   r   -  s   zReader.deletec                 K   r   r   r8   r   r8   r8   r9   r   5  s   r   c                 K   s   | j d|  |dS )r   r   r   )_request_and_refreshinstance_urlr   r8   r8   r9   r   <  s
   c                    2   d|   t|f }td| jd||dI dH S )r   r   r,   r   r   Nr   r   r   r   r   r8   r8   r9   _cls_delete_asyncI     
zReader._cls_delete_asyncc                    r   r   r8   r   r8   r8   r9   delete_asyncZ  r   zReader.delete_asyncc                    r   r   r8   r   r8   r8   r9   r  d  r   r  c                    s   | j d|  |dI dH S )r   r   r   N)_request_and_refresh_asyncr   r   r8   r8   r9   r  m  s   r!   c                 K   s4   | j d|  |d}t|tstdt|j |S )3
        Returns a list of Reader objects.
        r   r   %Expected list object from API, got %s)r   r   
isinstancer   	TypeErrorrY   r3   r   r   resultr8   r8   r9   listz  s   
zReader.listc                    s<   | j d|  |dI dH }t|tstdt|j |S )r  r   r   Nr  )r   r   r  r   r  rY   r3   r	  r8   r8   r9   
list_async  s   
zReader.list_asyncr"   c                 K   r   )
        Updates a Reader object by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
        r   r,   r   r   r   r   rA   r   r   r8   r8   r9   modify  r   zReader.modifyc                    r   )r  r   r,   r   r   Nr   r  r8   r8   r9   modify_async  r  zReader.modify_asyncr$   c                 K   r   )
        Initiates a payment flow on a Reader. See [process the payment](https://docs.stripe.com/docs/terminal/payments/collect-card-payment?terminal-sdk-platform=server-driven&process=immediately#process-payment) for more details.
        r,   r   4/v1/terminal/readers/{reader}/process_payment_intentr   r   r   r   r8   r8   r9   _cls_process_payment_intent  r   z"Reader._cls_process_payment_intentc                 K   r   r  Nr8   r   r8   r8   r9   r     r   zReader.process_payment_intentc                 K   r   r  r8   r   r8   r8   r9   r     r   r  c              	   K   r   )r  r,   r   r  rA   r   r   r   r   r8   r8   r9   r     r   c                    r   )r  r,   r   r  r   r   Nr   r   r8   r8   r9   !_cls_process_payment_intent_async  r   z(Reader._cls_process_payment_intent_asyncc                    r   r  r8   r   r8   r8   r9   process_payment_intent_async  r   z#Reader.process_payment_intent_asyncc                    r   r  r8   r   r8   r8   r9   r    r   r  c              	      r   )r  r,   r   r  rA   r   r   Nr   r   r8   r8   r9   r     r   r%   c                 K   r   )
        Initiates a SetupIntent flow on a Reader. See [Save directly without charging](https://docs.stripe.com/docs/terminal/features/saving-payment-details/save-directly) for more details.
        r,   r   2/v1/terminal/readers/{reader}/process_setup_intentr   r   r   r   r8   r8   r9   _cls_process_setup_intent2  r   z Reader._cls_process_setup_intentc                 K   r   r  Nr8   r   r8   r8   r9   r   D  r   zReader.process_setup_intentc                 K   r   r  r8   r   r8   r8   r9   r   N  r   r  c              	   K   r   )r  r,   r   r  rA   r   r   r   r   r8   r8   r9   r   W  r   c                    r   )r  r,   r   r  r   r   Nr   r   r8   r8   r9   _cls_process_setup_intent_asynci  r   z&Reader._cls_process_setup_intent_asyncc                    r   r  r8   r   r8   r8   r9   process_setup_intent_async{  r   z!Reader.process_setup_intent_asyncc                    r   r  r8   r   r8   r8   r9   r    r   r  c              	      r   )r  r,   r   r  rA   r   r   Nr   r   r8   r8   r9   r    r   r&   c                 K   r   )
        Initiates an in-person refund on a Reader. See [Refund an Interac Payment](https://docs.stripe.com/docs/terminal/payments/regional?integration-country=CA#refund-an-interac-payment) for more details.
        r,   r   ,/v1/terminal/readers/{reader}/refund_paymentr   r   r   r   r8   r8   r9   _cls_refund_payment  r   zReader._cls_refund_paymentc                 K   r   r  Nr8   r   r8   r8   r9   r     r   zReader.refund_paymentc                 K   r   r   r8   r   r8   r8   r9   r     r   r  c              	   K   r   )r  r,   r   r  rA   r   r   r   r   r8   r8   r9   r     r   c                    r   )r  r,   r   r  r   r   Nr   r   r8   r8   r9   _cls_refund_payment_async  r   z Reader._cls_refund_payment_asyncc                    r   r   r8   r   r8   r8   r9   refund_payment_async  r   zReader.refund_payment_asyncc                    r   r   r8   r   r8   r8   r9   r"    r   r!  c              	      r   )r  r,   r   r  rA   r   r   Nr   r   r8   r8   r9   r"    r   r'   c                 K   s   | |fi |}|   |S ),
        Retrieves a Reader object.
        )refreshr   rA   r   instancer8   r8   r9   retrieve  s   zReader.retrievec                    s$   | |fi |}|  I dH  |S )r#  N)refresh_asyncr%  r8   r8   r9   retrieve_async  s   zReader.retrieve_asyncr(   c                 K   r   )y
        Sets the reader display to show [cart details](https://docs.stripe.com/docs/terminal/features/display).
        r,   r   0/v1/terminal/readers/{reader}/set_reader_displayr   r   r   r   r8   r8   r9   _cls_set_reader_display$  r   zReader._cls_set_reader_displayc                 K   r   r*  Nr8   r   r8   r8   r9   r   6  r   zReader.set_reader_displayc                 K   r   r-  r8   r   r8   r8   r9   r   @  r   r,  c              	   K   r   )r*  r,   r   r+  rA   r   r   r   r   r8   r8   r9   r   I  r   c                    r   )r*  r,   r   r+  r   r   Nr   r   r8   r8   r9   _cls_set_reader_display_async[  r   z$Reader._cls_set_reader_display_asyncc                    r   r-  r8   r   r8   r8   r9   set_reader_display_asyncm  r   zReader.set_reader_display_asyncc                    r   r-  r8   r   r8   r8   r9   r/  w  r   r.  c              	      r   )r*  r,   r   r+  rA   r   r   Nr   r   r8   r8   r9   r/    r   c                   @   s  e Zd ZU ed ed< ededed ddfddZe	e
deded ddfd	d
Ze	ded ddfdd
Zedded ddfdd
Zededed ddfddZe	e
deded ddfddZe	ded ddfddZedded ddfddZededed ddfddZe	e
deded ddfddZe	ded ddfddZedded ddfddZededed ddfddZe	e
deded ddfdd Ze	ded ddfd!d Zed"ded ddfd#d Zededed$ ddfd%d&Ze	e
deded$ ddfd'd(Ze	ded$ ddfd)d(Zed*ded$ ddfd+d(Zededed$ ddfd,d-Ze	e
deded$ ddfd.d/Ze	ded$ ddfd0d/Zed1ded$ ddfd2d/Zd3S )4zReader.TestHelpersr,   _resource_clsr   r   r#   r   c                 K   r   )
            Presents a payment method on a simulated reader. Can be used to simulate accepting a payment, saving a card or refunding a transaction.
            r,   r   A/v1/test_helpers/terminal/readers/{reader}/present_payment_methodr   r   r   r   r8   r8   r9   _cls_present_payment_method     	z.Reader.TestHelpers._cls_present_payment_methodc                 K   r   r1  Nr8   r   r8   r8   r9   present_payment_method  r   z)Reader.TestHelpers.present_payment_methodc                 K   r   r5  r8   r   r8   r8   r9   r6    r   r3  c              	   K   ,   t d| jjddjt| jdd|dS )r1  r,   r   r2  rA   r   r   r   resourcer   r   r   r   r   r8   r8   r9   r6       c                    r   )r1  r,   r   r2  r   r   Nr   r   r8   r8   r9   !_cls_present_payment_method_async     	
z4Reader.TestHelpers._cls_present_payment_method_asyncc                    r   r5  r8   r   r8   r8   r9   present_payment_method_async  r   z/Reader.TestHelpers.present_payment_method_asyncc                    r   r5  r8   r   r8   r8   r9   r=    r   r;  c              	      4   t d| jjddjt| jdd|dI dH S )r1  r,   r   r2  rA   r   r   Nr   r9  r   r   r   r   r   r8   r8   r9   r=       
r)   c                 K   r   )k
            Use this endpoint to trigger a successful input collection on a simulated reader.
            r,   r   C/v1/test_helpers/terminal/readers/{reader}/succeed_input_collectionr   r   r   r   r8   r8   r9   _cls_succeed_input_collection  r4  z0Reader.TestHelpers._cls_succeed_input_collectionc                 K   r   rA  Nr8   r   r8   r8   r9   succeed_input_collection  r   z+Reader.TestHelpers.succeed_input_collectionc                 K   r   rD  r8   r   r8   r8   r9   rE  %  r   rC  c              	   K   r7  )rA  r,   r   rB  rA   r   r   r8  r   r8   r8   r9   rE  .  r:  c                    r   )rA  r,   r   rB  r   r   Nr   r   r8   r8   r9   #_cls_succeed_input_collection_async@  r<  z6Reader.TestHelpers._cls_succeed_input_collection_asyncc                    r   rD  r8   r   r8   r8   r9   succeed_input_collection_asyncT  r   z1Reader.TestHelpers.succeed_input_collection_asyncc                    r   rD  r8   r   r8   r8   r9   rG  ^  r   rF  c              	      r>  )rA  r,   r   rB  rA   r   r   Nr?  r   r8   r8   r9   rG  g  r@  r*   c                 K   r   )w
            Use this endpoint to complete an input collection with a timeout error on a simulated reader.
            r,   r   C/v1/test_helpers/terminal/readers/{reader}/timeout_input_collectionr   r   r   r   r8   r8   r9   _cls_timeout_input_collectiony  r4  z0Reader.TestHelpers._cls_timeout_input_collectionc                 K   r   rH  Nr8   r   r8   r8   r9   timeout_input_collection  r   z+Reader.TestHelpers.timeout_input_collectionc                 K   r   rK  r8   r   r8   r8   r9   rL    r   rJ  c              	   K   r7  )rH  r,   r   rI  rA   r   r   r8  r   r8   r8   r9   rL    r:  c                    r   )rH  r,   r   rI  r   r   Nr   r   r8   r8   r9   #_cls_timeout_input_collection_async  r<  z6Reader.TestHelpers._cls_timeout_input_collection_asyncc                    r   rK  r8   r   r8   r8   r9   timeout_input_collection_async  r   z1Reader.TestHelpers.timeout_input_collection_asyncc                    r   rK  r8   r   r8   r8   r9   rN    r   rM  c              	      r>  )rH  r,   r   rI  rA   r   r   Nr?  r   r8   r8   r9   rN    r@  N)r3   r4   r5   r   r7   classmethodr6   r   r3  r   staticmethodr6  r
   r;  r=  rC  rE  rF  rG  rJ  rL  rM  rN  r8   r8   r8   r9   TestHelpers  s`  
 rQ  c                 C   s
   |  | S )N)rQ  )r   r8   r8   r9   test_helpers  s   
zReader.test_helpersN)Gr3   r4   r5   __doc__r-   r   r   r7   r   r   r   r6   ra   rZ   r   r   rO  r   r   r   rP  r   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r   r  r  r  r  r  r   r  r  r  r   r  r  r  r   r!  r"  r'  r)  r,  r   r.  r/  r   rQ  propertyrR  rH   r8   r8   r8   r9   r,   @   s  
    8

  [
r,   N)Nstripe._createable_api_resourcer   stripe._deletable_api_resourcer   stripe._expandable_fieldr   stripe._list_objectr   stripe._listable_api_resourcer   stripe._stripe_objectr   stripe._test_helpersr   stripe._updateable_api_resourcer	   stripe._utilr
   r   typingr   r   r   r   r   r   typing_extensionsr   r   r   r   stripe._charger   stripe._payment_intentr   stripe._payment_methodr   stripe._refundr   stripe._setup_intentr   3stripe.params.terminal._reader_cancel_action_paramsr   4stripe.params.terminal._reader_collect_inputs_paramsr   <stripe.params.terminal._reader_collect_payment_method_paramsr   <stripe.params.terminal._reader_confirm_payment_intent_paramsr   ,stripe.params.terminal._reader_create_paramsr   ,stripe.params.terminal._reader_delete_paramsr    *stripe.params.terminal._reader_list_paramsr!   ,stripe.params.terminal._reader_modify_paramsr"   <stripe.params.terminal._reader_present_payment_method_paramsr#   <stripe.params.terminal._reader_process_payment_intent_paramsr$   :stripe.params.terminal._reader_process_setup_intent_paramsr%   4stripe.params.terminal._reader_refund_payment_paramsr&   .stripe.params.terminal._reader_retrieve_paramsr'   8stripe.params.terminal._reader_set_reader_display_paramsr(   >stripe.params.terminal._reader_succeed_input_collection_paramsr)   >stripe.params.terminal._reader_timeout_input_collection_paramsr*   stripe.terminal._locationr+   r,   rQ  r0  r8   r8   r8   r9   <module>   sp    
               A