a
    gܡ                     @   s   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 d dlmZmZ d dlmZmZmZmZmZmZ d d	lmZmZmZ G d
d ded ed ed ed ZdS )    )CreateableAPIResource)DeletableAPIResource)
ListObject)ListableAPIResource)RequestOptions)UpdateableAPIResource)class_method_variantsanitize_id)ClassVarDictListOptionalcastoverload)LiteralNotRequiredUnpackc                   @   s  e Zd ZU dZdZeed  ed< G dd de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ee ed< ee ed< eed< ee ed< ee ed< eed< eed< eeef ed< ed ed< ee ed< eed< eed< eed  ed< eed d dddZeed d dd d!Zeeed" d d#d$d%Zeeeed" d d#d&d'Zeed" d dd(d'Zed)ed" d dd*d'Zeeed" d d#d+d,Zeeeed" d d#d-d.Zeed" d dd/d.Zed0ed" d dd1d.Zeed2 ed  dd3d4Z eed2 ed  dd5d6Z!eeed7 d d8d9d:Z"eeed7 d d8d;d<Z#eeed= d d8d>d?Z$eeed= d d8d@dAZ%dBS )CWebhookEndpointa  
    You can configure [webhook endpoints](https://docs.stripe.com/webhooks/) via the API to be
    notified about events that happen in your Stripe account or connected
    accounts.

    Most users configure webhooks from [the dashboard](https://dashboard.stripe.com/webhooks), which provides a user interface for registering and testing your webhook endpoints.

    Related guide: [Setting up webhooks](https://docs.stripe.com/webhooks/configure)
    Zwebhook_endpointOBJECT_NAMEc                   @   sj   e Zd ZU eed  ed< ee ed< ed ed< eed  ed< eee  ed< ed	 ed
< eed< dS )WebhookEndpoint.CreateParams)lz
2011-01-01z
2011-06-21z
2011-06-28z
2011-08-01z
2011-09-15z
2011-11-17z
2012-02-23z
2012-03-25z
2012-06-18z
2012-06-28z
2012-07-09z
2012-09-24z
2012-10-26z
2012-11-07z
2013-02-11z
2013-02-13z
2013-07-05z
2013-08-12z
2013-08-13z
2013-10-29z
2013-12-03z
2014-01-31z
2014-03-13z
2014-03-28z
2014-05-19z
2014-06-13z
2014-06-17z
2014-07-22z
2014-07-26z
2014-08-04z
2014-08-20z
2014-09-08z
2014-10-07z
2014-11-05z
2014-11-20z
2014-12-08z
2014-12-17z
2014-12-22z
2015-01-11z
2015-01-26z
2015-02-10z
2015-02-16z
2015-02-18z
2015-03-24z
2015-04-07z
2015-06-15z
2015-07-07z
2015-07-13z
2015-07-28z
2015-08-07z
2015-08-19z
2015-09-03z
2015-09-08z
2015-09-23z
2015-10-01z
2015-10-12z
2015-10-16z
2016-02-03z
2016-02-19z
2016-02-22z
2016-02-23z
2016-02-29z
2016-03-07z
2016-06-15z
2016-07-06z
2016-10-19z
2017-01-27z
2017-02-14z
2017-04-06z
2017-05-25z
2017-06-05z
2017-08-15z
2017-12-14z
2018-01-23z
2018-02-05z
2018-02-06z
2018-02-28z
2018-05-21z
2018-07-27z
2018-08-23z
2018-09-06z
2018-09-24z
2018-10-31z
2018-11-08z
2019-02-11z
2019-02-19z
2019-03-14z
2019-05-16z
2019-08-14z
2019-09-09z
2019-10-08z
2019-10-17z
2019-11-05z
2019-12-03z
2020-03-02z
2020-08-27z
2022-08-01z
2022-11-15z
2023-08-16z
2023-10-16z
2024-04-10z
2024-06-20z2024-09-30.acaciaz2024-10-28.acaciaz2024-11-20.acaciaz2024-12-18.acaciaz2025-01-27.acaciaz2025-02-24.acaciaapi_versionconnectLiteral['']|strdescription*zaccount.application.authorizedz account.application.deauthorizedz account.external_account.createdz account.external_account.deletedz account.external_account.updatedzaccount.updatedzapplication_fee.createdzapplication_fee.refund.updatedzapplication_fee.refundedzbalance.availablezbilling.alert.triggeredz$billing_portal.configuration.createdz$billing_portal.configuration.updatedzbilling_portal.session.createdzcapability.updatedzcash_balance.funds_availablezcharge.capturedzcharge.dispute.closedzcharge.dispute.createdzcharge.dispute.funds_reinstatedzcharge.dispute.funds_withdrawnzcharge.dispute.updatedzcharge.expiredzcharge.failedzcharge.pendingzcharge.refund.updatedzcharge.refundedzcharge.succeededzcharge.updatedz%checkout.session.async_payment_failedz(checkout.session.async_payment_succeededzcheckout.session.completedzcheckout.session.expiredzclimate.order.canceledzclimate.order.createdzclimate.order.delayedzclimate.order.deliveredz!climate.order.product_substitutedzclimate.product.createdzclimate.product.pricing_updatedzcoupon.createdzcoupon.deletedzcoupon.updatedzcredit_note.createdzcredit_note.updatedzcredit_note.voidedzcustomer.createdzcustomer.deletedzcustomer.discount.createdzcustomer.discount.deletedzcustomer.discount.updatedzcustomer.source.createdzcustomer.source.deletedzcustomer.source.expiringzcustomer.source.updatedzcustomer.subscription.createdzcustomer.subscription.deletedzcustomer.subscription.pausedz,customer.subscription.pending_update_appliedz,customer.subscription.pending_update_expiredzcustomer.subscription.resumedz$customer.subscription.trial_will_endzcustomer.subscription.updatedzcustomer.tax_id.createdzcustomer.tax_id.deletedzcustomer.tax_id.updatedzcustomer.updatedz)customer_cash_balance_transaction.createdz/entitlements.active_entitlement_summary.updatedzfile.createdz%financial_connections.account.createdz)financial_connections.account.deactivatedz*financial_connections.account.disconnectedz)financial_connections.account.reactivatedz/financial_connections.account.refreshed_balancez1financial_connections.account.refreshed_ownershipz4financial_connections.account.refreshed_transactionsz&identity.verification_session.canceledz%identity.verification_session.createdz(identity.verification_session.processingz&identity.verification_session.redactedz,identity.verification_session.requires_inputz&identity.verification_session.verifiedzinvoice.createdzinvoice.deletedzinvoice.finalization_failedzinvoice.finalizedzinvoice.marked_uncollectiblezinvoice.overduezinvoice.paidzinvoice.payment_action_requiredzinvoice.payment_failedzinvoice.payment_succeededzinvoice.sentzinvoice.upcomingzinvoice.updatedzinvoice.voidedzinvoice.will_be_duezinvoiceitem.createdzinvoiceitem.deletedzissuing_authorization.createdzissuing_authorization.requestzissuing_authorization.updatedzissuing_card.createdzissuing_card.updatedzissuing_cardholder.createdzissuing_cardholder.updatedzissuing_dispute.closedzissuing_dispute.createdz issuing_dispute.funds_reinstatedzissuing_dispute.funds_rescindedzissuing_dispute.submittedzissuing_dispute.updatedz(issuing_personalization_design.activatedz*issuing_personalization_design.deactivatedz'issuing_personalization_design.rejectedz&issuing_personalization_design.updatedzissuing_token.createdzissuing_token.updatedzissuing_transaction.createdz4issuing_transaction.purchase_details_receipt_updatedzissuing_transaction.updatedzmandate.updatedz(payment_intent.amount_capturable_updatedzpayment_intent.canceledzpayment_intent.createdzpayment_intent.partially_fundedzpayment_intent.payment_failedzpayment_intent.processingzpayment_intent.requires_actionzpayment_intent.succeededzpayment_link.createdzpayment_link.updatedzpayment_method.attachedz$payment_method.automatically_updatedzpayment_method.detachedzpayment_method.updatedzpayout.canceledzpayout.createdzpayout.failedzpayout.paidzpayout.reconciliation_completedzpayout.updatedzperson.createdzperson.deletedzperson.updatedzplan.createdzplan.deletedzplan.updatedzprice.createdzprice.deletedzprice.updatedzproduct.createdzproduct.deletedzproduct.updatedzpromotion_code.createdzpromotion_code.updatedzquote.acceptedzquote.canceledzquote.createdzquote.finalizedz!radar.early_fraud_warning.createdz!radar.early_fraud_warning.updatedzrefund.createdzrefund.failedzrefund.updatedzreporting.report_run.failedzreporting.report_run.succeededzreporting.report_type.updatedzreview.closedzreview.openedzsetup_intent.canceledzsetup_intent.createdzsetup_intent.requires_actionzsetup_intent.setup_failedzsetup_intent.succeededz!sigma.scheduled_query_run.createdzsource.canceledzsource.chargeablezsource.failedzsource.mandate_notificationz!source.refund_attributes_requiredzsource.transaction.createdzsource.transaction.updatedzsubscription_schedule.abortedzsubscription_schedule.canceledzsubscription_schedule.completedzsubscription_schedule.createdzsubscription_schedule.expiringzsubscription_schedule.releasedzsubscription_schedule.updatedztax.settings.updatedztax_rate.createdztax_rate.updatedzterminal.reader.action_failedz terminal.reader.action_succeededz!test_helpers.test_clock.advancingztest_helpers.test_clock.createdztest_helpers.test_clock.deletedz(test_helpers.test_clock.internal_failureztest_helpers.test_clock.readyztopup.canceledztopup.createdztopup.failedztopup.reversedztopup.succeededztransfer.createdztransfer.reversedztransfer.updatedz treasury.credit_reversal.createdztreasury.credit_reversal.postedz!treasury.debit_reversal.completedztreasury.debit_reversal.createdz.treasury.debit_reversal.initial_credit_grantedz!treasury.financial_account.closedz"treasury.financial_account.createdz2treasury.financial_account.features_status_updatedz"treasury.inbound_transfer.canceledz!treasury.inbound_transfer.createdz treasury.inbound_transfer.failedz#treasury.inbound_transfer.succeededz"treasury.outbound_payment.canceledz!treasury.outbound_payment.createdz7treasury.outbound_payment.expected_arrival_date_updatedz treasury.outbound_payment.failedz treasury.outbound_payment.postedz"treasury.outbound_payment.returnedz2treasury.outbound_payment.tracking_details_updatedz#treasury.outbound_transfer.canceledz"treasury.outbound_transfer.createdz8treasury.outbound_transfer.expected_arrival_date_updatedz!treasury.outbound_transfer.failedz!treasury.outbound_transfer.postedz#treasury.outbound_transfer.returnedz3treasury.outbound_transfer.tracking_details_updatedz treasury.received_credit.createdztreasury.received_credit.failedz"treasury.received_credit.succeededztreasury.received_debit.createdenabled_eventsexpandLiteral['']|Dict[str, str]metadataurlN)	__name__
__module____qualname__r   r   __annotations__boolr   str r'   r'   f/var/www/staging/api/virtual_environments/venv/lib/python3.9/site-packages/stripe/_webhook_endpoint.pyCreateParams    s"   
s xr)   c                   @   s   e Zd ZdS )WebhookEndpoint.DeleteParamsN)r!   r"   r#   r'   r'   r'   r(   DeleteParams  s   r+   c                   @   sB   e Zd ZU ee ed< eee  ed< ee ed< ee ed< dS )WebhookEndpoint.ListParamsZending_beforer   limitZstarting_afterN)r!   r"   r#   r   r&   r$   r   intr'   r'   r'   r(   
ListParams  s
   
