o
    i\^                     @   s8  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-m.Z. G dd ded ed ed Z/e/e/j0_1dS )    )CreateableAPIResource)ExpandableField)
ListObject)ListableAPIResource)StripeObject)APIResourceTestHelpers)UpdateableAPIResource)class_method_variantsanitize_id)ClassVarDictListOptionalcastoverload)LiteralTypeUnpackTYPE_CHECKING)File)PhysicalBundle)#PersonalizationDesignActivateParams)!PersonalizationDesignCreateParams)%PersonalizationDesignDeactivateParams)PersonalizationDesignListParams)!PersonalizationDesignModifyParams)!PersonalizationDesignRejectParams)#PersonalizationDesignRetrieveParamsc                   @   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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d< eed< ed ed< 	 eded dd fddZeded dd fdd Zeded! ded  fd"d#Zeded! ded  fd$d%Zededed& dd fd'd(Zededed& dd fd)d*Zededed+ dd fd,d-Zededed+ dd fd.d/ZG d0d1 d1ed  Zed2d3 Z e	e
ed4Z!d5S )6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                   @   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!PersonalizationDesign.CarrierTextfooter_bodyfooter_titleheader_bodyheader_titleN)__name__
__module____qualname__r   str__annotations__ r)   r)   /var/www/snowflake_co_dev_github/snow_flake_back_end_deploy/env/lib/python3.10/site-packages/stripe/issuing/_personalization_design.pyCarrierText5   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*   PreferencesG   s
   
 r/   c                   @   s8   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_namenon_binary_imagenon_fiat_currencyotherother_entitypromotional_material	card_logo)r0   r1   r2   r4   r5   r6   r7   carrier_textN)r$   r%   r&   r   r   r   r(   r)   r)   r)   r*   RejectionReasonsQ   s"   
 r:   r   r8   r9   createdidlivemode
lookup_keymetadatanameobjectr   physical_bundlepreferencesrejection_reasons)activeinactiverejectedreviewstatusparamsr   returnc                 K   s   t d| jd|  |dS ):
        Creates a personalization design object.
        r   postrJ   )r   _static_request	class_urlclsrJ   r)   r)   r*   create   s   zPersonalizationDesign.createc                    s"   t d| jd|  |dI dH S )rL   r   rM   rN   N)r   _static_request_asyncrP   rQ   r)   r)   r*   create_async   s   
z"PersonalizationDesign.create_asyncr   c                 K   s4   | j d|  |d}t|tst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.
        getrN   %Expected list object from API, got %s)rO   rP   
