1use crate::client::{Client, Response};
6use crate::ids::WebhookEndpointId;
7use crate::params::{Deleted, Expand, List, Metadata, Object, Paginable, Timestamp};
8use crate::resources::{ApiVersion, WebhookEndpointStatus};
9use serde::{Deserialize, Serialize};
10
11#[derive(Clone, Debug, Default, Deserialize, Serialize)]
15pub struct WebhookEndpoint {
16 pub id: WebhookEndpointId,
18
19 #[serde(skip_serializing_if = "Option::is_none")]
21 pub api_version: Option<ApiVersion>,
22
23 #[serde(skip_serializing_if = "Option::is_none")]
25 pub application: Option<String>,
26
27 #[serde(skip_serializing_if = "Option::is_none")]
31 pub created: Option<Timestamp>,
32
33 #[serde(default)]
35 pub deleted: bool,
36
37 #[serde(skip_serializing_if = "Option::is_none")]
39 pub description: Option<String>,
40
41 #[serde(skip_serializing_if = "Option::is_none")]
45 pub enabled_events: Option<Vec<EventFilter>>,
46
47 #[serde(skip_serializing_if = "Option::is_none")]
49 pub livemode: Option<bool>,
50
51 #[serde(skip_serializing_if = "Option::is_none")]
55 pub metadata: Option<Metadata>,
56
57 #[serde(skip_serializing_if = "Option::is_none")]
61 pub secret: Option<String>,
62
63 #[serde(skip_serializing_if = "Option::is_none")]
67 pub status: Option<WebhookEndpointStatus>,
68
69 #[serde(skip_serializing_if = "Option::is_none")]
71 pub url: Option<String>,
72}
73
74impl WebhookEndpoint {
75 pub fn list(
77 client: &Client,
78 params: &ListWebhookEndpoints<'_>,
79 ) -> Response<List<WebhookEndpoint>> {
80 client.get_query("/webhook_endpoints", params)
81 }
82
83 pub fn create(client: &Client, params: CreateWebhookEndpoint<'_>) -> Response<WebhookEndpoint> {
89 #[allow(clippy::needless_borrows_for_generic_args)]
90 client.post_form("/webhook_endpoints", ¶ms)
91 }
92
93 pub fn retrieve(
95 client: &Client,
96 id: &WebhookEndpointId,
97 expand: &[&str],
98 ) -> Response<WebhookEndpoint> {
99 client.get_query(&format!("/webhook_endpoints/{}", id), Expand { expand })
100 }
101
102 pub fn update(
106 client: &Client,
107 id: &WebhookEndpointId,
108 params: UpdateWebhookEndpoint<'_>,
109 ) -> Response<WebhookEndpoint> {
110 #[allow(clippy::needless_borrows_for_generic_args)]
111 client.post_form(&format!("/webhook_endpoints/{}", id), ¶ms)
112 }
113
114 pub fn delete(client: &Client, id: &WebhookEndpointId) -> Response<Deleted<WebhookEndpointId>> {
116 client.delete(&format!("/webhook_endpoints/{}", id))
117 }
118}
119
120impl Object for WebhookEndpoint {
121 type Id = WebhookEndpointId;
122 fn id(&self) -> Self::Id {
123 self.id.clone()
124 }
125 fn object(&self) -> &'static str {
126 "webhook_endpoint"
127 }
128}
129
130#[derive(Clone, Debug, Serialize)]
132pub struct CreateWebhookEndpoint<'a> {
133 #[serde(skip_serializing_if = "Option::is_none")]
135 pub api_version: Option<ApiVersion>,
136
137 #[serde(skip_serializing_if = "Option::is_none")]
141 pub connect: Option<bool>,
142
143 #[serde(skip_serializing_if = "Option::is_none")]
145 pub description: Option<String>,
146
147 pub enabled_events: Vec<EventFilter>,
151
152 #[serde(skip_serializing_if = "Expand::is_empty")]
154 pub expand: &'a [&'a str],
155
156 #[serde(skip_serializing_if = "Option::is_none")]
162 pub metadata: Option<Metadata>,
163
164 pub url: &'a str,
166}
167
168impl<'a> CreateWebhookEndpoint<'a> {
169 pub fn new(enabled_events: Vec<EventFilter>, url: &'a str) -> Self {
170 CreateWebhookEndpoint {
171 api_version: Default::default(),
172 connect: Default::default(),
173 description: Default::default(),
174 enabled_events,
175 expand: Default::default(),
176 metadata: Default::default(),
177 url,
178 }
179 }
180}
181
182#[derive(Clone, Debug, Serialize, Default)]
184pub struct ListWebhookEndpoints<'a> {
185 #[serde(skip_serializing_if = "Option::is_none")]
190 pub ending_before: Option<WebhookEndpointId>,
191
192 #[serde(skip_serializing_if = "Expand::is_empty")]
194 pub expand: &'a [&'a str],
195
196 #[serde(skip_serializing_if = "Option::is_none")]
200 pub limit: Option<u64>,
201
202 #[serde(skip_serializing_if = "Option::is_none")]
207 pub starting_after: Option<WebhookEndpointId>,
208}
209
210impl<'a> ListWebhookEndpoints<'a> {
211 pub fn new() -> Self {
212 ListWebhookEndpoints {
213 ending_before: Default::default(),
214 expand: Default::default(),
215 limit: Default::default(),
216 starting_after: Default::default(),
217 }
218 }
219}
220impl Paginable for ListWebhookEndpoints<'_> {
221 type O = WebhookEndpoint;
222 fn set_last(&mut self, item: Self::O) {
223 self.starting_after = Some(item.id());
224 }
225}
226#[derive(Clone, Debug, Serialize, Default)]
228pub struct UpdateWebhookEndpoint<'a> {
229 #[serde(skip_serializing_if = "Option::is_none")]
231 pub description: Option<String>,
232
233 #[serde(skip_serializing_if = "Option::is_none")]
235 pub disabled: Option<bool>,
236
237 #[serde(skip_serializing_if = "Option::is_none")]
241 pub enabled_events: Option<Vec<EventFilter>>,
242
243 #[serde(skip_serializing_if = "Expand::is_empty")]
245 pub expand: &'a [&'a str],
246
247 #[serde(skip_serializing_if = "Option::is_none")]
253 pub metadata: Option<Metadata>,
254
255 #[serde(skip_serializing_if = "Option::is_none")]
257 pub url: Option<&'a str>,
258}
259
260impl<'a> UpdateWebhookEndpoint<'a> {
261 pub fn new() -> Self {
262 UpdateWebhookEndpoint {
263 description: Default::default(),
264 disabled: Default::default(),
265 enabled_events: Default::default(),
266 expand: Default::default(),
267 metadata: Default::default(),
268 url: Default::default(),
269 }
270 }
271}
272
273#[derive(Copy, Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
275#[serde(rename_all = "snake_case")]
276pub enum EventFilter {
277 #[serde(rename = "*")]
278 All,
279 #[serde(rename = "account.application.authorized")]
280 AccountApplicationAuthorized,
281 #[serde(rename = "account.application.deauthorized")]
282 AccountApplicationDeauthorized,
283 #[serde(rename = "account.external_account.created")]
284 AccountExternalAccountCreated,
285 #[serde(rename = "account.external_account.deleted")]
286 AccountExternalAccountDeleted,
287 #[serde(rename = "account.external_account.updated")]
288 AccountExternalAccountUpdated,
289 #[serde(rename = "account.updated")]
290 AccountUpdated,
291 #[serde(rename = "application_fee.created")]
292 ApplicationFeeCreated,
293 #[serde(rename = "application_fee.refund.updated")]
294 ApplicationFeeRefundUpdated,
295 #[serde(rename = "application_fee.refunded")]
296 ApplicationFeeRefunded,
297 #[serde(rename = "balance.available")]
298 BalanceAvailable,
299 #[serde(rename = "billing_portal.configuration.created")]
300 BillingPortalConfigurationCreated,
301 #[serde(rename = "billing_portal.configuration.updated")]
302 BillingPortalConfigurationUpdated,
303 #[serde(rename = "billing_portal.session.created")]
304 BillingPortalSessionCreated,
305 #[serde(rename = "capability.updated")]
306 CapabilityUpdated,
307 #[serde(rename = "cash_balance.funds_available")]
308 CashBalanceFundsAvailable,
309 #[serde(rename = "charge.captured")]
310 ChargeCaptured,
311 #[serde(rename = "charge.dispute.closed")]
312 ChargeDisputeClosed,
313 #[serde(rename = "charge.dispute.created")]
314 ChargeDisputeCreated,
315 #[serde(rename = "charge.dispute.funds_reinstated")]
316 ChargeDisputeFundsReinstated,
317 #[serde(rename = "charge.dispute.funds_withdrawn")]
318 ChargeDisputeFundsWithdrawn,
319 #[serde(rename = "charge.dispute.updated")]
320 ChargeDisputeUpdated,
321 #[serde(rename = "charge.expired")]
322 ChargeExpired,
323 #[serde(rename = "charge.failed")]
324 ChargeFailed,
325 #[serde(rename = "charge.pending")]
326 ChargePending,
327 #[serde(rename = "charge.refund.updated")]
328 ChargeRefundUpdated,
329 #[serde(rename = "charge.refunded")]
330 ChargeRefunded,
331 #[serde(rename = "charge.succeeded")]
332 ChargeSucceeded,
333 #[serde(rename = "charge.updated")]
334 ChargeUpdated,
335 #[serde(rename = "checkout.session.async_payment_failed")]
336 CheckoutSessionAsyncPaymentFailed,
337 #[serde(rename = "checkout.session.async_payment_succeeded")]
338 CheckoutSessionAsyncPaymentSucceeded,
339 #[serde(rename = "checkout.session.completed")]
340 CheckoutSessionCompleted,
341 #[serde(rename = "checkout.session.expired")]
342 CheckoutSessionExpired,
343 #[serde(rename = "climate.order.canceled")]
344 ClimateOrderCanceled,
345 #[serde(rename = "climate.order.created")]
346 ClimateOrderCreated,
347 #[serde(rename = "climate.order.delayed")]
348 ClimateOrderDelayed,
349 #[serde(rename = "climate.order.delivered")]
350 ClimateOrderDelivered,
351 #[serde(rename = "climate.order.product_substituted")]
352 ClimateOrderProductSubstituted,
353 #[serde(rename = "climate.product.created")]
354 ClimateProductCreated,
355 #[serde(rename = "climate.product.pricing_updated")]
356 ClimateProductPricingUpdated,
357 #[serde(rename = "coupon.created")]
358 CouponCreated,
359 #[serde(rename = "coupon.deleted")]
360 CouponDeleted,
361 #[serde(rename = "coupon.updated")]
362 CouponUpdated,
363 #[serde(rename = "credit_note.created")]
364 CreditNoteCreated,
365 #[serde(rename = "credit_note.updated")]
366 CreditNoteUpdated,
367 #[serde(rename = "credit_note.voided")]
368 CreditNoteVoided,
369 #[serde(rename = "customer.created")]
370 CustomerCreated,
371 #[serde(rename = "customer.deleted")]
372 CustomerDeleted,
373 #[serde(rename = "customer.discount.created")]
374 CustomerDiscountCreated,
375 #[serde(rename = "customer.discount.deleted")]
376 CustomerDiscountDeleted,
377 #[serde(rename = "customer.discount.updated")]
378 CustomerDiscountUpdated,
379 #[serde(rename = "customer.source.created")]
380 CustomerSourceCreated,
381 #[serde(rename = "customer.source.deleted")]
382 CustomerSourceDeleted,
383 #[serde(rename = "customer.source.expiring")]
384 CustomerSourceExpiring,
385 #[serde(rename = "customer.source.updated")]
386 CustomerSourceUpdated,
387 #[serde(rename = "customer.subscription.created")]
388 CustomerSubscriptionCreated,
389 #[serde(rename = "customer.subscription.deleted")]
390 CustomerSubscriptionDeleted,
391 #[serde(rename = "customer.subscription.paused")]
392 CustomerSubscriptionPaused,
393 #[serde(rename = "customer.subscription.pending_update_applied")]
394 CustomerSubscriptionPendingUpdateApplied,
395 #[serde(rename = "customer.subscription.pending_update_expired")]
396 CustomerSubscriptionPendingUpdateExpired,
397 #[serde(rename = "customer.subscription.resumed")]
398 CustomerSubscriptionResumed,
399 #[serde(rename = "customer.subscription.trial_will_end")]
400 CustomerSubscriptionTrialWillEnd,
401 #[serde(rename = "customer.subscription.updated")]
402 CustomerSubscriptionUpdated,
403 #[serde(rename = "customer.tax_id.created")]
404 CustomerTaxIdCreated,
405 #[serde(rename = "customer.tax_id.deleted")]
406 CustomerTaxIdDeleted,
407 #[serde(rename = "customer.tax_id.updated")]
408 CustomerTaxIdUpdated,
409 #[serde(rename = "customer.updated")]
410 CustomerUpdated,
411 #[serde(rename = "customer_cash_balance_transaction.created")]
412 CustomerCashBalanceTransactionCreated,
413 #[serde(rename = "file.created")]
414 FileCreated,
415 #[serde(rename = "financial_connections.account.created")]
416 FinancialConnectionsAccountCreated,
417 #[serde(rename = "financial_connections.account.deactivated")]
418 FinancialConnectionsAccountDeactivated,
419 #[serde(rename = "financial_connections.account.disconnected")]
420 FinancialConnectionsAccountDisconnected,
421 #[serde(rename = "financial_connections.account.reactivated")]
422 FinancialConnectionsAccountReactivated,
423 #[serde(rename = "financial_connections.account.refreshed_balance")]
424 FinancialConnectionsAccountRefreshedBalance,
425 #[serde(rename = "financial_connections.account.refreshed_transactions")]
426 FinancialConnectionsAccountRefreshedTransactions,
427 #[serde(rename = "identity.verification_session.canceled")]
428 IdentityVerificationSessionCanceled,
429 #[serde(rename = "identity.verification_session.created")]
430 IdentityVerificationSessionCreated,
431 #[serde(rename = "identity.verification_session.processing")]
432 IdentityVerificationSessionProcessing,
433 #[serde(rename = "identity.verification_session.redacted")]
434 IdentityVerificationSessionRedacted,
435 #[serde(rename = "identity.verification_session.requires_input")]
436 IdentityVerificationSessionRequiresInput,
437 #[serde(rename = "identity.verification_session.verified")]
438 IdentityVerificationSessionVerified,
439 #[serde(rename = "invoice.created")]
440 InvoiceCreated,
441 #[serde(rename = "invoice.deleted")]
442 InvoiceDeleted,
443 #[serde(rename = "invoice.finalization_failed")]
444 InvoiceFinalizationFailed,
445 #[serde(rename = "invoice.finalized")]
446 InvoiceFinalized,
447 #[serde(rename = "invoice.marked_uncollectible")]
448 InvoiceMarkedUncollectible,
449 #[serde(rename = "invoice.paid")]
450 InvoicePaid,
451 #[serde(rename = "invoice.payment_action_required")]
452 InvoicePaymentActionRequired,
453 #[serde(rename = "invoice.payment_failed")]
454 InvoicePaymentFailed,
455 #[serde(rename = "invoice.payment_succeeded")]
456 InvoicePaymentSucceeded,
457 #[serde(rename = "invoice.sent")]
458 InvoiceSent,
459 #[serde(rename = "invoice.upcoming")]
460 InvoiceUpcoming,
461 #[serde(rename = "invoice.updated")]
462 InvoiceUpdated,
463 #[serde(rename = "invoice.voided")]
464 InvoiceVoided,
465 #[serde(rename = "invoiceitem.created")]
466 InvoiceitemCreated,
467 #[serde(rename = "invoiceitem.deleted")]
468 InvoiceitemDeleted,
469 #[serde(rename = "issuing_authorization.created")]
470 IssuingAuthorizationCreated,
471 #[serde(rename = "issuing_authorization.request")]
472 IssuingAuthorizationRequest,
473 #[serde(rename = "issuing_authorization.updated")]
474 IssuingAuthorizationUpdated,
475 #[serde(rename = "issuing_card.created")]
476 IssuingCardCreated,
477 #[serde(rename = "issuing_card.updated")]
478 IssuingCardUpdated,
479 #[serde(rename = "issuing_cardholder.created")]
480 IssuingCardholderCreated,
481 #[serde(rename = "issuing_cardholder.updated")]
482 IssuingCardholderUpdated,
483 #[serde(rename = "issuing_dispute.closed")]
484 IssuingDisputeClosed,
485 #[serde(rename = "issuing_dispute.created")]
486 IssuingDisputeCreated,
487 #[serde(rename = "issuing_dispute.funds_reinstated")]
488 IssuingDisputeFundsReinstated,
489 #[serde(rename = "issuing_dispute.submitted")]
490 IssuingDisputeSubmitted,
491 #[serde(rename = "issuing_dispute.updated")]
492 IssuingDisputeUpdated,
493 #[serde(rename = "issuing_token.created")]
494 IssuingTokenCreated,
495 #[serde(rename = "issuing_token.updated")]
496 IssuingTokenUpdated,
497 #[serde(rename = "issuing_transaction.created")]
498 IssuingTransactionCreated,
499 #[serde(rename = "issuing_transaction.updated")]
500 IssuingTransactionUpdated,
501 #[serde(rename = "mandate.updated")]
502 MandateUpdated,
503 #[serde(rename = "payment_intent.amount_capturable_updated")]
504 PaymentIntentAmountCapturableUpdated,
505 #[serde(rename = "payment_intent.canceled")]
506 PaymentIntentCanceled,
507 #[serde(rename = "payment_intent.created")]
508 PaymentIntentCreated,
509 #[serde(rename = "payment_intent.partially_funded")]
510 PaymentIntentPartiallyFunded,
511 #[serde(rename = "payment_intent.payment_failed")]
512 PaymentIntentPaymentFailed,
513 #[serde(rename = "payment_intent.processing")]
514 PaymentIntentProcessing,
515 #[serde(rename = "payment_intent.requires_action")]
516 PaymentIntentRequiresAction,
517 #[serde(rename = "payment_intent.succeeded")]
518 PaymentIntentSucceeded,
519 #[serde(rename = "payment_link.created")]
520 PaymentLinkCreated,
521 #[serde(rename = "payment_link.updated")]
522 PaymentLinkUpdated,
523 #[serde(rename = "payment_method.attached")]
524 PaymentMethodAttached,
525 #[serde(rename = "payment_method.automatically_updated")]
526 PaymentMethodAutomaticallyUpdated,
527 #[serde(rename = "payment_method.detached")]
528 PaymentMethodDetached,
529 #[serde(rename = "payment_method.updated")]
530 PaymentMethodUpdated,
531 #[serde(rename = "payout.canceled")]
532 PayoutCanceled,
533 #[serde(rename = "payout.created")]
534 PayoutCreated,
535 #[serde(rename = "payout.failed")]
536 PayoutFailed,
537 #[serde(rename = "payout.paid")]
538 PayoutPaid,
539 #[serde(rename = "payout.reconciliation_completed")]
540 PayoutReconciliationCompleted,
541 #[serde(rename = "payout.updated")]
542 PayoutUpdated,
543 #[serde(rename = "person.created")]
544 PersonCreated,
545 #[serde(rename = "person.deleted")]
546 PersonDeleted,
547 #[serde(rename = "person.updated")]
548 PersonUpdated,
549 #[serde(rename = "plan.created")]
550 PlanCreated,
551 #[serde(rename = "plan.deleted")]
552 PlanDeleted,
553 #[serde(rename = "plan.updated")]
554 PlanUpdated,
555 #[serde(rename = "price.created")]
556 PriceCreated,
557 #[serde(rename = "price.deleted")]
558 PriceDeleted,
559 #[serde(rename = "price.updated")]
560 PriceUpdated,
561 #[serde(rename = "product.created")]
562 ProductCreated,
563 #[serde(rename = "product.deleted")]
564 ProductDeleted,
565 #[serde(rename = "product.updated")]
566 ProductUpdated,
567 #[serde(rename = "promotion_code.created")]
568 PromotionCodeCreated,
569 #[serde(rename = "promotion_code.updated")]
570 PromotionCodeUpdated,
571 #[serde(rename = "quote.accepted")]
572 QuoteAccepted,
573 #[serde(rename = "quote.canceled")]
574 QuoteCanceled,
575 #[serde(rename = "quote.created")]
576 QuoteCreated,
577 #[serde(rename = "quote.finalized")]
578 QuoteFinalized,
579 #[serde(rename = "radar.early_fraud_warning.created")]
580 RadarEarlyFraudWarningCreated,
581 #[serde(rename = "radar.early_fraud_warning.updated")]
582 RadarEarlyFraudWarningUpdated,
583 #[serde(rename = "refund.created")]
584 RefundCreated,
585 #[serde(rename = "refund.updated")]
586 RefundUpdated,
587 #[serde(rename = "reporting.report_run.failed")]
588 ReportingReportRunFailed,
589 #[serde(rename = "reporting.report_run.succeeded")]
590 ReportingReportRunSucceeded,
591 #[serde(rename = "reporting.report_type.updated")]
592 ReportingReportTypeUpdated,
593 #[serde(rename = "review.closed")]
594 ReviewClosed,
595 #[serde(rename = "review.opened")]
596 ReviewOpened,
597 #[serde(rename = "setup_intent.canceled")]
598 SetupIntentCanceled,
599 #[serde(rename = "setup_intent.created")]
600 SetupIntentCreated,
601 #[serde(rename = "setup_intent.requires_action")]
602 SetupIntentRequiresAction,
603 #[serde(rename = "setup_intent.setup_failed")]
604 SetupIntentSetupFailed,
605 #[serde(rename = "setup_intent.succeeded")]
606 SetupIntentSucceeded,
607 #[serde(rename = "sigma.scheduled_query_run.created")]
608 SigmaScheduledQueryRunCreated,
609 #[serde(rename = "source.canceled")]
610 SourceCanceled,
611 #[serde(rename = "source.chargeable")]
612 SourceChargeable,
613 #[serde(rename = "source.failed")]
614 SourceFailed,
615 #[serde(rename = "source.mandate_notification")]
616 SourceMandateNotification,
617 #[serde(rename = "source.refund_attributes_required")]
618 SourceRefundAttributesRequired,
619 #[serde(rename = "source.transaction.created")]
620 SourceTransactionCreated,
621 #[serde(rename = "source.transaction.updated")]
622 SourceTransactionUpdated,
623 #[serde(rename = "subscription_schedule.aborted")]
624 SubscriptionScheduleAborted,
625 #[serde(rename = "subscription_schedule.canceled")]
626 SubscriptionScheduleCanceled,
627 #[serde(rename = "subscription_schedule.completed")]
628 SubscriptionScheduleCompleted,
629 #[serde(rename = "subscription_schedule.created")]
630 SubscriptionScheduleCreated,
631 #[serde(rename = "subscription_schedule.expiring")]
632 SubscriptionScheduleExpiring,
633 #[serde(rename = "subscription_schedule.released")]
634 SubscriptionScheduleReleased,
635 #[serde(rename = "subscription_schedule.updated")]
636 SubscriptionScheduleUpdated,
637 #[serde(rename = "tax.settings.updated")]
638 TaxSettingsUpdated,
639 #[serde(rename = "tax_rate.created")]
640 TaxRateCreated,
641 #[serde(rename = "tax_rate.updated")]
642 TaxRateUpdated,
643 #[serde(rename = "terminal.reader.action_failed")]
644 TerminalReaderActionFailed,
645 #[serde(rename = "terminal.reader.action_succeeded")]
646 TerminalReaderActionSucceeded,
647 #[serde(rename = "test_helpers.test_clock.advancing")]
648 TestHelpersTestClockAdvancing,
649 #[serde(rename = "test_helpers.test_clock.created")]
650 TestHelpersTestClockCreated,
651 #[serde(rename = "test_helpers.test_clock.deleted")]
652 TestHelpersTestClockDeleted,
653 #[serde(rename = "test_helpers.test_clock.internal_failure")]
654 TestHelpersTestClockInternalFailure,
655 #[serde(rename = "test_helpers.test_clock.ready")]
656 TestHelpersTestClockReady,
657 #[serde(rename = "topup.canceled")]
658 TopupCanceled,
659 #[serde(rename = "topup.created")]
660 TopupCreated,
661 #[serde(rename = "topup.failed")]
662 TopupFailed,
663 #[serde(rename = "topup.reversed")]
664 TopupReversed,
665 #[serde(rename = "topup.succeeded")]
666 TopupSucceeded,
667 #[serde(rename = "transfer.created")]
668 TransferCreated,
669 #[serde(rename = "transfer.reversed")]
670 TransferReversed,
671 #[serde(rename = "transfer.updated")]
672 TransferUpdated,
673 #[serde(rename = "treasury.credit_reversal.created")]
674 TreasuryCreditReversalCreated,
675 #[serde(rename = "treasury.credit_reversal.posted")]
676 TreasuryCreditReversalPosted,
677 #[serde(rename = "treasury.debit_reversal.completed")]
678 TreasuryDebitReversalCompleted,
679 #[serde(rename = "treasury.debit_reversal.created")]
680 TreasuryDebitReversalCreated,
681 #[serde(rename = "treasury.debit_reversal.initial_credit_granted")]
682 TreasuryDebitReversalInitialCreditGranted,
683 #[serde(rename = "treasury.financial_account.closed")]
684 TreasuryFinancialAccountClosed,
685 #[serde(rename = "treasury.financial_account.created")]
686 TreasuryFinancialAccountCreated,
687 #[serde(rename = "treasury.financial_account.features_status_updated")]
688 TreasuryFinancialAccountFeaturesStatusUpdated,
689 #[serde(rename = "treasury.inbound_transfer.canceled")]
690 TreasuryInboundTransferCanceled,
691 #[serde(rename = "treasury.inbound_transfer.created")]
692 TreasuryInboundTransferCreated,
693 #[serde(rename = "treasury.inbound_transfer.failed")]
694 TreasuryInboundTransferFailed,
695 #[serde(rename = "treasury.inbound_transfer.succeeded")]
696 TreasuryInboundTransferSucceeded,
697 #[serde(rename = "treasury.outbound_payment.canceled")]
698 TreasuryOutboundPaymentCanceled,
699 #[serde(rename = "treasury.outbound_payment.created")]
700 TreasuryOutboundPaymentCreated,
701 #[serde(rename = "treasury.outbound_payment.expected_arrival_date_updated")]
702 TreasuryOutboundPaymentExpectedArrivalDateUpdated,
703 #[serde(rename = "treasury.outbound_payment.failed")]
704 TreasuryOutboundPaymentFailed,
705 #[serde(rename = "treasury.outbound_payment.posted")]
706 TreasuryOutboundPaymentPosted,
707 #[serde(rename = "treasury.outbound_payment.returned")]
708 TreasuryOutboundPaymentReturned,
709 #[serde(rename = "treasury.outbound_transfer.canceled")]
710 TreasuryOutboundTransferCanceled,
711 #[serde(rename = "treasury.outbound_transfer.created")]
712 TreasuryOutboundTransferCreated,
713 #[serde(rename = "treasury.outbound_transfer.expected_arrival_date_updated")]
714 TreasuryOutboundTransferExpectedArrivalDateUpdated,
715 #[serde(rename = "treasury.outbound_transfer.failed")]
716 TreasuryOutboundTransferFailed,
717 #[serde(rename = "treasury.outbound_transfer.posted")]
718 TreasuryOutboundTransferPosted,
719 #[serde(rename = "treasury.outbound_transfer.returned")]
720 TreasuryOutboundTransferReturned,
721 #[serde(rename = "treasury.received_credit.created")]
722 TreasuryReceivedCreditCreated,
723 #[serde(rename = "treasury.received_credit.failed")]
724 TreasuryReceivedCreditFailed,
725 #[serde(rename = "treasury.received_credit.succeeded")]
726 TreasuryReceivedCreditSucceeded,
727 #[serde(rename = "treasury.received_debit.created")]
728 TreasuryReceivedDebitCreated,
729}
730
731impl EventFilter {
732 pub fn as_str(self) -> &'static str {
733 match self {
734 EventFilter::All => "*",
735 EventFilter::AccountApplicationAuthorized => "account.application.authorized",
736 EventFilter::AccountApplicationDeauthorized => "account.application.deauthorized",
737 EventFilter::AccountExternalAccountCreated => "account.external_account.created",
738 EventFilter::AccountExternalAccountDeleted => "account.external_account.deleted",
739 EventFilter::AccountExternalAccountUpdated => "account.external_account.updated",
740 EventFilter::AccountUpdated => "account.updated",
741 EventFilter::ApplicationFeeCreated => "application_fee.created",
742 EventFilter::ApplicationFeeRefundUpdated => "application_fee.refund.updated",
743 EventFilter::ApplicationFeeRefunded => "application_fee.refunded",
744 EventFilter::BalanceAvailable => "balance.available",
745 EventFilter::BillingPortalConfigurationCreated => {
746 "billing_portal.configuration.created"
747 }
748 EventFilter::BillingPortalConfigurationUpdated => {
749 "billing_portal.configuration.updated"
750 }
751 EventFilter::BillingPortalSessionCreated => "billing_portal.session.created",
752 EventFilter::CapabilityUpdated => "capability.updated",
753 EventFilter::CashBalanceFundsAvailable => "cash_balance.funds_available",
754 EventFilter::ChargeCaptured => "charge.captured",
755 EventFilter::ChargeDisputeClosed => "charge.dispute.closed",
756 EventFilter::ChargeDisputeCreated => "charge.dispute.created",
757 EventFilter::ChargeDisputeFundsReinstated => "charge.dispute.funds_reinstated",
758 EventFilter::ChargeDisputeFundsWithdrawn => "charge.dispute.funds_withdrawn",
759 EventFilter::ChargeDisputeUpdated => "charge.dispute.updated",
760 EventFilter::ChargeExpired => "charge.expired",
761 EventFilter::ChargeFailed => "charge.failed",
762 EventFilter::ChargePending => "charge.pending",
763 EventFilter::ChargeRefundUpdated => "charge.refund.updated",
764 EventFilter::ChargeRefunded => "charge.refunded",
765 EventFilter::ChargeSucceeded => "charge.succeeded",
766 EventFilter::ChargeUpdated => "charge.updated",
767 EventFilter::CheckoutSessionAsyncPaymentFailed => {
768 "checkout.session.async_payment_failed"
769 }
770 EventFilter::CheckoutSessionAsyncPaymentSucceeded => {
771 "checkout.session.async_payment_succeeded"
772 }
773 EventFilter::CheckoutSessionCompleted => "checkout.session.completed",
774 EventFilter::CheckoutSessionExpired => "checkout.session.expired",
775 EventFilter::ClimateOrderCanceled => "climate.order.canceled",
776 EventFilter::ClimateOrderCreated => "climate.order.created",
777 EventFilter::ClimateOrderDelayed => "climate.order.delayed",
778 EventFilter::ClimateOrderDelivered => "climate.order.delivered",
779 EventFilter::ClimateOrderProductSubstituted => "climate.order.product_substituted",
780 EventFilter::ClimateProductCreated => "climate.product.created",
781 EventFilter::ClimateProductPricingUpdated => "climate.product.pricing_updated",
782 EventFilter::CouponCreated => "coupon.created",
783 EventFilter::CouponDeleted => "coupon.deleted",
784 EventFilter::CouponUpdated => "coupon.updated",
785 EventFilter::CreditNoteCreated => "credit_note.created",
786 EventFilter::CreditNoteUpdated => "credit_note.updated",
787 EventFilter::CreditNoteVoided => "credit_note.voided",
788 EventFilter::CustomerCreated => "customer.created",
789 EventFilter::CustomerDeleted => "customer.deleted",
790 EventFilter::CustomerDiscountCreated => "customer.discount.created",
791 EventFilter::CustomerDiscountDeleted => "customer.discount.deleted",
792 EventFilter::CustomerDiscountUpdated => "customer.discount.updated",
793 EventFilter::CustomerSourceCreated => "customer.source.created",
794 EventFilter::CustomerSourceDeleted => "customer.source.deleted",
795 EventFilter::CustomerSourceExpiring => "customer.source.expiring",
796 EventFilter::CustomerSourceUpdated => "customer.source.updated",
797 EventFilter::CustomerSubscriptionCreated => "customer.subscription.created",
798 EventFilter::CustomerSubscriptionDeleted => "customer.subscription.deleted",
799 EventFilter::CustomerSubscriptionPaused => "customer.subscription.paused",
800 EventFilter::CustomerSubscriptionPendingUpdateApplied => {
801 "customer.subscription.pending_update_applied"
802 }
803 EventFilter::CustomerSubscriptionPendingUpdateExpired => {
804 "customer.subscription.pending_update_expired"
805 }
806 EventFilter::CustomerSubscriptionResumed => "customer.subscription.resumed",
807 EventFilter::CustomerSubscriptionTrialWillEnd => "customer.subscription.trial_will_end",
808 EventFilter::CustomerSubscriptionUpdated => "customer.subscription.updated",
809 EventFilter::CustomerTaxIdCreated => "customer.tax_id.created",
810 EventFilter::CustomerTaxIdDeleted => "customer.tax_id.deleted",
811 EventFilter::CustomerTaxIdUpdated => "customer.tax_id.updated",
812 EventFilter::CustomerUpdated => "customer.updated",
813 EventFilter::CustomerCashBalanceTransactionCreated => {
814 "customer_cash_balance_transaction.created"
815 }
816 EventFilter::FileCreated => "file.created",
817 EventFilter::FinancialConnectionsAccountCreated => {
818 "financial_connections.account.created"
819 }
820 EventFilter::FinancialConnectionsAccountDeactivated => {
821 "financial_connections.account.deactivated"
822 }
823 EventFilter::FinancialConnectionsAccountDisconnected => {
824 "financial_connections.account.disconnected"
825 }
826 EventFilter::FinancialConnectionsAccountReactivated => {
827 "financial_connections.account.reactivated"
828 }
829 EventFilter::FinancialConnectionsAccountRefreshedBalance => {
830 "financial_connections.account.refreshed_balance"
831 }
832 EventFilter::FinancialConnectionsAccountRefreshedTransactions => {
833 "financial_connections.account.refreshed_transactions"
834 }
835 EventFilter::IdentityVerificationSessionCanceled => {
836 "identity.verification_session.canceled"
837 }
838 EventFilter::IdentityVerificationSessionCreated => {
839 "identity.verification_session.created"
840 }
841 EventFilter::IdentityVerificationSessionProcessing => {
842 "identity.verification_session.processing"
843 }
844 EventFilter::IdentityVerificationSessionRedacted => {
845 "identity.verification_session.redacted"
846 }
847 EventFilter::IdentityVerificationSessionRequiresInput => {
848 "identity.verification_session.requires_input"
849 }
850 EventFilter::IdentityVerificationSessionVerified => {
851 "identity.verification_session.verified"
852 }
853 EventFilter::InvoiceCreated => "invoice.created",
854 EventFilter::InvoiceDeleted => "invoice.deleted",
855 EventFilter::InvoiceFinalizationFailed => "invoice.finalization_failed",
856 EventFilter::InvoiceFinalized => "invoice.finalized",
857 EventFilter::InvoiceMarkedUncollectible => "invoice.marked_uncollectible",
858 EventFilter::InvoicePaid => "invoice.paid",
859 EventFilter::InvoicePaymentActionRequired => "invoice.payment_action_required",
860 EventFilter::InvoicePaymentFailed => "invoice.payment_failed",
861 EventFilter::InvoicePaymentSucceeded => "invoice.payment_succeeded",
862 EventFilter::InvoiceSent => "invoice.sent",
863 EventFilter::InvoiceUpcoming => "invoice.upcoming",
864 EventFilter::InvoiceUpdated => "invoice.updated",
865 EventFilter::InvoiceVoided => "invoice.voided",
866 EventFilter::InvoiceitemCreated => "invoiceitem.created",
867 EventFilter::InvoiceitemDeleted => "invoiceitem.deleted",
868 EventFilter::IssuingAuthorizationCreated => "issuing_authorization.created",
869 EventFilter::IssuingAuthorizationRequest => "issuing_authorization.request",
870 EventFilter::IssuingAuthorizationUpdated => "issuing_authorization.updated",
871 EventFilter::IssuingCardCreated => "issuing_card.created",
872 EventFilter::IssuingCardUpdated => "issuing_card.updated",
873 EventFilter::IssuingCardholderCreated => "issuing_cardholder.created",
874 EventFilter::IssuingCardholderUpdated => "issuing_cardholder.updated",
875 EventFilter::IssuingDisputeClosed => "issuing_dispute.closed",
876 EventFilter::IssuingDisputeCreated => "issuing_dispute.created",
877 EventFilter::IssuingDisputeFundsReinstated => "issuing_dispute.funds_reinstated",
878 EventFilter::IssuingDisputeSubmitted => "issuing_dispute.submitted",
879 EventFilter::IssuingDisputeUpdated => "issuing_dispute.updated",
880 EventFilter::IssuingTokenCreated => "issuing_token.created",
881 EventFilter::IssuingTokenUpdated => "issuing_token.updated",
882 EventFilter::IssuingTransactionCreated => "issuing_transaction.created",
883 EventFilter::IssuingTransactionUpdated => "issuing_transaction.updated",
884 EventFilter::MandateUpdated => "mandate.updated",
885 EventFilter::PaymentIntentAmountCapturableUpdated => {
886 "payment_intent.amount_capturable_updated"
887 }
888 EventFilter::PaymentIntentCanceled => "payment_intent.canceled",
889 EventFilter::PaymentIntentCreated => "payment_intent.created",
890 EventFilter::PaymentIntentPartiallyFunded => "payment_intent.partially_funded",
891 EventFilter::PaymentIntentPaymentFailed => "payment_intent.payment_failed",
892 EventFilter::PaymentIntentProcessing => "payment_intent.processing",
893 EventFilter::PaymentIntentRequiresAction => "payment_intent.requires_action",
894 EventFilter::PaymentIntentSucceeded => "payment_intent.succeeded",
895 EventFilter::PaymentLinkCreated => "payment_link.created",
896 EventFilter::PaymentLinkUpdated => "payment_link.updated",
897 EventFilter::PaymentMethodAttached => "payment_method.attached",
898 EventFilter::PaymentMethodAutomaticallyUpdated => {
899 "payment_method.automatically_updated"
900 }
901 EventFilter::PaymentMethodDetached => "payment_method.detached",
902 EventFilter::PaymentMethodUpdated => "payment_method.updated",
903 EventFilter::PayoutCanceled => "payout.canceled",
904 EventFilter::PayoutCreated => "payout.created",
905 EventFilter::PayoutFailed => "payout.failed",
906 EventFilter::PayoutPaid => "payout.paid",
907 EventFilter::PayoutReconciliationCompleted => "payout.reconciliation_completed",
908 EventFilter::PayoutUpdated => "payout.updated",
909 EventFilter::PersonCreated => "person.created",
910 EventFilter::PersonDeleted => "person.deleted",
911 EventFilter::PersonUpdated => "person.updated",
912 EventFilter::PlanCreated => "plan.created",
913 EventFilter::PlanDeleted => "plan.deleted",
914 EventFilter::PlanUpdated => "plan.updated",
915 EventFilter::PriceCreated => "price.created",
916 EventFilter::PriceDeleted => "price.deleted",
917 EventFilter::PriceUpdated => "price.updated",
918 EventFilter::ProductCreated => "product.created",
919 EventFilter::ProductDeleted => "product.deleted",
920 EventFilter::ProductUpdated => "product.updated",
921 EventFilter::PromotionCodeCreated => "promotion_code.created",
922 EventFilter::PromotionCodeUpdated => "promotion_code.updated",
923 EventFilter::QuoteAccepted => "quote.accepted",
924 EventFilter::QuoteCanceled => "quote.canceled",
925 EventFilter::QuoteCreated => "quote.created",
926 EventFilter::QuoteFinalized => "quote.finalized",
927 EventFilter::RadarEarlyFraudWarningCreated => "radar.early_fraud_warning.created",
928 EventFilter::RadarEarlyFraudWarningUpdated => "radar.early_fraud_warning.updated",
929 EventFilter::RefundCreated => "refund.created",
930 EventFilter::RefundUpdated => "refund.updated",
931 EventFilter::ReportingReportRunFailed => "reporting.report_run.failed",
932 EventFilter::ReportingReportRunSucceeded => "reporting.report_run.succeeded",
933 EventFilter::ReportingReportTypeUpdated => "reporting.report_type.updated",
934 EventFilter::ReviewClosed => "review.closed",
935 EventFilter::ReviewOpened => "review.opened",
936 EventFilter::SetupIntentCanceled => "setup_intent.canceled",
937 EventFilter::SetupIntentCreated => "setup_intent.created",
938 EventFilter::SetupIntentRequiresAction => "setup_intent.requires_action",
939 EventFilter::SetupIntentSetupFailed => "setup_intent.setup_failed",
940 EventFilter::SetupIntentSucceeded => "setup_intent.succeeded",
941 EventFilter::SigmaScheduledQueryRunCreated => "sigma.scheduled_query_run.created",
942 EventFilter::SourceCanceled => "source.canceled",
943 EventFilter::SourceChargeable => "source.chargeable",
944 EventFilter::SourceFailed => "source.failed",
945 EventFilter::SourceMandateNotification => "source.mandate_notification",
946 EventFilter::SourceRefundAttributesRequired => "source.refund_attributes_required",
947 EventFilter::SourceTransactionCreated => "source.transaction.created",
948 EventFilter::SourceTransactionUpdated => "source.transaction.updated",
949 EventFilter::SubscriptionScheduleAborted => "subscription_schedule.aborted",
950 EventFilter::SubscriptionScheduleCanceled => "subscription_schedule.canceled",
951 EventFilter::SubscriptionScheduleCompleted => "subscription_schedule.completed",
952 EventFilter::SubscriptionScheduleCreated => "subscription_schedule.created",
953 EventFilter::SubscriptionScheduleExpiring => "subscription_schedule.expiring",
954 EventFilter::SubscriptionScheduleReleased => "subscription_schedule.released",
955 EventFilter::SubscriptionScheduleUpdated => "subscription_schedule.updated",
956 EventFilter::TaxSettingsUpdated => "tax.settings.updated",
957 EventFilter::TaxRateCreated => "tax_rate.created",
958 EventFilter::TaxRateUpdated => "tax_rate.updated",
959 EventFilter::TerminalReaderActionFailed => "terminal.reader.action_failed",
960 EventFilter::TerminalReaderActionSucceeded => "terminal.reader.action_succeeded",
961 EventFilter::TestHelpersTestClockAdvancing => "test_helpers.test_clock.advancing",
962 EventFilter::TestHelpersTestClockCreated => "test_helpers.test_clock.created",
963 EventFilter::TestHelpersTestClockDeleted => "test_helpers.test_clock.deleted",
964 EventFilter::TestHelpersTestClockInternalFailure => {
965 "test_helpers.test_clock.internal_failure"
966 }
967 EventFilter::TestHelpersTestClockReady => "test_helpers.test_clock.ready",
968 EventFilter::TopupCanceled => "topup.canceled",
969 EventFilter::TopupCreated => "topup.created",
970 EventFilter::TopupFailed => "topup.failed",
971 EventFilter::TopupReversed => "topup.reversed",
972 EventFilter::TopupSucceeded => "topup.succeeded",
973 EventFilter::TransferCreated => "transfer.created",
974 EventFilter::TransferReversed => "transfer.reversed",
975 EventFilter::TransferUpdated => "transfer.updated",
976 EventFilter::TreasuryCreditReversalCreated => "treasury.credit_reversal.created",
977 EventFilter::TreasuryCreditReversalPosted => "treasury.credit_reversal.posted",
978 EventFilter::TreasuryDebitReversalCompleted => "treasury.debit_reversal.completed",
979 EventFilter::TreasuryDebitReversalCreated => "treasury.debit_reversal.created",
980 EventFilter::TreasuryDebitReversalInitialCreditGranted => {
981 "treasury.debit_reversal.initial_credit_granted"
982 }
983 EventFilter::TreasuryFinancialAccountClosed => "treasury.financial_account.closed",
984 EventFilter::TreasuryFinancialAccountCreated => "treasury.financial_account.created",
985 EventFilter::TreasuryFinancialAccountFeaturesStatusUpdated => {
986 "treasury.financial_account.features_status_updated"
987 }
988 EventFilter::TreasuryInboundTransferCanceled => "treasury.inbound_transfer.canceled",
989 EventFilter::TreasuryInboundTransferCreated => "treasury.inbound_transfer.created",
990 EventFilter::TreasuryInboundTransferFailed => "treasury.inbound_transfer.failed",
991 EventFilter::TreasuryInboundTransferSucceeded => "treasury.inbound_transfer.succeeded",
992 EventFilter::TreasuryOutboundPaymentCanceled => "treasury.outbound_payment.canceled",
993 EventFilter::TreasuryOutboundPaymentCreated => "treasury.outbound_payment.created",
994 EventFilter::TreasuryOutboundPaymentExpectedArrivalDateUpdated => {
995 "treasury.outbound_payment.expected_arrival_date_updated"
996 }
997 EventFilter::TreasuryOutboundPaymentFailed => "treasury.outbound_payment.failed",
998 EventFilter::TreasuryOutboundPaymentPosted => "treasury.outbound_payment.posted",
999 EventFilter::TreasuryOutboundPaymentReturned => "treasury.outbound_payment.returned",
1000 EventFilter::TreasuryOutboundTransferCanceled => "treasury.outbound_transfer.canceled",
1001 EventFilter::TreasuryOutboundTransferCreated => "treasury.outbound_transfer.created",
1002 EventFilter::TreasuryOutboundTransferExpectedArrivalDateUpdated => {
1003 "treasury.outbound_transfer.expected_arrival_date_updated"
1004 }
1005 EventFilter::TreasuryOutboundTransferFailed => "treasury.outbound_transfer.failed",
1006 EventFilter::TreasuryOutboundTransferPosted => "treasury.outbound_transfer.posted",
1007 EventFilter::TreasuryOutboundTransferReturned => "treasury.outbound_transfer.returned",
1008 EventFilter::TreasuryReceivedCreditCreated => "treasury.received_credit.created",
1009 EventFilter::TreasuryReceivedCreditFailed => "treasury.received_credit.failed",
1010 EventFilter::TreasuryReceivedCreditSucceeded => "treasury.received_credit.succeeded",
1011 EventFilter::TreasuryReceivedDebitCreated => "treasury.received_debit.created",
1012 }
1013 }
1014}
1015
1016impl AsRef<str> for EventFilter {
1017 fn as_ref(&self) -> &str {
1018 self.as_str()
1019 }
1020}
1021
1022impl std::fmt::Display for EventFilter {
1023 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
1024 self.as_str().fmt(f)
1025 }
1026}
1027impl std::default::Default for EventFilter {
1028 fn default() -> Self {
1029 Self::All
1030 }
1031}