r/   c                   @   sb   e Zd ZU ed ed< ee ed< eeed   ed< eee  ed< ed ed< ee ed	< d
S )WebhookEndpoint.ModifyParamsr   r   disabledr   r   r   r   r   r    N)	r!   r"   r#   r   r$   r%   r   r   r&   r'   r'   r'   r(   ModifyParams  s   
 zr2   c                   @   s   e Zd ZU eee  ed< dS )WebhookEndpoint.RetrieveParamsr   N)r!   r"   r#   r   r   r&   r$   r'   r'   r'   r(   RetrieveParams  s   
r4   r   Zapplicationcreatedr   r   idZlivemoder   objectsecretstatusr    TZdeletedr   )paramsreturnc                 K   s   t d| jd|  |dS )  
        A webhook endpoint must have a url and a list of enabled_events. You may optionally specify the Boolean connect parameter. If set to true, then a Connect webhook endpoint that notifies the specified url about events from all connected accounts is created; otherwise an account webhook endpoint that notifies the specified url only about events from your account is created. You can also create webhook endpoints in the [webhooks settings](https://dashboard.stripe.com/account/webhooks) section of the Dashboard.
        r   postr:   )r   _static_request	class_urlclsr:   r'   r'   r(   create  s    zWebhookEndpoint.createc                    s    t d| jd|  |dI dH S )r<   r   r=   r>   N)r   _static_request_asyncr@   rA   r'   r'   r(   create_async  s    
zWebhookEndpoint.create_asyncr*   )sidr:   r;   c                 K   s*   d|   t|f }td| jd||dS )
        You can also delete webhook endpoints via the [webhook endpoint management](https://dashboard.stripe.com/account/webhooks) page of the Stripe dashboard.
        %s/%sr   deleter>   r@   r	   r   r?   rB   rF   r:   r    r'   r'   r(   _cls_delete  s    zWebhookEndpoint._cls_deletec                 K   s   dS rG   Nr'   rF   r:   r'   r'   r(   rI   0  s    zWebhookEndpoint.deletec                 K   s   dS rM   r'   selfr:   r'   r'   r(   rI   :  s    rL   c                 K   s   | j d|  |dS )rG   rI   r>   )Z_request_and_refreshinstance_urlrO   r'   r'   r(   rI   C  s
    c                    s0   d|   t|f }td| jd||dI dH S )rG   rH   r   rI   r>   Nr@   r	   r   rD   rK   r'   r'   r(   _cls_delete_asyncP  s    
z!WebhookEndpoint._cls_delete_asyncc                    s   dS rM   r'   rN   r'   r'   r(   delete_asynca  s    zWebhookEndpoint.delete_asyncc                    s   dS rM   r'   rO   r'   r'   r(   rT   k  s    rS   c                    s   | j d|  |dI dH S )rG   rI   r>   N)Z_request_and_refresh_asyncrQ   rO   r'   r'   r(   rT   t  s
    r,   c                 K   s4   | j d|  |d}t|ts0tdt|j |S );
        Returns a list of your webhook endpoints.
        getr>   %Expected list object from API, got %s)r?   r@   
