a
    g                     @   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mZm Z  e rd dl!m"Z" d dl#m$Z$ G dd ded ed ed Z%e%e%j&_'dS )    )CreateableAPIResource)ExpandableField)
ListObject)ListableAPIResource)RequestOptions)StripeObject)APIResourceTestHelpers)UpdateableAPIResource)class_method_variantsanitize_id)ClassVarDictListOptionalcastoverload)LiteralNotRequiredType	TypedDictUnpackTYPE_CHECKING)File)PhysicalBundlec                   @   s  e Zd ZU dZdZeed  ed< 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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d$  ed%< ee	 ed&< eed'< eed(< eed)< ee ed*< e eef ed+< ee ed,< ed ed-< ed. ed/< e
ed0< eed1< ed2 ed3< e!e"d4 d d5d6d7Z#e!e"d4 d d5d8d9Z$e!e"d: e%d  d5d;d<Z&e!e"d: e%d  d5d=d>Z'e!ee"d? d d@dAdBZ(e!ee"d? d d@dCdDZ)e!ee"dE d d@dFdGZ*e!ee"dE d d@dHdIZ+G dJdK dKe,d  Z-e.dLdM Z/e	e
edNZ0dOS )PPersonalizationDesignz
    A Personalization Design is a logical grouping of a Physical Bundle, card logo, and carrier text that represents a product line.
    zissuing.personalization_designOBJECT_NAMEc                   @   s>   e Zd ZU ee ed< ee ed< ee ed< ee ed< dS )z!PersonalizationDesign.CarrierTextfooter_bodyfooter_titleheader_bodyheader_titleN)__name__
__module____qualname__r   str__annotations__ r%   r%   t/var/www/staging/api/virtual_environments/venv/lib/python3.9/site-packages/stripe/issuing/_personalization_design.pyCarrierText(   s
   
r'   c                   @   s"   e Zd ZU eed< ee ed< dS )z!PersonalizationDesign.Preferences
is_defaultis_platform_defaultN)r    r!   r"   boolr$   r   r%   r%   r%   r&   Preferences:   s   
r+   c                   @   s6   e Zd ZU eeed   ed< eeed   ed< dS )z&PersonalizationDesign.RejectionReasonsgeographic_locationinappropriatenetwork_nameZnon_binary_imagenon_fiat_currencyotherother_entitypromotional_material	card_logor-   r.   r/   r0   r1   r2   r3   carrier_textN)r    r!   r"   r   r   r   r$   r%   r%   r%   r&   RejectionReasonsD   s   
r7   c                   @   s   e Zd ZU eee  ed< dS )$PersonalizationDesign.ActivateParamsexpandNr    r!   r"   r   r   r#   r$   r%   r%   r%   r&   ActivateParamsg   s   
r;   c                   @   s   e Zd ZU ee ed< ed ed< eee  ed< ee ed< eeeef  ed< ee ed< eed< ed	 ed
< ee ed< dS )"PersonalizationDesign.CreateParamsr4   -PersonalizationDesign.CreateParamsCarrierTextr6   r9   
lookup_keymetadatanamephysical_bundle-PersonalizationDesign.CreateParamsPreferencespreferencestransfer_lookup_keyN)	r    r!   r"   r   r#   r$   r   r   r*   r%   r%   r%   r&   CreateParamsm   s   
rE   c                   @   s>   e Zd ZU ed ed< ed ed< ed ed< ed ed< dS )r=   Literal['']|strr   r   r   r   Nr    r!   r"   r   r$   r%   r%   r%   r&   CreateParamsCarrierText   s
   
rH   c                   @   s   e Zd ZU eed< dS )rB   r(   Nr    r!   r"   r*   r$   r%   r%   r%   r&   CreateParamsPreferences   s   
rJ   c                   @   s   e Zd ZU eee  ed< dS )&PersonalizationDesign.DeactivateParamsr9   Nr:   r%   r%   r%   r&   DeactivateParams   s   
rL   c                   @   sn   e Zd ZU ee ed< eee  ed< ee ed< eee  ed< ed ed< ee ed< eed  ed	< d
S ) PersonalizationDesign.ListParamsZending_beforer9   limitZlookup_keys+PersonalizationDesign.ListParamsPreferencesrC   Zstarting_afteractiveZinactiveZrejectedZreviewstatusN)	r    r!   r"   r   r#   r$   r   intr   r%   r%   r%   r&   
ListParams   s   
rT   c                   @   s&   e Zd ZU ee ed< ee ed< dS )rO   r(   r)   N)r    r!   r"   r   r*   r$   r%   r%   r%   r&   ListParamsPreferences   s   
rU   c                   @   s   e Zd ZU ed ed< ed ed< eee  ed< ed ed< eeeef  ed< ed ed< ee ed	< ed
 ed< ee ed< dS )"PersonalizationDesign.ModifyParamsrF   r4   z9Literal['']|PersonalizationDesign.ModifyParamsCarrierTextr6   r9   r>   r?   r@   rA   -PersonalizationDesign.ModifyParamsPreferencesrC   rD   N)	r    r!   r"   r   r$   r   r#   r   r*   r%   r%   r%   r&   ModifyParams   s   
