
    <@g                         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mZ erd dlmZ  G d d	ed	         Zy
)    )
ListObject)ListableAPIResource)RequestOptions)StripeObject)ClassVarDictListOptional)LiteralNotRequiredUnpackTYPE_CHECKING)Supplierc                      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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__     V/var/www/html/AdoubleTech/venv/lib/python3.12/site-packages/stripe/climate/_product.pyCurrentPricesPerMetricTonr      s'    	 	 	r   r    c                   Z    e Zd ZU ee   ed<   	 eee      ed<   	 ee   ed<   	 ee   ed<   y)Product.ListParamsending_beforeexpandlimitstarting_afterN)r   r   r   r   strr   r	   r   r   r   r   
ListParamsr"   $   sL    "3''	 DI&&	 3	 $C((	r   r(   c                   $    e Zd ZU eee      ed<   y)Product.RetrieveParamsr$   N)r   r   r   r   r	   r'   r   r   r   r   RetrieveParamsr*   6   s    DI&&	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r5   %Expected list object from API, got %s)_static_request	class_url
isinstancer   	TypeErrortyper   clsr5   results      r   listzProduct.listc   s]     $$MMO % 

 &*-7<((* 
 r   c                    K   | j                  d| j                         |       d{   }t        |t              s!t	        dt        |      j                  z        |S 7 7w)r8   r9   r:   Nr;   )_static_request_asyncr=   r>   r   r?   r@   r   rA   s      r   
list_asynczProduct.list_asyncw   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rB   r/   r5   instances       r   retrievezProduct.retrieve   s$     r$V$r   c                 T   K    | |fi |}|j                          d{    |S 7 w)rI   N)refresh_asyncrK   s       r   retrieve_asynczProduct.retrieve_async   s3      r$V$$$&&& 	's   (&(N)r   r   r   __doc__r   r   r   r   r   r    r   r(   r+   r   r   r'   r
   boolr	   classmethodr   r   rD   rG   rM   rP   _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 23	I	 & 23	I	 &  &'? @	   &'? @	  	()Br   r   N)stripe._list_objectr   stripe._listable_api_resourcer   stripe._request_optionsr   stripe._stripe_objectr   typingr   r   r	   r
   typing_extensionsr   r   r   r   stripe.climate._supplierr   r   r   r   r   <module>r\      s9    + = 2 . 1 1 I I1U!), Ur   