
    jof                         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mZmZ d dlmZmZmZ  G d	 d
ed
         ed
         e	d
                   ZdS )    )CreateableAPIResource)
ListObject)ListableAPIResource)RequestOptions)UpdateableAPIResource)sanitize_id)ClassVarDictListcast)LiteralNotRequired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eed<   	 eed<   	 eed<   	 eed<   	 eeef         ed<   	 eed<   	 ed         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deded         dd fd            Zededed         dd fd             Zd!S )"Featurez
    A feature represents a monetizable ability or functionality in your system.
    Features can be assigned to products, and when those products are purchased, Stripe will create an entitlement to the feature for the purchasing customer.
    zentitlements.featureOBJECT_NAMEc                   r    e Zd ZU eee                  ed<   	 eed<   	 eeeef                  ed<   	 eed<   dS )Feature.CreateParamsexpand
lookup_keymetadatanameN)__name__
__module____qualname__r   r   str__annotations__r
        V/var/www/html/Alfredo/env/lib/python3.11/site-packages/stripe/entitlements/_feature.pyCreateParamsr      sk         DI&&&&	 	 d38n----	 				 	r   r!   c                       e Zd ZU ee         ed<   	 ee         ed<   	 eee                  ed<   	 ee         ed<   	 ee         ed<   	 ee         ed<   dS )Feature.ListParamsarchivedending_beforer   limitr   starting_afterN)	r   r   r   r   boolr   r   r   intr   r   r    
ListParamsr#   -   s         d####	 #3''''	 DI&&&&	 3	  $$$$	 $C((((	 	r   r*   c                   z    e Zd ZU ee         ed<   	 eee                  ed<   	 ed         ed<   	 ee         ed<   dS )Feature.ModifyParamsactiver   zLiteral['']|Dict[str, str]r   r   N)r   r   r   r   r(   r   r   r   r   r   r    ModifyParamsr,   G   st         D!!!!	 DI&&&&	 :;;;;	 #	 	r   r.   c                   2    e Zd ZU eee                  ed<   dS )Feature.RetrieveParamsr   N)r   r   r   r   r   r   r   r   r   r    RetrieveParamsr0   Y   s+         DI&&&&	 	r   r1   r-   idlivemoder   r   r   objectparamsr   returnc                 r    t          d|                     d|                                 |                    S )#
        Creates a feature
        r   postr5   )r   _static_request	class_urlclsr5   s     r    createzFeature.create|   sB    
     
 
 	
r   c                    K   t          d|                     d|                                 |           d{V           S )r8   r   r9   r:   N)r   _static_request_asyncr<   r=   s     r    create_asynczFeature.create_async   sd       ++ ,        
 
 	
r   r#   c                     |                      d|                                 |          }t          |t                    s$t	          dt          |          j        z            |S )-
        Retrieve a list of features
        getr:   %Expected list object from API, got %s)r;   r<   
isinstancer   	TypeErrortyper   r>   r5   results      r    listzFeature.list   sp     $$MMOO % 
 

 &*-- 	7<<(*  
 r   c                    K   |                      d|                                 |           d{V }t          |t                    s$t	          dt          |          j        z            |S )rD   rE   r:   NrF   )rA   r<   rG   r   rH   rI   r   rJ   s      r    
list_asynczFeature.list_async   s       00MMOO 1 
 
 
 
 
 
 
 

 &*-- 	7<<(*  
 r   r,   c                     |                                  dt          |          }t          d|                     d||                    S )K
        Update a feature's metadata or permanently deactivate it.
        /r   r9   r:   )r<   r   r   r;   r>   r2   r5   urls       r    modifyzFeature.modify   sX     +b///:    
 
 	
r   c                    K   |                                  dt          |          }t          d|                     d||           d{V           S )rP   rQ   r   r9   r:   N)r<   r   r   rA   rR   s       r    modify_asynczFeature.modify_async   sz       +b///:++ ,        
 
 	
r   r0   c                 @     | |fi |}|                                  |S )%
        Retrieves a feature
        )refreshr>   r2   r5   instances       r    retrievezFeature.retrieve   s2     3r$$V$$r   c                 P   K    | |fi |}|                                  d{V  |S )rX   N)refresh_asyncrZ   s       r    retrieve_asynczFeature.retrieve_async   sH       3r$$V$$$$&&&&&&&&&r   N)r   r   r   __doc__r   r	   r   r   r   r!   r*   r.   r1   r(   r   r
   classmethodr   r?   rB   r   rL   rN   rT   rV   r\   r_   r   r   r    r   r      sJ        
  	 '"89:       ~   $    ^   4    ~   $        LLL 	GGG NNN OOO 38n III *++++ 
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._updateable_api_resourcer   stripe._utilr   typingr	   r
   r   r   typing_extensionsr   r   r   r   r   r   r    <module>rj      s
   B A A A A A * * * * * * = = = = = = 2 2 2 2 2 2 A A A A A A $ $ $ $ $ $ - - - - - - - - - - - - : : : : : : : : : :k k k k k)$	")$k k k k kr   