rX   c                   @   s>   e Zd ZU ed ed< ed ed< ed ed< ed ed< dS )z-PersonalizationDesign.ModifyParamsCarrierTextrF   r   r   r   r   NrG   r%   r%   r%   r&   ModifyParamsCarrierText	  s
   
rY   c                   @   s   e Zd ZU eed< dS )rW   r(   NrI   r%   r%   r%   r&   ModifyParamsPreferences  s   
rZ   c                   @   s&   e Zd ZU eee  ed< ded< dS )"PersonalizationDesign.RejectParamsr9   2PersonalizationDesign.RejectParamsRejectionReasonsrejection_reasonsNr:   r%   r%   r%   r&   RejectParams!  s   
r^   c                   @   s6   e Zd ZU eeed   ed< eeed   ed< dS )r\   r,   r4   r5   r6   N)r    r!   r"   r   r   r   r$   r%   r%   r%   r&   RejectParamsRejectionReasons+  s   
r_   c                   @   s   e Zd ZU eee  ed< dS )$PersonalizationDesign.RetrieveParamsr9   Nr:   r%   r%   r%   r&   RetrieveParamsN  s   
ra   r   r4   r6   createdidZlivemoder>   r?   r@   objectr   rA   rC   r]   rP   rR   r<   paramsreturnc                 K   s   t d| jd|  |dS ):
        Creates a personalization design object.
        r   postrf   )r   _static_request	class_urlclsrf   r%   r%   r&   create  s    zPersonalizationDesign.createc                    s    t d| jd|  |dI dH S )rh   r   ri   rj   N)r   _static_request_asyncrl   rm   r%   r%   r&   create_async  s    
z"PersonalizationDesign.create_asyncrM   c                 K   s4   | j d|  |d}t|ts0tdt|j |S )
        Returns a list of personalization design objects. The objects are sorted in descending order by creation date, with the most recently created object appearing first.
        getrj   %Expected list object from API, got %s)rk   rl   
isinstancer   	TypeErrortyper    rn   rf   resultr%   r%   r&   list  s    
zPersonalizationDesign.listc                    s:   | j d|  |dI dH }t|ts6tdt|j |S )rr   rs   rj   Nrt   )rp   rl   ru   r   rv   rw   r    rx   r%   r%   r&   
list_async  s    
z PersonalizationDesign.list_asyncrV   )rc   rf   rg   c                 K   s*   d|   t|f }td| jd||dS )8
        Updates a card personalization object.
        %s/%sr   ri   rj   )rl   r   r   rk   rn   rc   rf   urlr%   r%   r&   modify  s    zPersonalizationDesign.modifyc                    s0   d|   t|f }td| jd||dI dH S )r|   r}   r   ri   rj   N)rl   r   r   rp   r~   r%   r%   r&   modify_async  s    
z"PersonalizationDesign.modify_asyncr`   c                 K   s   | |fi |}|   |S )<
        Retrieves a personalization design object.
        )refreshrn   rc   rf   instancer%   r%   r&   retrieve  s    zPersonalizationDesign.retrievec                    s"   | |fi |}|  I dH  |S )r   N)Zrefresh_asyncr   r%   r%   r&   retrieve_async  s    z$PersonalizationDesign.retrieve_asyncc                   @   s  e Zd ZU ed ed< eeed ddddZe	e
eed ddddZe	ed dd	d
dZeded dd	ddZeeed ddddZe	e
eed ddddZe	ed dd	ddZeded dd	ddZeeed ddddZe	e
eed ddddZe	ed dd	ddZeded dd	ddZeeed ddddZe	e
eed ddddZe	ed dd	d dZed!ed dd	d"dZeeed# ddd$d%Ze	e
eed# ddd&d'Ze	ed# dd	d(d'Zed)ed# dd	d*d'Zeeed# ddd+d,Ze	e
eed# ddd-d.Ze	ed# dd	d/d.Zed0ed# dd	d1d.Zd2S )3z!PersonalizationDesign.TestHelpersr   _resource_clsr8   )personalization_designrf   rg   c                 K   s"   t d| jddjt|d|dS )o
            Updates the status of the specified testmode personalization design object to active.
            r   ri   R/v1/test_helpers/issuing/personalization_designs/{personalization_design}/activater   rj   r   rk   formatr   rn   r   rf   r%   r%   r&   _cls_activate  s    	z/PersonalizationDesign.TestHelpers._cls_activatec                 K   s   dS r   Nr%   r   rf   r%   r%   r&   activate  s    	z*PersonalizationDesign.TestHelpers.activatere   c                 K   s   dS r   r%   selfrf   r%   r%   r&   r   '  s    r   c              	   K   s,   t d| jjddjt| jdd|dS )r   r   ri   r   rc   r   rj   r   resource_requestr   r   rs   r   r%   r%   r&   r   0  s    