isinstancer   	TypeErrortyper$   rR   rJ   resultr)   r)   r*   list   s   
zPersonalizationDesign.listc                    s<   | j d|  |dI dH }t|tstdt|j |S )rV   rW   rN   NrX   )rT   rP   rY   r   rZ   r[   r$   r\   r)   r)   r*   
list_async   s   
z PersonalizationDesign.list_asyncr   c                 K   s*   d|   t|f }td| jd||dS )8
        Updates a card personalization object.
        %s/%sr   rM   rN   )rP   r
   r   rO   rR   r<   rJ   urlr)   r)   r*   modify   s   zPersonalizationDesign.modifyc                    s2   d|   t|f }td| jd||dI dH S )r`   ra   r   rM   rN   N)rP   r
   r   rT   rb   r)   r)   r*   modify_async   s   
z"PersonalizationDesign.modify_asyncr   c                 K   s   | |fi |}|   |S )<
        Retrieves a personalization design object.
        )refreshrR   r<   rJ   instancer)   r)   r*   retrieve  s   zPersonalizationDesign.retrievec                    s$   | |fi |}|  I dH  |S )rf   N)refresh_asyncrh   r)   r)   r*   retrieve_async  s   z$PersonalizationDesign.retrieve_asyncc                   @   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!PersonalizationDesign.TestHelpersr   _resource_clspersonalization_designrJ   r   rK   c                 K   "   t d| jddjt|d|dS )o
            Updates the status of the specified testmode personalization design object to active.
            r   rM   R/v1/test_helpers/issuing/personalization_designs/{personalization_design}/activatern   rN   r   rO   formatr
   rR   rn   rJ   r)   r)   r*   _cls_activate&     	z/PersonalizationDesign.TestHelpers._cls_activatec                 K      dS rp   Nr)   rn   rJ   r)   r)   r*   activate<     	z*PersonalizationDesign.TestHelpers.activatec                 K   rx   ry   r)   selfrJ   r)   r)   r*   r{   G     rv   c              	   K   ,   t d| jjddjt| jdd|dS )rp   r   rM   rq   r<   rr   rN   r   resource_requestrt   r
   rW   r}   r)   r)   r*   r{   P     
c                    *   t d| jddjt|d|dI dH S )rp   r   rM   rq   rr   rN   Nr   rT   rt   r
   ru   r)   r)   r*   _cls_activate_asyncd     	
z5PersonalizationDesign.TestHelpers._cls_activate_asyncc                       dS ry   r)   rz   r)   r)   r*   activate_asyncz     	z0PersonalizationDesign.TestHelpers.activate_asyncc                    r   ry   r)   r}   r)   r)   r*   r        r   c              	      4   t d| jjddjt| jdd|dI dH S )rp   r   rM   rq   r<   rr   rN   Nr   r   _request_asyncrt   r
   rW   r}   r)   r)   r*   r        

r   c                 K   ro   )q
            Updates the status of the specified testmode personalization design object to inactive.
            r   rM   T/v1/test_helpers/issuing/personalization_designs/{personalization_design}/deactivaterr   rN   rs   ru   r)   r)   r*   _cls_deactivate  rw   z1PersonalizationDesign.TestHelpers._cls_deactivatec                 K   rx   r   Nr)   rz   r)   r)   r*   
deactivate  r|   z,PersonalizationDesign.TestHelpers.deactivatec                 K   rx   r   r)   r}   r)   r)   r*   r     r   r   c              	   K   r   )r   r   rM   r   r<   rr   rN   r   r}   r)   r)   r*   r     r   c                    r   )r   r   rM   r   rr   rN   Nr   ru   r)   r)   r*   _cls_deactivate_async  r   z7PersonalizationDesign.TestHelpers._cls_deactivate_asyncc                    r   r   r)   rz   r)   r)   r*   deactivate_async  r   z2PersonalizationDesign.TestHelpers.deactivate_asyncc                    r   r   r)   r}   r)   r)   r*   r     r   r   c              	      r   )r   r   rM   r   r<   rr   rN   Nr   r}   r)   r)   r*   r   
  r   r   c                 K   ro   )q
            Updates the status of the specified testmode personalization design object to rejected.
            r   rM   P/v1/test_helpers/issuing/personalization_designs/{personalization_design}/rejectrr   rN   rs   ru   r)   r)   r*   _cls_reject  rw   z-PersonalizationDesign.TestHelpers._cls_rejectc                 K   rx   r   Nr)   rz   r)   r)   r*   reject4  r|   z(PersonalizationDesign.TestHelpers.rejectc                 K   rx   r   r)   r}   r)   r)   r*   r   ?  r   r   c              	   K   r   )r   r   rM   r   r<   rr   rN   r   r}   r)   r)   r*   r   H  r   c                    r   )r   r   rM   r   rr   rN   Nr   ru   r)   r)   r*   _cls_reject_async\  r   z3PersonalizationDesign.TestHelpers._cls_reject_asyncc                    r   r   r)   rz   r)   r)   r*   reject_asyncr  r   z.PersonalizationDesign.TestHelpers.reject_asyncc                    r   r   r)   r}   r)   r)   r*   r   }  r   r   c              	      r   )r   r   rM   r   r<   rr   rN   Nr   r}   r)   r)   r*   r     r   N)r$   r%   r&   r   r(   classmethodr'   r   rv   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_helpers  s   
z"PersonalizationDesign.test_helpers)r9   rC   rD   N)"r$   r%   r&   __doc__r   r   r   r(   r   r+   r/   r:   r   r   intr'   r.   r   r   r   rS   rU   r   r^   r_   rd   re   rj   rl   r   r   propertyr   _inner_class_typesr)   r)   r)   r*   r   (   s   
 
#

  y

r   N)2stripe._createable_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._filer   stripe.issuing._physical_bundler   =stripe.params.issuing._personalization_design_activate_paramsr   ;stripe.params.issuing._personalization_design_create_paramsr   ?stripe.params.issuing._personalization_design_deactivate_paramsr   9stripe.params.issuing._personalization_design_list_paramsr   ;stripe.params.issuing._personalization_design_modify_paramsr   ;stripe.params.issuing._personalization_design_reject_paramsr   =stripe.params.issuing._personalization_design_retrieve_paramsr   r   r   rm   r)   r)   r)   r*   <module>   s>    
     