o
    i                     @   s   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 er<d dlmZ d dlmZ d dlmZ G d	d
 d
ed
 ZdS )    )
ListObject)ListableAPIResource)StripeObject)ClassVarDictListOptional)LiteralUnpackTYPE_CHECKING)Supplier)ProductListParams)ProductRetrieveParamsc                   @   s$  e Zd ZU dZdZeed  ed< G dd deZ	e
ed< 	 eee	f ed< 	 ee
 ed< 	 eed	< 	 eed
< 	 eed< 	 eed< 	 ed ed< 	 ed ed< 	 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de	iZdS )Productz
    A Climate product represents a type of carbon removal unit available for reservation.
    You can retrieve it to see the current price and availability.
    zclimate.productOBJECT_NAMEc                   @   s*   e Zd ZU eed< 	 eed< 	 eed< dS )z!Product.CurrentPricesPerMetricTonamount_feesamount_subtotalamount_totalN)__name__
__module____qualname__int__annotations__ r   r   w/var/www/snowflake_co_dev_github/snow_flake_back_end_deploy/env/lib/python3.10/site-packages/stripe/climate/_product.pyCurrentPricesPerMetricTon   s   
 r   createdcurrent_prices_per_metric_tondelivery_yearidlivemodemetric_tons_availablenameobjectr   	suppliersparamsr   returnc                 K   s4   | j d|  |d}t|tstdt|j |S )>
        Lists all available Climate product objects.
        getr%   %Expected list object from API, got %s)_static_request	class_url
isinstancer   	TypeErrortyper   clsr%   resultr   r   r   listN   s   
zProduct.listc                    s<   | j d|  |dI dH }t|tstdt|j |S )r'   r(   r)   Nr*   )_static_request_asyncr,   r-   r   r.   r/   r   r0   r   r   r   
list_asyncb   s   
zProduct.list_asyncr   c                 K   s   | |fi |}|   |S )O
        Retrieves the details of a Climate product with the given ID.
        )refreshr1   r   r%   instancer   r   r   retrievev   s   zProduct.retrievec                    s$   | |fi |}|  I dH  |S )r6   N)refresh_asyncr8   r   r   r   retrieve_async   s   zProduct.retrieve_asyncN)r   r   r   __doc__r   r   r	   r   r   r   r   r   strr   boolr   classmethodr
   r   r3   r5   r:   r<   _inner_class_typesr   r   r   r   r      sh   
 
r   N)stripe._list_objectr   stripe._listable_api_resourcer   stripe._stripe_objectr   typingr   r   r   r   typing_extensionsr	   r
   r   stripe.climate._supplierr   *stripe.params.climate._product_list_paramsr   .stripe.params.climate._product_retrieve_paramsr   r   r   r   r   r   <module>   s   