
    Ai                         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
ed
         Zy)    )
ListObject)ListableAPIResource)StripeObject)ClassVarDictListOptional)LiteralUnpackTYPE_CHECKING)Supplier)ProductListParams)ProductRetrieveParamsc                   f   e Zd ZU dZdZeed      ed<    G 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       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de	iZy)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                   0    e Zd ZU eed<   	 eed<   	 eed<   y)!Product.CurrentPricesPerMetricTonamount_feesamount_subtotalamount_totalN)__name__
__module____qualname__int__annotations__     J/var/www/html/immo/lib/python3.12/site-packages/stripe/climate/_product.pyCurrentPricesPerMetricTonr      s'    	 	 	r   r    createdcurrent_prices_per_metric_tondelivery_yearidlivemodemetric_tons_availablenameobjectr   	suppliersparamsr   returnc                     | j                  d| j                         |      }t        |t              s!t	        dt        |      j                  z        |S )>
        Lists all available Climate product objects.
        getr*   %Expected list object from API, got %s)_static_request	class_url
isinstancer   	TypeErrortyper   clsr*   results      r   listzProduct.listN   s]     $$MMO % 

 &*-7<((* 
 r   c                    K   | j                  d| j                         |       d{   }t        |t              s!t	        dt        |      j                  z        |S 7 7w)r-   r.   r/   Nr0   )_static_request_asyncr2   r3   r   r4   r5   r   r6   s      r   
list_asynczProduct.list_asyncb   sk      00MMO 1 
 

 &*-7<((* 
 
s   &A"A 8A"r   c                 8     | |fi |}|j                          |S )O
        Retrieves the details of a Climate product with the given ID.
        )refreshr7   r$   r*   instances       r   retrievezProduct.retrievev   s$     r$V$r   c                 T   K    | |fi |}|j                          d{    |S 7 w)r>   N)refresh_asyncr@   s       r   retrieve_asynczProduct.retrieve_async   s3      r$V$$$&&& 	's   (&(N)r   r   r   __doc__r   r   r
   r   r   r    r   r   strr	   boolr   classmethodr   r   r9   r<   rB   rE   _inner_class_typesr   r   r   r   r      s   
 9JK'"345IL  L $(-F(F#GG C=  	G
 N  I %&& J 12	I	 & 12	I	 &  &'> ?	   &'> ?	  	()Br   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   <module>rS      s>    + = . 1 1 < <1L
}!), }r   