isinstancer   	TypeErrortyper!   rB   r:   resultr'   r'   r(   list  s    
zWebhookEndpoint.listc                    s:   | j d|  |dI dH }t|ts6tdt|j |S )rU   rV   r>   NrW   )rD   r@   rX   r   rY   rZ   r!   r[   r'   r'   r(   
list_async  s    
zWebhookEndpoint.list_asyncr0   )r6   r:   r;   c                 K   s*   d|   t|f }td| jd||dS )
        Updates the webhook endpoint. You may edit the url, the list of enabled_events, and the status of your endpoint.
        rH   r   r=   r>   rJ   rB   r6   r:   r    r'   r'   r(   modify  s    zWebhookEndpoint.modifyc                    s0   d|   t|f }td| jd||dI dH S )r_   rH   r   r=   r>   NrR   r`   r'   r'   r(   modify_async  s    
zWebhookEndpoint.modify_asyncr3   c                 K   s   | |fi |}|   |S )C
        Retrieves the webhook endpoint with the given ID.
        )refreshrB   r6   r:   instancer'   r'   r(   retrieve  s    zWebhookEndpoint.retrievec                    s"   | |fi |}|  I dH  |S )rc   N)Zrefresh_asyncre   r'   r'   r(   retrieve_async  s    zWebhookEndpoint.retrieve_asyncN)&r!   r"   r#   __doc__r   r
   r   r$   r   r)   r+   r/   r2   r4   r   r&   r.   r   r%   r   classmethodr   rC   rE   rL   r   staticmethodrI   r   rS   rT   r   r]   r^   ra   rb   rg   rh   r'   r'   r'   r(   r      s   

     
r   N)Zstripe._createable_api_resourcer   Zstripe._deletable_api_resourcer   Zstripe._list_objectr   Zstripe._listable_api_resourcer   Zstripe._request_optionsr   Zstripe._updateable_api_resourcer   Zstripe._utilr   r	   typingr
   r   r   r   r   r   Ztyping_extensionsr   r   r   r   r'   r'   r'   r(   <module>   s    
