o
    i                     @   s   d dl mZ d dlmZ d dlmZmZ d dlmZ erFd 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ZdS )    )StripeService)sanitize_id)Optionalcast)TYPE_CHECKING)
ListObject)ProductFeature)RequestOptions)ProductFeatureCreateParams)ProductFeatureDeleteParams)ProductFeatureListParams)ProductFeatureRetrieveParamsc                   @   sP  e Zd Z		ddededed ded dd	f
d
dZ		ddededed ded dd	f
ddZ		ddededed ded dd	f
ddZ		ddededed ded dd	f
ddZ		ddeded ded ddfddZ			ddeded ded ddfddZ
	ddeddded dd	fddZ	ddeddded dd	fddZdS ) ProductFeatureServiceNproductidparamsr   optionsr	   returnr   c              	   C   ,   t d| jddjt|t|dd||dS )=
        Deletes the feature attachment to a product
        r   delete$/v1/products/{product}/features/{id}r   r   apibase_addressr   r   r   _requestformatr   selfr   r   r   r    r!   /var/www/snowflake_co_dev_github/snow_flake_back_end_deploy/env/lib/python3.10/site-packages/stripe/_product_feature_service.pyr         
zProductFeatureService.deletec              	      4   t d| jddjt|t|dd||dI dH S )r   r   r   r   r   r   r   Nr   _request_asyncr   r   r   r!   r!   r"   delete_async3      

z"ProductFeatureService.delete_asyncr   c              	   C   r   )a
        Retrieves a product_feature, which represents a feature attachment to a product
        r   getr   r   r   r   r   r   r!   r!   r"   retrieveK   r#   zProductFeatureService.retrievec              	      r$   )r)   r   r*   r   r   r   r   Nr%   r   r!   r!   r"   retrieve_asyncc   r(   z$ProductFeatureService.retrieve_asyncr   ListObject[ProductFeature]c              	   C   &   t d| jddjt|dd||dS );
        Retrieve a list of features for a product
        r-   r*   /v1/products/{product}/featuresr   r   r   r   r    r   r   r   r!   r!   r"   list{      	zProductFeatureService.listc              	      .   t d| jddjt|dd||dI dH S )r/   r-   r*   r0   r1   r   r   Nr%   r2   r!   r!   r"   
list_async      	
z ProductFeatureService.list_asyncr
   c              	   C   r.   )_
        Creates a product_feature, which represents a feature attachment to a product
        r   postr0   r1   r   r   r   r2   r!   r!   r"   create   r4   zProductFeatureService.createc              	      r5   )r8   r   r9   r0   r1   r   r   Nr%   r2   r!   r!   r"   create_async   r7   z"ProductFeatureService.create_async)NN)N)__name__
__module____qualname__strr   r   r'   r+   r,   r3   r6   r:   r;   r!   r!   r!   r"   r      s    






r   N)stripe._stripe_servicer   stripe._utilr   typingr   r   typing_extensionsr   stripe._list_objectr   stripe._product_featurer   stripe._request_optionsr	   ,stripe.params._product_feature_create_paramsr
   ,stripe.params._product_feature_delete_paramsr   *stripe.params._product_feature_list_paramsr   .stripe.params._product_feature_retrieve_paramsr   r   r!   r!   r!   r"   <module>   s   