o
    Bi                     @   sx   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 d dlmZmZmZ G dd	 d	eZd
S )    )
ListObject)RequestOptions)StripeService)sanitize_id)Feature)DictListcast)LiteralNotRequired	TypedDictc                	   @   s@  e Zd 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i i fd	d
dede	e
 fddZi i fd	d
dede	e
 fddZi fd	ddede
fddZi fd	ddede
fddZi i fded	ddede
fddZi i fded	ddede
fddZi i fded	ddede
fddZi i fded	ddede
fdd Zd!S )"FeatureServicec                   @   sH   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 )FeatureService.CreateParamsexpand
lookup_keymetadatanameN)__name__
__module____qualname__r   r   str__annotations__r    r   r   d/var/www/html/Trade-python/venv/lib/python3.10/site-packages/stripe/entitlements/_feature_service.pyCreateParams   s   
 r   c                   @   sd   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 )FeatureService.ListParamsarchivedending_beforer   limitr   starting_afterN)	r   r   r   r   boolr   r   r   intr   r   r   r   
ListParams   s   
 r"   c                   @   s   e Zd ZU eee  ed< dS )FeatureService.RetrieveParamsr   N)r   r   r   r   r   r   r   r   r   r   r   RetrieveParams9   s   
 r$   c                   @   sH   e Zd ZU ee ed< 	 eee  ed< 	 ed ed< 	 ee ed< dS )FeatureService.UpdateParamsactiver   zLiteral['']|Dict[str, str]r   r   N)r   r   r   r   r    r   r   r   r   r   r   r   UpdateParams?   s   
 r'   paramsr   optionsreturnc              	   C   s   t tt | jddd||dS )-
        Retrieve a list of features
        get/v1/entitlements/featuresapibase_addressr(   r)   )r	   r   r   _requestselfr(   r)   r   r   r   listQ   s   zFeatureService.listc              	      s&   t tt | jddd||dI dH S )r+   r,   r-   r.   r/   N)r	   r   r   _request_asyncr2   r   r   r   
list_asyncd   s   
zFeatureService.list_asyncr   c              	   C   s   t t| jddd||dS )#
        Creates a feature
        postr-   r.   r/   )r	   r   r1   r2   r   r   r   createw   s   zFeatureService.createc              	      s"   t t| jddd||dI dH S )r7   r8   r-   r.   r/   N)r	   r   r5   r2   r   r   r   create_async   s   
zFeatureService.create_asyncidr#   c              	   C   &   t t| jddjt|dd||dS )%
        Retrieves a feature
        r,   /v1/entitlements/features/{id}r;   r.   r/   r	   r   r1   formatr   r3   r;   r(   r)   r   r   r   retrieve      	zFeatureService.retrievec              	      .   t t| jddjt|dd||dI dH S )r=   r,   r>   r?   r.   r/   Nr	   r   r5   rA   r   rB   r   r   r   retrieve_async      	
zFeatureService.retrieve_asyncr%   c              	   C   r<   )K
        Update a feature's metadata or permanently deactivate it.
        r8   r>   r?   r.   r/   r@   rB   r   r   r   update   rD   zFeatureService.updatec              	      rE   )rI   r8   r>   r?   r.   r/   NrF   rB   r   r   r   update_async   rH   zFeatureService.update_asyncN)r   r   r   r   r   r"   r$   r'   r   r   r   r4   r6   r9   r:   r   rC   rG   rJ   rK   r   r   r   r   r      s    






r   N)stripe._list_objectr   stripe._request_optionsr   stripe._stripe_servicer   stripe._utilr   stripe.entitlements._featurer   typingr   r   r	   typing_extensionsr
   r   r   r   r   r   r   r   <module>   s   