diff --git a/CHANGELOG.md b/CHANGELOG.md index 75dac43..f1fba8c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,92 @@ +### v3.21.0 (2026-05-04) +* * * +### New Resources: +- [`QuoteEntitlement`](https://apidocs.chargebee.com/docs/api/quote_entitlements) has been added. + + +### New Actions: +- [`list_applicable_alerts_for_a_subscription`](https://apidocs.chargebee.com/docs/api/alerts/list-applicable-alerts-for-a-subscription) has been added to [`Alert`](https://apidocs.chargebee.com/docs/api/alerts). +- [`retrieve_an_alert`](https://apidocs.chargebee.com/docs/api/alerts/retrieve-an-alert) has been added to [`Alert`](https://apidocs.chargebee.com/docs/api/alerts). +- [`update_an_alert`](https://apidocs.chargebee.com/docs/api/alerts/update-an-alert) has been added to [`Alert`](https://apidocs.chargebee.com/docs/api/alerts). +- [`delete_an_alert`](https://apidocs.chargebee.com/docs/api/alerts/delete-an-alert) has been added to [`Alert`](https://apidocs.chargebee.com/docs/api/alerts). +- [`list_alerts`](https://apidocs.chargebee.com/docs/api/alerts/list-alerts) has been added to [`Alert`](https://apidocs.chargebee.com/docs/api/alerts). +- [`create_an_alert`](https://apidocs.chargebee.com/docs/api/alerts/create-an-alert) has been added to [`Alert`](https://apidocs.chargebee.com/docs/api/alerts). +- [`list_alert_statuses_for_a_subscription`](https://apidocs.chargebee.com/docs/api/alert_statuses/list-alert-statuses-for-a-subscription) has been added to [`AlertStatus`](https://apidocs.chargebee.com/docs/api/alert_statuses). +- [`list_alert_statuses_for_an_alert`](https://apidocs.chargebee.com/docs/api/alert_statuses/list-alert-statuses-for-an-alert) has been added to [`AlertStatus`](https://apidocs.chargebee.com/docs/api/alert_statuses). + + +### New Attributes: +- [`alarm_status`](https://apidocs.chargebee.com/docs/api/alert_statuses/alert-status-object#alarm_status) has been added to [`AlertStatus`](https://apidocs.chargebee.com/docs/api/alert_statuses). + + +### New Parameters: +- [`limit`](https://apidocs.chargebee.com/docs/api/alerts/list-applicable-alerts-for-a-subscription#limit) has been added as query parameter to [`list_applicable_alerts_for_a_subscription`](https://apidocs.chargebee.com/docs/api/alerts/list-applicable-alerts-for-a-subscription) in [`Alert`](https://apidocs.chargebee.com/docs/api/alerts). +- [`offset`](https://apidocs.chargebee.com/docs/api/alerts/list-applicable-alerts-for-a-subscription#offset) has been added as query parameter to [`list_applicable_alerts_for_a_subscription`](https://apidocs.chargebee.com/docs/api/alerts/list-applicable-alerts-for-a-subscription) in [`Alert`](https://apidocs.chargebee.com/docs/api/alerts). +- [`status`](https://apidocs.chargebee.com/docs/api/alerts/list-applicable-alerts-for-a-subscription#status) has been added as query parameter to [`list_applicable_alerts_for_a_subscription`](https://apidocs.chargebee.com/docs/api/alerts/list-applicable-alerts-for-a-subscription) in [`Alert`](https://apidocs.chargebee.com/docs/api/alerts). +- [`type`](https://apidocs.chargebee.com/docs/api/alerts/list-applicable-alerts-for-a-subscription#type) has been added as query parameter to [`list_applicable_alerts_for_a_subscription`](https://apidocs.chargebee.com/docs/api/alerts/list-applicable-alerts-for-a-subscription) in [`Alert`](https://apidocs.chargebee.com/docs/api/alerts). +- [`limit`](https://apidocs.chargebee.com/docs/api/alerts/list-alerts#limit) has been added as query parameter to [`list_alerts`](https://apidocs.chargebee.com/docs/api/alerts/list-alerts) in [`Alert`](https://apidocs.chargebee.com/docs/api/alerts). +- [`offset`](https://apidocs.chargebee.com/docs/api/alerts/list-alerts#offset) has been added as query parameter to [`list_alerts`](https://apidocs.chargebee.com/docs/api/alerts/list-alerts) in [`Alert`](https://apidocs.chargebee.com/docs/api/alerts). +- [`id`](https://apidocs.chargebee.com/docs/api/alerts/list-alerts#id) has been added as query parameter to [`list_alerts`](https://apidocs.chargebee.com/docs/api/alerts/list-alerts) in [`Alert`](https://apidocs.chargebee.com/docs/api/alerts). +- [`type`](https://apidocs.chargebee.com/docs/api/alerts/list-alerts#type) has been added as query parameter to [`list_alerts`](https://apidocs.chargebee.com/docs/api/alerts/list-alerts) in [`Alert`](https://apidocs.chargebee.com/docs/api/alerts). +- [`subscription_id`](https://apidocs.chargebee.com/docs/api/alerts/list-alerts#subscription_id) has been added as query parameter to [`list_alerts`](https://apidocs.chargebee.com/docs/api/alerts/list-alerts) in [`Alert`](https://apidocs.chargebee.com/docs/api/alerts). +- [`status`](https://apidocs.chargebee.com/docs/api/alerts/list-alerts#status) has been added as query parameter to [`list_alerts`](https://apidocs.chargebee.com/docs/api/alerts/list-alerts) in [`Alert`](https://apidocs.chargebee.com/docs/api/alerts). +- [`limit`](https://apidocs.chargebee.com/docs/api/alert_statuses/list-alert-statuses-for-a-subscription#limit) has been added as query parameter to [`list_alert_statuses_for_a_subscription`](https://apidocs.chargebee.com/docs/api/alert_statuses/list-alert-statuses-for-a-subscription) in [`AlertStatus`](https://apidocs.chargebee.com/docs/api/alert_statuses). +- [`offset`](https://apidocs.chargebee.com/docs/api/alert_statuses/list-alert-statuses-for-a-subscription#offset) has been added as query parameter to [`list_alert_statuses_for_a_subscription`](https://apidocs.chargebee.com/docs/api/alert_statuses/list-alert-statuses-for-a-subscription) in [`AlertStatus`](https://apidocs.chargebee.com/docs/api/alert_statuses). +- [`alarm_status`](https://apidocs.chargebee.com/docs/api/alert_statuses/list-alert-statuses-for-a-subscription#alarm_status) has been added as query parameter to [`list_alert_statuses_for_a_subscription`](https://apidocs.chargebee.com/docs/api/alert_statuses/list-alert-statuses-for-a-subscription) in [`AlertStatus`](https://apidocs.chargebee.com/docs/api/alert_statuses). +- [`alert_id`](https://apidocs.chargebee.com/docs/api/alert_statuses/list-alert-statuses-for-a-subscription#alert_id) has been added as query parameter to [`list_alert_statuses_for_a_subscription`](https://apidocs.chargebee.com/docs/api/alert_statuses/list-alert-statuses-for-a-subscription) in [`AlertStatus`](https://apidocs.chargebee.com/docs/api/alert_statuses). +- [`limit`](https://apidocs.chargebee.com/docs/api/alert_statuses/list-alert-statuses-for-an-alert#limit) has been added as query parameter to [`list_alert_statuses_for_an_alert`](https://apidocs.chargebee.com/docs/api/alert_statuses/list-alert-statuses-for-an-alert) in [`AlertStatus`](https://apidocs.chargebee.com/docs/api/alert_statuses). +- [`offset`](https://apidocs.chargebee.com/docs/api/alert_statuses/list-alert-statuses-for-an-alert#offset) has been added as query parameter to [`list_alert_statuses_for_an_alert`](https://apidocs.chargebee.com/docs/api/alert_statuses/list-alert-statuses-for-an-alert) in [`AlertStatus`](https://apidocs.chargebee.com/docs/api/alert_statuses). +- [`alarm_status`](https://apidocs.chargebee.com/docs/api/alert_statuses/list-alert-statuses-for-an-alert#alarm_status) has been added as query parameter to [`list_alert_statuses_for_an_alert`](https://apidocs.chargebee.com/docs/api/alert_statuses/list-alert-statuses-for-an-alert) in [`AlertStatus`](https://apidocs.chargebee.com/docs/api/alert_statuses). +- [`exclude`](https://apidocs.chargebee.com/docs/api/invoices/list-invoices#exclude) has been added as query parameter to [`list_invoices`](https://apidocs.chargebee.com/docs/api/invoices/list-invoices) in [`Invoice`](https://apidocs.chargebee.com/docs/api/invoices). +- [`threshold`](https://apidocs.chargebee.com/docs/api/alerts/update-an-alert#threshold) has been added as request body parameter to [`update_an_alert`](https://apidocs.chargebee.com/docs/api/alerts/update-an-alert) in [`Alert`](https://apidocs.chargebee.com/docs/api/alerts). +- [`status`](https://apidocs.chargebee.com/docs/api/alerts/update-an-alert#status) has been added as request body parameter to [`update_an_alert`](https://apidocs.chargebee.com/docs/api/alerts/update-an-alert) in [`Alert`](https://apidocs.chargebee.com/docs/api/alerts). +- [`threshold`](https://apidocs.chargebee.com/docs/api/alerts/create-an-alert#threshold) has been added as request body parameter to [`create_an_alert`](https://apidocs.chargebee.com/docs/api/alerts/create-an-alert) in [`Alert`](https://apidocs.chargebee.com/docs/api/alerts). +- [`filter_conditions`](https://apidocs.chargebee.com/docs/api/alerts/create-an-alert#filter_conditions) has been added as request body parameter to [`create_an_alert`](https://apidocs.chargebee.com/docs/api/alerts/create-an-alert) in [`Alert`](https://apidocs.chargebee.com/docs/api/alerts). +- [`type`](https://apidocs.chargebee.com/docs/api/alerts/create-an-alert#type) has been added as request body parameter to [`create_an_alert`](https://apidocs.chargebee.com/docs/api/alerts/create-an-alert) in [`Alert`](https://apidocs.chargebee.com/docs/api/alerts). +- [`name`](https://apidocs.chargebee.com/docs/api/alerts/create-an-alert#name) has been added as request body parameter to [`create_an_alert`](https://apidocs.chargebee.com/docs/api/alerts/create-an-alert) in [`Alert`](https://apidocs.chargebee.com/docs/api/alerts). +- [`description`](https://apidocs.chargebee.com/docs/api/alerts/create-an-alert#description) has been added as request body parameter to [`create_an_alert`](https://apidocs.chargebee.com/docs/api/alerts/create-an-alert) in [`Alert`](https://apidocs.chargebee.com/docs/api/alerts). +- [`metered_feature_id`](https://apidocs.chargebee.com/docs/api/alerts/create-an-alert#metered_feature_id) has been added as request body parameter to [`create_an_alert`](https://apidocs.chargebee.com/docs/api/alerts/create-an-alert) in [`Alert`](https://apidocs.chargebee.com/docs/api/alerts). +- [`subscription_id`](https://apidocs.chargebee.com/docs/api/alerts/create-an-alert#subscription_id) has been added as request body parameter to [`create_an_alert`](https://apidocs.chargebee.com/docs/api/alerts/create-an-alert) in [`Alert`](https://apidocs.chargebee.com/docs/api/alerts). +- [`meta`](https://apidocs.chargebee.com/docs/api/alerts/create-an-alert#meta) has been added as request body parameter to [`create_an_alert`](https://apidocs.chargebee.com/docs/api/alerts/create-an-alert) in [`Alert`](https://apidocs.chargebee.com/docs/api/alerts). +- [`defer_payment_method_type`](https://apidocs.chargebee.com/docs/api/payment_intents/create-a-payment-intent#defer_payment_method_type) has been added as request body parameter to [`create_a_payment_intent`](https://apidocs.chargebee.com/docs/api/payment_intents/create-a-payment-intent) in [`PaymentIntent`](https://apidocs.chargebee.com/docs/api/payment_intents). +- [`net_term_days`](https://apidocs.chargebee.com/docs/api/quotes/edit-quote-for-charge-items-and-charges#net_term_days) has been added as request body parameter to [`edit_quote_for_charge_items_and_charges`](https://apidocs.chargebee.com/docs/api/quotes/edit-quote-for-charge-items-and-charges) in [`Quote`](https://apidocs.chargebee.com/docs/api/quotes). +- [`net_term_days`](https://apidocs.chargebee.com/docs/api/quotes/create-a-quote-for-charge-and-charge-items#net_term_days) has been added as request body parameter to [`create_a_quote_for_charge_and_charge_items`](https://apidocs.chargebee.com/docs/api/quotes/create-a-quote-for-charge-and-charge-items) in [`Quote`](https://apidocs.chargebee.com/docs/api/quotes). + + +### Deleted Attributes: +- `alarm_triggered_at` has been removed from [`Alert`](https://apidocs.chargebee.com/docs/api/alerts). +- `scope` has been removed from [`Alert`](https://apidocs.chargebee.com/docs/api/alerts). +- `alert_status` has been removed from [`AlertStatus`](https://apidocs.chargebee.com/docs/api/alert_statuses). + + +### New Enums: +- `within_limit` and `in_alarm` have been added as new values enum `AlarmStatus`. +- `moyasar` and `payway` have been added as new values enum `Gateway`. +- `absolute` and `percentage` have been added as new values enum `Mode`. +- `twint`, `go_pay`, `grab_pay`, `pay_co`, `after_pay`, `swish`, and `payme` have been added as new values enum `PaymentMethod`. +- `twint`, `go_pay`, `grab_pay`, `pay_co`, `after_pay`, `swish`, and `payme` have been added as new values enum `PaymentMethodType`. +- `twint`, `go_pay`, `grab_pay`, `pay_co`, `after_pay`, `swish`, and `payme` have been added as new values enum `Type`. +- `mada` has been added as a new value to enum attribute [`card_type`](https://apidocs.chargebee.com/docs/api/cards/card-object#card_type) in [`Card`](https://apidocs.chargebee.com/docs/api/cards). +- `rate_limited` has been added as a new value to enum attribute [`webhook_status`](https://apidocs.chargebee.com/docs/api/events/event-object#webhook_status) in [`Event`](https://apidocs.chargebee.com/docs/api/events). +- `twint`, `go_pay`, `grab_pay`, `pay_co`, `after_pay`, `swish`, and `payme` have been added as new values to enum attribute [`payment_method_type`](https://apidocs.chargebee.com/docs/api/payment_intents/payment-intent-object#payment_method_type) in [`PaymentIntent`](https://apidocs.chargebee.com/docs/api/payment_intents). +- `twint`, `go_pay`, `grab_pay`, `pay_co`, `after_pay`, `swish`, and `payme` have been added as new values to enum attribute [`active_payment_attempt.payment_method_type`](https://apidocs.chargebee.com/docs/api/payment_intents/payment-intent-object#active_payment_attempt_payment_method_type) in [`PaymentIntent`](https://apidocs.chargebee.com/docs/api/payment_intents). +- `mada` has been added as a new value to enum attribute [`card.brand`](https://apidocs.chargebee.com/docs/api/payment_sources/payment-source-object#card_brand) in [`PaymentSource`](https://apidocs.chargebee.com/docs/api/payment_sources). +- `plan_price`, `addon_price`, `charge_price`, and `charge` have been added as new values to enum attribute [`entity_type`](https://apidocs.chargebee.com/docs/api/quote_entitlements/quote-entitlement-object#entity_type) in [`QuoteEntitlement`](https://apidocs.chargebee.com/docs/api/quote_entitlements). +- `disabled` and `enabled` have been added as new values to enum query parameter `status.is` in [`list_applicable_alerts_for_a_subscription`](https://apidocs.chargebee.com/docs/api/alerts/list-applicable-alerts-for-a-subscription) of [`Alert`](https://apidocs.chargebee.com/docs/api/alerts). +- `enabled` and `disabled` have been added as new values to enum request body parameter `status` in [`update_an_alert`](https://apidocs.chargebee.com/docs/api/alerts/update-an-alert) of [`Alert`](https://apidocs.chargebee.com/docs/api/alerts). +- `disabled` and `enabled` have been added as new values to enum query parameter `status.is` in [`list_alerts`](https://apidocs.chargebee.com/docs/api/alerts/list-alerts) of [`Alert`](https://apidocs.chargebee.com/docs/api/alerts). +- `plan_price_id` has been added as a new value to enum request body parameter `filter_conditions.field` in [`create_an_alert`](https://apidocs.chargebee.com/docs/api/alerts/create-an-alert) of [`Alert`](https://apidocs.chargebee.com/docs/api/alerts). +- `not_equals` and `equals` have been added as new values to enum request body parameter `filter_conditions.operator` in [`create_an_alert`](https://apidocs.chargebee.com/docs/api/alerts/create-an-alert) of [`Alert`](https://apidocs.chargebee.com/docs/api/alerts). +- `rate_limited` has been added as a new value to enum query parameter `webhook_status.is` in [`list_events`](https://apidocs.chargebee.com/docs/api/events/list-events) of [`Event`](https://apidocs.chargebee.com/docs/api/events). +- `rate_limited` has been added as a new value to enum query parameter `webhook_status.is_not` in [`list_events`](https://apidocs.chargebee.com/docs/api/events/list-events) of [`Event`](https://apidocs.chargebee.com/docs/api/events). +- `rate_limited` has been added as a new value to enum query parameter `webhook_status.in` in [`list_events`](https://apidocs.chargebee.com/docs/api/events/list-events) of [`Event`](https://apidocs.chargebee.com/docs/api/events). +- `rate_limited` has been added as a new value to enum query parameter `webhook_status.not_in` in [`list_events`](https://apidocs.chargebee.com/docs/api/events/list-events) of [`Event`](https://apidocs.chargebee.com/docs/api/events). +- `twint`, `go_pay`, `grab_pay`, `pay_co`, `after_pay`, `swish`, and `payme` have been added as new values to enum request body parameter `payment_method_type` in [`update_a_payment_intent`](https://apidocs.chargebee.com/docs/api/payment_intents/update-a-payment-intent) of [`PaymentIntent`](https://apidocs.chargebee.com/docs/api/payment_intents). +- `twint`, `go_pay`, `grab_pay`, `pay_co`, `after_pay`, `swish`, and `payme` have been added as new values to enum request body parameter `payment_method_type` in [`create_a_payment_intent`](https://apidocs.chargebee.com/docs/api/payment_intents/create-a-payment-intent) of [`PaymentIntent`](https://apidocs.chargebee.com/docs/api/payment_intents). +- `mada` has been added as a new value to enum request body parameter `card.brand` in [`create_using_permanent_token`](https://apidocs.chargebee.com/docs/api/payment_sources/create-using-permanent-token) of [`PaymentSource`](https://apidocs.chargebee.com/docs/api/payment_sources). + + + ### v3.20.0 (2026-03-27) * * * ### New Resources: diff --git a/VERSION b/VERSION index eb9b76c..6075c9a 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -3.20.0 +3.21.0 diff --git a/chargebee/main.py b/chargebee/main.py index 89f4097..a38156f 100644 --- a/chargebee/main.py +++ b/chargebee/main.py @@ -71,6 +71,7 @@ def __init__( self.Event = chargebee.Event(self.env) self.Export = chargebee.Export(self.env) self.Feature = chargebee.Feature(self.env) + self.FilterCondition = chargebee.FilterCondition(self.env) self.GatewayErrorDetail = chargebee.GatewayErrorDetail(self.env) self.Gift = chargebee.Gift(self.env) self.Hierarchy = chargebee.Hierarchy(self.env) @@ -120,6 +121,7 @@ def __init__( self.PromotionalCredit = chargebee.PromotionalCredit(self.env) self.Purchase = chargebee.Purchase(self.env) self.Quote = chargebee.Quote(self.env) + self.QuoteEntitlement = chargebee.QuoteEntitlement(self.env) self.QuoteLineGroup = chargebee.QuoteLineGroup(self.env) self.QuotedCharge = chargebee.QuotedCharge(self.env) self.QuotedDeltaRamp = chargebee.QuotedDeltaRamp(self.env) diff --git a/chargebee/models/__init__.py b/chargebee/models/__init__.py index 08ac4f8..8d1f5b8 100644 --- a/chargebee/models/__init__.py +++ b/chargebee/models/__init__.py @@ -3,6 +3,7 @@ AccountReceivablesHandling, AccountType, Action, + AlarmStatus, ApiVersion, ApplyOn, AutoCollection, @@ -47,6 +48,7 @@ InvoiceDunningHandling, ItemType, Layout, + Mode, NotifyReferralSystem, OfflinePaymentMethod, OnEvent, @@ -88,7 +90,6 @@ VoucherType, WindowSize, ChargeOn, - AlertStatus, EnabledEvents, ) @@ -162,6 +163,8 @@ from chargebee.models.feature.operations import Feature +from chargebee.models.filter_condition.operations import FilterCondition + from chargebee.models.gateway_error_detail.operations import GatewayErrorDetail from chargebee.models.gift.operations import Gift @@ -256,6 +259,8 @@ from chargebee.models.quote.operations import Quote +from chargebee.models.quote_entitlement.operations import QuoteEntitlement + from chargebee.models.quote_line_group.operations import QuoteLineGroup from chargebee.models.quoted_charge.operations import QuotedCharge diff --git a/chargebee/models/alert/operations.py b/chargebee/models/alert/operations.py index 4b0ca83..4d7c469 100644 --- a/chargebee/models/alert/operations.py +++ b/chargebee/models/alert/operations.py @@ -2,6 +2,8 @@ from chargebee import request, environment from typing import TypedDict, Required, NotRequired, Dict, List, Any, cast from enum import Enum +from chargebee.filters import Filters +from chargebee.models import enums, filter_condition @dataclass @@ -15,11 +17,147 @@ class Status(Enum): def __str__(self): return self.value - class Scope(Enum): - GLOBAL = "global" - SUBSCRIPTION = "subscription" + class CreateThresholdParams(TypedDict): + mode: Required[enums.Mode] + value: Required[float] - def __str__(self): - return self.value + class CreateFilterConditionParams(TypedDict): + field: NotRequired["filter_condition.FilterCondition.Field"] + operator: NotRequired["filter_condition.FilterCondition.Operator"] + value: NotRequired[str] + + class UpdateThresholdParams(TypedDict): + mode: NotRequired[enums.Mode] + value: NotRequired[float] + + class CreateParams(TypedDict): + type: Required[enums.Type] + name: Required[str] + description: NotRequired[str] + metered_feature_id: Required[str] + subscription_id: NotRequired[str] + threshold: Required["Alert.CreateThresholdParams"] + meta: NotRequired[str] + filter_conditions: NotRequired[List["Alert.CreateFilterConditionParams"]] + + class ListParams(TypedDict): + limit: NotRequired[int] + offset: NotRequired[str] + id: NotRequired[Filters.StringFilter] + type: NotRequired[Filters.EnumFilter] + subscription_id: NotRequired[Filters.StringFilter] + status: NotRequired[Filters.EnumFilter] + + class UpdateParams(TypedDict): + threshold: NotRequired["Alert.UpdateThresholdParams"] + status: NotRequired["Alert.Status"] + + class ApplicationAlertsForSubscriptionParams(TypedDict): + limit: NotRequired[int] + offset: NotRequired[str] + status: NotRequired[Filters.EnumFilter] + type: NotRequired[Filters.EnumFilter] + + def create(self, params: CreateParams, headers=None) -> CreateResponse: + jsonKeys = {} + options = { + "isIdempotent": True, + } + return request.send( + "post", + request.uri_path("alerts"), + self.env, + cast(Dict[Any, Any], params), + headers, + CreateResponse, + None, + False, + jsonKeys, + options, + ) + + def retrieve(self, id, headers=None) -> RetrieveResponse: + jsonKeys = {} + options = {} + return request.send( + "get", + request.uri_path("alerts", id), + self.env, + None, + headers, + RetrieveResponse, + None, + False, + jsonKeys, + options, + ) + + def list(self, params: ListParams = None, headers=None) -> ListResponse: + jsonKeys = {} + options = {} + return request.send_list_request( + "get", + request.uri_path("alerts"), + self.env, + cast(Dict[Any, Any], params), + headers, + ListResponse, + None, + False, + jsonKeys, + options, + ) + + def update(self, id, params: UpdateParams = None, headers=None) -> UpdateResponse: + jsonKeys = {} + options = { + "isIdempotent": True, + } + return request.send( + "post", + request.uri_path("alerts", id), + self.env, + cast(Dict[Any, Any], params), + headers, + UpdateResponse, + None, + False, + jsonKeys, + options, + ) + + def delete(self, id, headers=None) -> DeleteResponse: + jsonKeys = {} + options = { + "isIdempotent": True, + } + return request.send( + "post", + request.uri_path("alerts", id, "delete"), + self.env, + None, + headers, + DeleteResponse, + None, + False, + jsonKeys, + options, + ) - pass + def application_alerts_for_subscription( + self, id, params: ApplicationAlertsForSubscriptionParams = None, headers=None + ) -> ApplicationAlertsForSubscriptionResponse: + jsonKeys = {} + options = {} + return request.send( + "get", + request.uri_path("subscriptions", id, "applicable_alerts"), + self.env, + cast(Dict[Any, Any], params), + headers, + ApplicationAlertsForSubscriptionResponse, + None, + False, + jsonKeys, + options, + ) diff --git a/chargebee/models/alert/responses.py b/chargebee/models/alert/responses.py index a33fd5f..3286f77 100644 --- a/chargebee/models/alert/responses.py +++ b/chargebee/models/alert/responses.py @@ -1,6 +1,8 @@ from dataclasses import dataclass from chargebee.model import Model from typing import Dict, List, Any +from chargebee.response import Response +from chargebee.models import filter_condition @dataclass @@ -13,8 +15,51 @@ class AlertResponse(Model): metered_feature_id: str = None subscription_id: str = None status: str = None - alarm_triggered_at: int = None - scope: str = None meta: str = None created_at: int = None updated_at: int = None + + +@dataclass +class CreateResponse(Response): + is_idempotency_replayed: bool + alert: AlertResponse + + +@dataclass +class RetrieveResponse(Response): + alert: AlertResponse + + +@dataclass +class ListAlertResponse: + alert: AlertResponse + + +@dataclass +class ListResponse(Response): + list: List[ListAlertResponse] + next_offset: str = None + + +@dataclass +class UpdateResponse(Response): + is_idempotency_replayed: bool + alert: AlertResponse + + +@dataclass +class DeleteResponse(Response): + is_idempotency_replayed: bool + alert: AlertResponse + + +@dataclass +class ApplicationAlertsForSubscriptionAlertResponse: + alert: AlertResponse + + +@dataclass +class ApplicationAlertsForSubscriptionResponse(Response): + list: List[ApplicationAlertsForSubscriptionAlertResponse] + next_offset: str = None diff --git a/chargebee/models/alert_status/operations.py b/chargebee/models/alert_status/operations.py index f4052a6..a79a4cf 100644 --- a/chargebee/models/alert_status/operations.py +++ b/chargebee/models/alert_status/operations.py @@ -1,10 +1,56 @@ from .responses import * from chargebee import request, environment from typing import TypedDict, Required, NotRequired, Dict, List, Any, cast +from chargebee.filters import Filters @dataclass class AlertStatus: env: environment.Environment - pass + class AlertStatusesForSubscriptionParams(TypedDict): + limit: NotRequired[int] + offset: NotRequired[str] + alarm_status: NotRequired[Filters.EnumFilter] + alert_id: NotRequired[Filters.StringFilter] + + class AlertStatusesForAlertParams(TypedDict): + limit: NotRequired[int] + offset: NotRequired[str] + alarm_status: NotRequired[Filters.EnumFilter] + + def alert_statuses_for_subscription( + self, id, params: AlertStatusesForSubscriptionParams = None, headers=None + ) -> AlertStatusesForSubscriptionResponse: + jsonKeys = {} + options = {} + return request.send( + "get", + request.uri_path("subscriptions", id, "alert_statuses"), + self.env, + cast(Dict[Any, Any], params), + headers, + AlertStatusesForSubscriptionResponse, + None, + False, + jsonKeys, + options, + ) + + def alert_statuses_for_alert( + self, id, params: AlertStatusesForAlertParams = None, headers=None + ) -> AlertStatusesForAlertResponse: + jsonKeys = {} + options = {} + return request.send( + "get", + request.uri_path("alerts", id, "alert_statuses"), + self.env, + cast(Dict[Any, Any], params), + headers, + AlertStatusesForAlertResponse, + None, + False, + jsonKeys, + options, + ) diff --git a/chargebee/models/alert_status/responses.py b/chargebee/models/alert_status/responses.py index d6d4212..cb72745 100644 --- a/chargebee/models/alert_status/responses.py +++ b/chargebee/models/alert_status/responses.py @@ -1,6 +1,7 @@ from dataclasses import dataclass from chargebee.model import Model from typing import Dict, List, Any +from chargebee.response import Response @dataclass @@ -8,5 +9,27 @@ class AlertStatusResponse(Model): raw_data: Dict[Any, Any] = None alert_id: str = None subscription_id: str = None - alert_status: str = None + alarm_status: str = None alarm_triggered_at: int = None + + +@dataclass +class AlertStatusesForSubscriptionAlertStatusResponse: + alert_status: AlertStatusResponse + + +@dataclass +class AlertStatusesForSubscriptionResponse(Response): + list: List[AlertStatusesForSubscriptionAlertStatusResponse] + next_offset: str = None + + +@dataclass +class AlertStatusesForAlertAlertStatusResponse: + alert_status: AlertStatusResponse + + +@dataclass +class AlertStatusesForAlertResponse(Response): + list: List[AlertStatusesForAlertAlertStatusResponse] + next_offset: str = None diff --git a/chargebee/models/card/operations.py b/chargebee/models/card/operations.py index 25d3e2e..a670a5d 100644 --- a/chargebee/models/card/operations.py +++ b/chargebee/models/card/operations.py @@ -46,6 +46,7 @@ class CardType(Enum): MAESTRO = "maestro" DANKORT = "dankort" CARTES_BANCAIRES = "cartes_bancaires" + MADA = "mada" OTHER = "other" NOT_APPLICABLE = "not_applicable" diff --git a/chargebee/models/enums.py b/chargebee/models/enums.py index f41470c..297f958 100644 --- a/chargebee/models/enums.py +++ b/chargebee/models/enums.py @@ -36,7 +36,7 @@ def __str__(self): return self.value -class AlertStatus(Enum): +class AlarmStatus(Enum): WITHIN_LIMIT = "within_limit" IN_ALARM = "in_alarm" @@ -638,6 +638,10 @@ class EntityType(Enum): PLAN_ITEM_PRICE = "plan_item_price" ADDON_ITEM_PRICE = "addon_item_price" CHARGE_ITEM_PRICE = "charge_item_price" + PLAN_PRICE = "plan_price" + ADDON_PRICE = "addon_price" + CHARGE_PRICE = "charge_price" + CHARGE = "charge" INVOICE = "invoice" QUOTE = "quote" CREDIT_NOTE = "credit_note" @@ -651,9 +655,6 @@ class EntityType(Enum): PLAN_ITEM = "plan_item" ADDON_ITEM = "addon_item" CHARGE_ITEM = "charge_item" - PLAN_PRICE = "plan_price" - ADDON_PRICE = "addon_price" - CHARGE_PRICE = "charge_price" DIFFERENTIAL_PRICE = "differential_price" ATTACHED_ITEM = "attached_item" FEATURE = "feature" @@ -675,7 +676,6 @@ class EntityType(Enum): BUSINESS_RULE = "business_rule" RULESET = "ruleset" ALERT_STATUS = "alert_status" - CHARGE = "charge" def __str__(self): return self.value @@ -1042,6 +1042,8 @@ class Gateway(Enum): EZIDEBIT = "ezidebit" TWIKEY = "twikey" TEMPUS = "tempus" + MOYASAR = "moyasar" + PAYWAY = "payway" GOCARDLESS = "gocardless" NOT_APPLICABLE = "not_applicable" @@ -1083,6 +1085,14 @@ def __str__(self): return self.value +class Mode(Enum): + ABSOLUTE = "absolute" + PERCENTAGE = "percentage" + + def __str__(self): + return self.value + + class NotifyReferralSystem(Enum): NONE = "none" FIRST_PAID_CONVERSION = "first_paid_conversion" @@ -1201,6 +1211,13 @@ class PaymentMethod(Enum): REVOLUT_PAY = "revolut_pay" CASH_APP_PAY = "cash_app_pay" PIX = "pix" + TWINT = "twint" + GO_PAY = "go_pay" + GRAB_PAY = "grab_pay" + PAY_CO = "pay_co" + AFTER_PAY = "after_pay" + SWISH = "swish" + PAYME = "payme" def __str__(self): return self.value @@ -1251,6 +1268,13 @@ class PaymentMethodType(Enum): REVOLUT_PAY = "revolut_pay" CASH_APP_PAY = "cash_app_pay" PIX = "pix" + TWINT = "twint" + GO_PAY = "go_pay" + GRAB_PAY = "grab_pay" + PAY_CO = "pay_co" + AFTER_PAY = "after_pay" + SWISH = "swish" + PAYME = "payme" def __str__(self): return self.value @@ -1509,6 +1533,13 @@ class Type(Enum): REVOLUT_PAY = "revolut_pay" CASH_APP_PAY = "cash_app_pay" PIX = "pix" + TWINT = "twint" + GO_PAY = "go_pay" + GRAB_PAY = "grab_pay" + PAY_CO = "pay_co" + AFTER_PAY = "after_pay" + SWISH = "swish" + PAYME = "payme" FREE_TRIAL = "free_trial" PAY_UP_FRONT = "pay_up_front" PAY_AS_YOU_GO = "pay_as_you_go" diff --git a/chargebee/models/event/operations.py b/chargebee/models/event/operations.py index c5c2e35..a4a56e6 100644 --- a/chargebee/models/event/operations.py +++ b/chargebee/models/event/operations.py @@ -20,6 +20,7 @@ class WebhookStatus(Enum): SKIPPED = "skipped" NOT_APPLICABLE = "not_applicable" DISABLED = "disabled" + RATE_LIMITED = "rate_limited" def __str__(self): return self.value @@ -33,6 +34,7 @@ class WebhookWebhookStatus(Enum): SKIPPED = "skipped" NOT_APPLICABLE = "not_applicable" DISABLED = "disabled" + RATE_LIMITED = "rate_limited" def __str__(self): return self.value diff --git a/chargebee/models/filter_condition/__init__.py b/chargebee/models/filter_condition/__init__.py new file mode 100644 index 0000000..23d31bb --- /dev/null +++ b/chargebee/models/filter_condition/__init__.py @@ -0,0 +1,2 @@ +from .operations import FilterCondition +from .responses import FilterConditionResponse diff --git a/chargebee/models/filter_condition/operations.py b/chargebee/models/filter_condition/operations.py new file mode 100644 index 0000000..9f7aab6 --- /dev/null +++ b/chargebee/models/filter_condition/operations.py @@ -0,0 +1,24 @@ +from .responses import * +from chargebee import request, environment +from typing import TypedDict, Required, NotRequired, Dict, List, Any, cast +from enum import Enum + + +@dataclass +class FilterCondition: + env: environment.Environment + + class Field(Enum): + PLAN_PRICE_ID = "plan_price_id" + + def __str__(self): + return self.value + + class Operator(Enum): + EQUALS = "equals" + NOT_EQUALS = "not_equals" + + def __str__(self): + return self.value + + pass diff --git a/chargebee/models/filter_condition/responses.py b/chargebee/models/filter_condition/responses.py new file mode 100644 index 0000000..831486e --- /dev/null +++ b/chargebee/models/filter_condition/responses.py @@ -0,0 +1,11 @@ +from dataclasses import dataclass +from chargebee.model import Model +from typing import Dict, List, Any + + +@dataclass +class FilterConditionResponse(Model): + raw_data: Dict[Any, Any] = None + field: str = None + operator: str = None + value: str = None diff --git a/chargebee/models/invoice/operations.py b/chargebee/models/invoice/operations.py index 1c78f70..c64ae78 100644 --- a/chargebee/models/invoice/operations.py +++ b/chargebee/models/invoice/operations.py @@ -1104,6 +1104,7 @@ class ListParams(TypedDict): voided_at: NotRequired[Filters.TimestampFilter] void_reason_code: NotRequired[Filters.StringFilter] sort_by: NotRequired[Filters.SortFilter] + exclude: NotRequired[Filters.StringFilter] class InvoicesForCustomerParams(TypedDict): limit: NotRequired[int] diff --git a/chargebee/models/payment_intent/operations.py b/chargebee/models/payment_intent/operations.py index b1c1a2f..6838630 100644 --- a/chargebee/models/payment_intent/operations.py +++ b/chargebee/models/payment_intent/operations.py @@ -53,6 +53,13 @@ class PaymentMethodType(Enum): WECHAT_PAY = "wechat_pay" ALIPAY = "alipay" PIX = "pix" + TWINT = "twint" + GO_PAY = "go_pay" + GRAB_PAY = "grab_pay" + PAY_CO = "pay_co" + AFTER_PAY = "after_pay" + SWISH = "swish" + PAYME = "payme" def __str__(self): return self.value @@ -112,6 +119,7 @@ class CreateParams(TypedDict): currency_code: Required[str] gateway_account_id: NotRequired[str] reference_id: NotRequired[str] + defer_payment_method_type: NotRequired[bool] payment_method_type: NotRequired["PaymentIntent.PaymentMethodType"] success_url: NotRequired[str] failure_url: NotRequired[str] diff --git a/chargebee/models/payment_source/operations.py b/chargebee/models/payment_source/operations.py index bd78782..27f2189 100644 --- a/chargebee/models/payment_source/operations.py +++ b/chargebee/models/payment_source/operations.py @@ -42,6 +42,7 @@ class CardBrand(Enum): MAESTRO = "maestro" DANKORT = "dankort" CARTES_BANCAIRES = "cartes_bancaires" + MADA = "mada" NOT_APPLICABLE = "not_applicable" def __str__(self): diff --git a/chargebee/models/quote/operations.py b/chargebee/models/quote/operations.py index 09241bc..51522b4 100644 --- a/chargebee/models/quote/operations.py +++ b/chargebee/models/quote/operations.py @@ -1359,6 +1359,7 @@ class CreateForChargeItemsAndChargesParams(TypedDict): billing_address: NotRequired[ "Quote.CreateForChargeItemsAndChargesBillingAddressParams" ] + net_term_days: NotRequired[int] shipping_address: NotRequired[ "Quote.CreateForChargeItemsAndChargesShippingAddressParams" ] @@ -1384,6 +1385,7 @@ class EditForChargeItemsAndChargesParams(TypedDict): billing_address: NotRequired[ "Quote.EditForChargeItemsAndChargesBillingAddressParams" ] + net_term_days: NotRequired[int] shipping_address: NotRequired[ "Quote.EditForChargeItemsAndChargesShippingAddressParams" ] diff --git a/chargebee/models/quote_entitlement/__init__.py b/chargebee/models/quote_entitlement/__init__.py new file mode 100644 index 0000000..b36f939 --- /dev/null +++ b/chargebee/models/quote_entitlement/__init__.py @@ -0,0 +1,2 @@ +from .operations import QuoteEntitlement +from .responses import QuoteEntitlementResponse diff --git a/chargebee/models/quote_entitlement/operations.py b/chargebee/models/quote_entitlement/operations.py new file mode 100644 index 0000000..b720386 --- /dev/null +++ b/chargebee/models/quote_entitlement/operations.py @@ -0,0 +1,20 @@ +from .responses import * +from chargebee import request, environment +from typing import TypedDict, Required, NotRequired, Dict, List, Any, cast +from enum import Enum + + +@dataclass +class QuoteEntitlement: + env: environment.Environment + + class EntityType(Enum): + PLAN_PRICE = "plan_price" + ADDON_PRICE = "addon_price" + CHARGE_PRICE = "charge_price" + CHARGE = "charge" + + def __str__(self): + return self.value + + pass diff --git a/chargebee/models/quote_entitlement/responses.py b/chargebee/models/quote_entitlement/responses.py new file mode 100644 index 0000000..3010f03 --- /dev/null +++ b/chargebee/models/quote_entitlement/responses.py @@ -0,0 +1,17 @@ +from dataclasses import dataclass +from chargebee.model import Model +from typing import Dict, List, Any + + +@dataclass +class QuoteEntitlementResponse(Model): + raw_data: Dict[Any, Any] = None + entity_id: str = None + entity_type: str = None + feature_id: str = None + value: str = None + is_enabled: bool = None + start_date: int = None + end_date: int = None + created_at: int = None + modified_at: int = None diff --git a/chargebee/models/virtual_bank_account/operations.py b/chargebee/models/virtual_bank_account/operations.py index 6aff2f2..bbd2d14 100644 --- a/chargebee/models/virtual_bank_account/operations.py +++ b/chargebee/models/virtual_bank_account/operations.py @@ -24,11 +24,13 @@ def __str__(self): class CreateUsingPermanentTokenParams(TypedDict): customer_id: Required[str] reference_id: Required[str] + gateway_account_id: NotRequired[str] scheme: NotRequired["VirtualBankAccount.Scheme"] class CreateParams(TypedDict): customer_id: Required[str] email: NotRequired[str] + gateway_account_id: NotRequired[str] scheme: NotRequired["VirtualBankAccount.Scheme"] class ListParams(TypedDict): diff --git a/chargebee/version.py b/chargebee/version.py index 070a245..6b71007 100644 --- a/chargebee/version.py +++ b/chargebee/version.py @@ -1 +1 @@ -VERSION = "3.20.0" +VERSION = "3.21.0"