c                    s(   t d| jddjt|d|dI dH S )r   r   ri   r   r   rj   Nr   rp   r   r   r   r%   r%   r&   _cls_activate_asyncD  s    	
z5PersonalizationDesign.TestHelpers._cls_activate_asyncc                    s   dS r   r%   r   r%   r%   r&   activate_asyncZ  s    	z0PersonalizationDesign.TestHelpers.activate_asyncc                    s   dS r   r%   r   r%   r%   r&   r   e  s    r   c              	      s2   t d| jjddjt| jdd|dI dH S )r   r   ri   r   rc   r   rj   Nr   r   Z_request_asyncr   r   rs   r   r%   r%   r&   r   n  s    

rK   c                 K   s"   t d| jddjt|d|dS )q
            Updates the status of the specified testmode personalization design object to inactive.
            r   ri   T/v1/test_helpers/issuing/personalization_designs/{personalization_design}/deactivater   rj   r   r   r%   r%   r&   _cls_deactivate  s    	z1PersonalizationDesign.TestHelpers._cls_deactivatec                 K   s   dS r   Nr%   r   r%   r%   r&   
deactivate  s    	z,PersonalizationDesign.TestHelpers.deactivatec                 K   s   dS r   r%   r   r%   r%   r&   r     s    r   c              	   K   s,   t d| jjddjt| jdd|dS )r   r   ri   r   rc   r   rj   r   r   r%   r%   r&   r     s    
c                    s(   t d| jddjt|d|dI dH S )r   r   ri   r   r   rj   Nr   r   r%   r%   r&   _cls_deactivate_async  s    	
z7PersonalizationDesign.TestHelpers._cls_deactivate_asyncc                    s   dS r   r%   r   r%   r%   r&   deactivate_async  s    	z2PersonalizationDesign.TestHelpers.deactivate_asyncc                    s   dS r   r%   r   r%   r%   r&   r     s    r   c              	      s2   t d| jjddjt| jdd|dI dH S )r   r   ri   r   rc   r   rj   Nr   r   r%   r%   r&   r     s    

r[   c                 K   s"   t d| jddjt|d|dS )q
            Updates the status of the specified testmode personalization design object to rejected.
            r   ri   P/v1/test_helpers/issuing/personalization_designs/{personalization_design}/rejectr   rj   r   r   r%   r%   r&   _cls_reject  s    	z-PersonalizationDesign.TestHelpers._cls_rejectc                 K   s   dS r   Nr%   r   r%   r%   r&   reject  s    	z(PersonalizationDesign.TestHelpers.rejectc                 K   s   dS r   r%   r   r%   r%   r&   r     s    r   c              	   K   s,   t d| jjddjt| jdd|dS )r   r   ri   r   rc   r   rj   r   r   r%   r%   r&   r   (  s    
c                    s(   t d| jddjt|d|dI dH S )r   r   ri   r   r   rj   Nr   r   r%   r%   r&   _cls_reject_async<  s    	
z3PersonalizationDesign.TestHelpers._cls_reject_asyncc                    s   dS r   r%   r   r%   r%   r&   reject_asyncR  s    	z.PersonalizationDesign.TestHelpers.reject_asyncc                    s   dS r   r%   r   r%   r%   r&   r   ]  s    r   c              	      s2   t d| jjddjt| jdd|dI dH S )r   r   ri   r   rc   r   rj   Nr   r   r%   r%   r&   r   f  s    

N)r    r!   r"   r   r$   classmethodr#   r   r   r   staticmethodr   r
   r   r   r   r   r   r   r   r   r   r   r%   r%   r%   r&   TestHelpers  s   
						r   c                 C   s
   |  | S )N)r   )r   r%   r%   r&   test_helpersz  s    z"PersonalizationDesign.test_helpers)r6   rC   r]   N)1r    r!   r"   __doc__r   r   r   r$   r   r'   r+   r7   r   r;   rE   r   rH   rJ   rL   rT   rU   rX   rY   rZ   r^   r_   ra   r   r   rS   r#   r*   r   r   r   ro   rq   r   rz   r{   r   r   r   r   r   r   propertyr   Z_inner_class_typesr%   r%   r%   r&   r      s   

#* 
*
#

  y
r   N)(Zstripe._createable_api_resourcer   Zstripe._expandable_fieldr   Zstripe._list_objectr   Zstripe._listable_api_resourcer   Zstripe._request_optionsr   Zstripe._stripe_objectr   Zstripe._test_helpersr   Zstripe._updateable_api_resourcer	   Zstripe._utilr
   r   typingr   r   r   r   r   r   Ztyping_extensionsr   r   r   r   r   r   Zstripe._filer   Zstripe.issuing._physical_bundler   r   r   r   r%   r%   r%   r&   <module>   s2     	
      p