diff --git a/CHANGELOG.md b/CHANGELOG.md index f95af378..6775dae7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,85 @@ +### v3.26.0 (2026-07-21) +* * * +### New Resources: +- [`AsyncResponse`](https://apidocs.chargebee.com/docs/api/async_responses) has been added. +- [`AsyncResponseList`](https://apidocs.chargebee.com/docs/api/async_response_lists) has been added. +- [`ColumnDefinition`](https://apidocs.chargebee.com/docs/api/column_definitions) has been added. +- [`Meter`](https://apidocs.chargebee.com/docs/api/meters) has been added. +- [`MeteredFeature`](https://apidocs.chargebee.com/docs/api/metered_features) has been added. + + +### New Attributes: +- [`currency_code`](https://apidocs.chargebee.com/docs/api/alerts/alert-object#currency_code) has been added to [`Alert`](https://apidocs.chargebee.com/docs/api/alerts). +- [`threshold`](https://apidocs.chargebee.com/docs/api/alerts/alert-object#threshold) has been added to [`Alert`](https://apidocs.chargebee.com/docs/api/alerts). +- [`filter_conditions`](https://apidocs.chargebee.com/docs/api/alerts/alert-object#filter_conditions) has been added to [`Alert`](https://apidocs.chargebee.com/docs/api/alerts). +- [`exchange_rates`](https://apidocs.chargebee.com/docs/api/credit_notes/credit-note-object#exchange_rates) has been added to [`CreditNote`](https://apidocs.chargebee.com/docs/api/credit_notes). +- [`metered`](https://apidocs.chargebee.com/docs/api/features/feature-object#metered) has been added to [`Feature`](https://apidocs.chargebee.com/docs/api/features). +- [`exchange_rates`](https://apidocs.chargebee.com/docs/api/invoices/invoice-object#exchange_rates) has been added to [`Invoice`](https://apidocs.chargebee.com/docs/api/invoices). +- [`payment_intent_metadata`](https://apidocs.chargebee.com/docs/api/payment_intents/payment-intent-object#payment_intent_metadata) has been added to [`PaymentIntent`](https://apidocs.chargebee.com/docs/api/payment_intents). + + +### New Parameters: +- [`metered`](https://apidocs.chargebee.com/docs/api/features/list-features#metered) has been added as query parameter to [`list_features`](https://apidocs.chargebee.com/docs/api/features/list-features) in [`Feature`](https://apidocs.chargebee.com/docs/api/features). +- [`decommissioned`](https://apidocs.chargebee.com/docs/api/subscriptions/list-subscriptions#decommissioned) has been added as query parameter to [`list_subscriptions`](https://apidocs.chargebee.com/docs/api/subscriptions/list-subscriptions) in [`Subscription`](https://apidocs.chargebee.com/docs/api/subscriptions). +- [`currency_code`](https://apidocs.chargebee.com/docs/api/alerts/create-an-alert#currency_code) 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). +- [`line_items.proration_mode`](https://apidocs.chargebee.com/docs/api/credit_notes/import-credit-note#line_items_proration_mode) has been added as request body parameter to [`import_credit_note`](https://apidocs.chargebee.com/docs/api/credit_notes/import-credit-note) in [`CreditNote`](https://apidocs.chargebee.com/docs/api/credit_notes). +- [`item_prices.description`](https://apidocs.chargebee.com/docs/api/estimates/create-invoice-for-items-estimate#item_prices_description) has been added as request body parameter to [`create_invoice_for_items_estimate`](https://apidocs.chargebee.com/docs/api/estimates/create-invoice-for-items-estimate) in [`Estimate`](https://apidocs.chargebee.com/docs/api/estimates). +- [`item_prices.entity_description`](https://apidocs.chargebee.com/docs/api/estimates/create-invoice-for-items-estimate#item_prices_entity_description) has been added as request body parameter to [`create_invoice_for_items_estimate`](https://apidocs.chargebee.com/docs/api/estimates/create-invoice-for-items-estimate) in [`Estimate`](https://apidocs.chargebee.com/docs/api/estimates). +- [`charges.entity_description`](https://apidocs.chargebee.com/docs/api/estimates/create-invoice-for-items-estimate#charges_entity_description) has been added as request body parameter to [`create_invoice_for_items_estimate`](https://apidocs.chargebee.com/docs/api/estimates/create-invoice-for-items-estimate) in [`Estimate`](https://apidocs.chargebee.com/docs/api/estimates). +- [`subscription.decommissioned`](https://apidocs.chargebee.com/docs/api/exports/export-subscriptions#subscription_decommissioned) has been added as request body parameter to [`export_subscriptions`](https://apidocs.chargebee.com/docs/api/exports/export-subscriptions) in [`Export`](https://apidocs.chargebee.com/docs/api/exports). +- [`item_prices.description`](https://apidocs.chargebee.com/docs/api/invoices/create-invoice-for-items-and-one-time-charges#item_prices_description) has been added as request body parameter to [`create_invoice_for_items_and_one-time_charges`](https://apidocs.chargebee.com/docs/api/invoices/create-invoice-for-items-and-one-time-charges) in [`Invoice`](https://apidocs.chargebee.com/docs/api/invoices). +- [`item_prices.entity_description`](https://apidocs.chargebee.com/docs/api/invoices/create-invoice-for-items-and-one-time-charges#item_prices_entity_description) has been added as request body parameter to [`create_invoice_for_items_and_one-time_charges`](https://apidocs.chargebee.com/docs/api/invoices/create-invoice-for-items-and-one-time-charges) in [`Invoice`](https://apidocs.chargebee.com/docs/api/invoices). +- [`charges.entity_description`](https://apidocs.chargebee.com/docs/api/invoices/create-invoice-for-items-and-one-time-charges#charges_entity_description) has been added as request body parameter to [`create_invoice_for_items_and_one-time_charges`](https://apidocs.chargebee.com/docs/api/invoices/create-invoice-for-items-and-one-time-charges) in [`Invoice`](https://apidocs.chargebee.com/docs/api/invoices). +- [`create_pending_invoice`](https://apidocs.chargebee.com/docs/api/invoices/create-invoice-for-items-and-one-time-charges#create_pending_invoice) has been added as request body parameter to [`create_invoice_for_items_and_one-time_charges`](https://apidocs.chargebee.com/docs/api/invoices/create-invoice-for-items-and-one-time-charges) in [`Invoice`](https://apidocs.chargebee.com/docs/api/invoices). +- [`line_items.proration_mode`](https://apidocs.chargebee.com/docs/api/invoices/import-invoice#line_items_proration_mode) has been added as request body parameter to [`import_invoice`](https://apidocs.chargebee.com/docs/api/invoices/import-invoice) in [`Invoice`](https://apidocs.chargebee.com/docs/api/invoices). +- [`paid_at`](https://apidocs.chargebee.com/docs/api/invoices/import-invoice#paid_at) has been added as request body parameter to [`import_invoice`](https://apidocs.chargebee.com/docs/api/invoices/import-invoice) in [`Invoice`](https://apidocs.chargebee.com/docs/api/invoices). +- [`discounts_to_add.quantity`](https://apidocs.chargebee.com/docs/api/ramps/create-a-ramp#discounts_to_add_quantity) has been added as request body parameter to [`create_a_ramp`](https://apidocs.chargebee.com/docs/api/ramps/create-a-ramp) in [`Ramp`](https://apidocs.chargebee.com/docs/api/ramps). +- [`discounts_to_add.quantity`](https://apidocs.chargebee.com/docs/api/ramps/update-a-subscription-ramp#discounts_to_add_quantity) has been added as request body parameter to [`update_a_subscription_ramp`](https://apidocs.chargebee.com/docs/api/ramps/update-a-subscription-ramp) in [`Ramp`](https://apidocs.chargebee.com/docs/api/ramps). +- [`customer.email`](https://apidocs.chargebee.com/docs/api/recorded_purchases/record-a-purchase#customer_email) has been added as request body parameter to [`record_a_purchase`](https://apidocs.chargebee.com/docs/api/recorded_purchases/record-a-purchase) in [`RecordedPurchase`](https://apidocs.chargebee.com/docs/api/recorded_purchases). +- [`customer.first_name`](https://apidocs.chargebee.com/docs/api/recorded_purchases/record-a-purchase#customer_first_name) has been added as request body parameter to [`record_a_purchase`](https://apidocs.chargebee.com/docs/api/recorded_purchases/record-a-purchase) in [`RecordedPurchase`](https://apidocs.chargebee.com/docs/api/recorded_purchases). +- [`customer.last_name`](https://apidocs.chargebee.com/docs/api/recorded_purchases/record-a-purchase#customer_last_name) has been added as request body parameter to [`record_a_purchase`](https://apidocs.chargebee.com/docs/api/recorded_purchases/record-a-purchase) in [`RecordedPurchase`](https://apidocs.chargebee.com/docs/api/recorded_purchases). + + +### Parameter Updates: +- [`metered_feature_id`](https://apidocs.chargebee.com/docs/api/alerts/create-an-alert#metered_feature_id) has been changed from required to optional in [`create_an_alert`](https://apidocs.chargebee.com/docs/api/alerts/create-an-alert) of [`Alert`](https://apidocs.chargebee.com/docs/api/alerts). + + +### New Events: +- [`payment_source_business_entity_changed`](https://apidocs.chargebee.com/docs/api/events/webhook/payment_source_business_entity_changed) has been added. + + +### Deleted Attributes: +- `start_balance` has been removed from [`LedgerOperation`](https://apidocs.chargebee.com/docs/api/ledger_operations). +- `end_balance` has been removed from [`LedgerOperation`](https://apidocs.chargebee.com/docs/api/ledger_operations). + + +### New Enums: +- `real_time_payments` has been added as a new value enum `DunningType`. +- `payment_source_business_entity_changed` has been added as a new value enum `EventType`. +- `paynow`, `bizum`, and `promptpay` have been added as new values enum `PaymentMethod`. +- `paynow`, `bizum`, and `promptpay` have been added as new values enum `PaymentMethodType`. +- `active`, `archived`, and `deleted` have been added as new values enum `Status`. +- `zero_rated`, `region_non_taxable`, `product_exempt`, `high_value_physical_goods`, `zero_value_item`, and `tax_not_configured_external_provider` have been added as new values enum `TaxOverrideReason`. +- `paynow`, `bizum`, `promptpay`, `simple`, `compound`, and `spend_exceeded` have been added as new values enum `Type`. +- `success` and `failed` have been added as new values to enum attribute [`status`](https://apidocs.chargebee.com/docs/api/async_responses/async-response-object#status) in [`AsyncResponse`](https://apidocs.chargebee.com/docs/api/async_responses). +- `number` and `string` have been added as new values to enum attribute [`data_type`](https://apidocs.chargebee.com/docs/api/column_definitions/column-definition-object#data_type) in [`ColumnDefinition`](https://apidocs.chargebee.com/docs/api/column_definitions). +- `simple` and `compound` have been added as new values to enum attribute [`type`](https://apidocs.chargebee.com/docs/api/meters/meter-object#type) in [`Meter`](https://apidocs.chargebee.com/docs/api/meters). +- `active`, `archived`, and `deleted` have been added as new values to enum attribute [`status`](https://apidocs.chargebee.com/docs/api/meters/meter-object#status) in [`Meter`](https://apidocs.chargebee.com/docs/api/meters). +- `paynow`, `bizum`, and `promptpay` 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). +- `paynow`, `bizum`, and `promptpay` 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). +- `cb_js`, `components_fields`, `checkout_v3`, `paynow_v3`, `portal_v3`, `gift_v3`, `checkout_v4`, `payment_component`, `pc_inapp_v4`, and `pc_fpc_v4` have been added as new values to enum attribute [`payment_intent_metadata.source`](https://apidocs.chargebee.com/docs/api/payment_intents/payment-intent-object#payment_intent_metadata_source) in [`PaymentIntent`](https://apidocs.chargebee.com/docs/api/payment_intents). +- `adjusted_term`, `service_period_revision`, `delta`, and `reset` have been added as new values to enum request body parameter `line_items.proration_mode` in [`import_credit_note`](https://apidocs.chargebee.com/docs/api/credit_notes/import-credit-note) of [`CreditNote`](https://apidocs.chargebee.com/docs/api/credit_notes). +- `true` and `false` have been added as new values to enum query parameter `metered.is` in [`list_features`](https://apidocs.chargebee.com/docs/api/features/list-features) of [`Feature`](https://apidocs.chargebee.com/docs/api/features). +- `adjusted_term`, `service_period_revision`, `delta`, and `reset` have been added as new values to enum request body parameter `line_items.proration_mode` in [`import_invoice`](https://apidocs.chargebee.com/docs/api/invoices/import-invoice) of [`Invoice`](https://apidocs.chargebee.com/docs/api/invoices). +- `updated_at`, `name`, `created_at`, and `id` have been added as new values to enum query parameter `sort_by.asc` in [`list_all_available_meters`](https://apidocs.chargebee.com/docs/api/meters/list-all-available-meters) of [`Meter`](https://apidocs.chargebee.com/docs/api/meters). +- `updated_at`, `name`, `created_at`, and `id` have been added as new values to enum query parameter `sort_by.desc` in [`list_all_available_meters`](https://apidocs.chargebee.com/docs/api/meters/list-all-available-meters) of [`Meter`](https://apidocs.chargebee.com/docs/api/meters). +- `number` and `string` have been added as new values to enum request body parameter `column_definitions.data_type` in [`create_a_metered_feature`](https://apidocs.chargebee.com/docs/api/metered_features/create-a-metered-feature) of [`MeteredFeature`](https://apidocs.chargebee.com/docs/api/metered_features). +- `paynow`, `bizum`, and `promptpay` 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). +- `paynow`, `bizum`, and `promptpay` 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). +- `true` and `false` have been added as new values to enum query parameter `decommissioned.is` in [`list_subscriptions`](https://apidocs.chargebee.com/docs/api/subscriptions/list-subscriptions) of [`Subscription`](https://apidocs.chargebee.com/docs/api/subscriptions). + + + ### v3.25.0 (2026-07-01) * * * diff --git a/VERSION b/VERSION index 09144431..419ede3b 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -3.25.0 +3.26.0 diff --git a/chargebee/main.py b/chargebee/main.py index cfe4d755..16d11678 100644 --- a/chargebee/main.py +++ b/chargebee/main.py @@ -44,6 +44,8 @@ def __init__( self.AdvanceInvoiceSchedule = chargebee.AdvanceInvoiceSchedule(self.env) self.Alert = chargebee.Alert(self.env) self.AlertStatus = chargebee.AlertStatus(self.env) + self.AsyncResponse = chargebee.AsyncResponse(self.env) + self.AsyncResponseList = chargebee.AsyncResponseList(self.env) self.AttachedItem = chargebee.AttachedItem(self.env) self.Attribute = chargebee.Attribute(self.env) self.BillingConfiguration = chargebee.BillingConfiguration(self.env) @@ -51,6 +53,7 @@ def __init__( self.BusinessEntity = chargebee.BusinessEntity(self.env) self.BusinessEntityTransfer = chargebee.BusinessEntityTransfer(self.env) self.Card = chargebee.Card(self.env) + self.ColumnDefinition = chargebee.ColumnDefinition(self.env) self.Comment = chargebee.Comment(self.env) self.Configuration = chargebee.Configuration(self.env) self.Contact = chargebee.Contact(self.env) @@ -94,6 +97,8 @@ def __init__( self.LedgerAccountBalance = chargebee.LedgerAccountBalance(self.env) self.LedgerOperation = chargebee.LedgerOperation(self.env) self.Metadata = chargebee.Metadata(self.env) + self.Meter = chargebee.Meter(self.env) + self.MeteredFeature = chargebee.MeteredFeature(self.env) self.OfferEvent = chargebee.OfferEvent(self.env) self.OfferFulfillment = chargebee.OfferFulfillment(self.env) self.OmnichannelOneTimeOrder = chargebee.OmnichannelOneTimeOrder(self.env) diff --git a/chargebee/models/__init__.py b/chargebee/models/__init__.py index 406be16b..4d44ad46 100644 --- a/chargebee/models/__init__.py +++ b/chargebee/models/__init__.py @@ -104,6 +104,10 @@ from chargebee.models.alert_status.operations import AlertStatus +from chargebee.models.async_response.operations import AsyncResponse + +from chargebee.models.async_response_list.operations import AsyncResponseList + from chargebee.models.attached_item.operations import AttachedItem from chargebee.models.attribute.operations import Attribute @@ -118,6 +122,8 @@ from chargebee.models.card.operations import Card +from chargebee.models.column_definition.operations import ColumnDefinition + from chargebee.models.comment.operations import Comment from chargebee.models.configuration.operations import Configuration @@ -204,6 +210,10 @@ from chargebee.models.metadata.operations import Metadata +from chargebee.models.meter.operations import Meter + +from chargebee.models.metered_feature.operations import MeteredFeature + from chargebee.models.offer_event.operations import OfferEvent from chargebee.models.offer_fulfillment.operations import OfferFulfillment diff --git a/chargebee/models/addon/operations.py b/chargebee/models/addon/operations.py index 5b13071f..a3c707fc 100644 --- a/chargebee/models/addon/operations.py +++ b/chargebee/models/addon/operations.py @@ -8,7 +8,6 @@ @dataclass class Addon: - env: environment.Environment class Type(Enum): diff --git a/chargebee/models/address/operations.py b/chargebee/models/address/operations.py index f462dae2..e648070f 100644 --- a/chargebee/models/address/operations.py +++ b/chargebee/models/address/operations.py @@ -6,7 +6,6 @@ @dataclass class Address: - env: environment.Environment class RetrieveParams(TypedDict): diff --git a/chargebee/models/alert/operations.py b/chargebee/models/alert/operations.py index f27b3453..98c2031c 100644 --- a/chargebee/models/alert/operations.py +++ b/chargebee/models/alert/operations.py @@ -3,7 +3,7 @@ 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 +from chargebee.models import enums @dataclass @@ -17,13 +17,35 @@ class Status(Enum): def __str__(self): return self.value - class CreateThresholdParams(TypedDict): + class FilterConditionField(Enum): + PLAN_PRICE_ID = "plan_price_id" + + def __str__(self): + return self.value + + class FilterConditionOperator(Enum): + EQUALS = "equals" + NOT_EQUALS = "not_equals" + + def __str__(self): + return self.value + + class Threshold(TypedDict): mode: Required[enums.Mode] value: Required[float] + class FilterCondition(TypedDict): + field: Required["Alert.FilterConditionField"] + operator: Required["Alert.FilterConditionOperator"] + value: Required[str] + + class CreateThresholdParams(TypedDict): + mode: NotRequired[enums.Mode] + value: Required[float] + class CreateFilterConditionParams(TypedDict): - field: NotRequired["filter_condition.FilterCondition.Field"] - operator: NotRequired["filter_condition.FilterCondition.Operator"] + field: NotRequired["Alert.FilterConditionField"] + operator: NotRequired["Alert.FilterConditionOperator"] value: NotRequired[str] class UpdateThresholdParams(TypedDict): @@ -34,7 +56,8 @@ class CreateParams(TypedDict): type: Required[enums.Type] name: Required[str] description: NotRequired[str] - metered_feature_id: Required[str] + metered_feature_id: NotRequired[str] + currency_code: NotRequired[str] subscription_id: NotRequired[str] threshold: NotRequired["Alert.CreateThresholdParams"] meta: NotRequired[str] diff --git a/chargebee/models/alert/responses.py b/chargebee/models/alert/responses.py index 3286f771..3def7ec9 100644 --- a/chargebee/models/alert/responses.py +++ b/chargebee/models/alert/responses.py @@ -2,7 +2,21 @@ from chargebee.model import Model from typing import Dict, List, Any from chargebee.response import Response -from chargebee.models import filter_condition + + +@dataclass +class ThresholdResponse(Model): + raw_data: Dict[Any, Any] = None + mode: str = None + value: float = None + + +@dataclass +class FilterConditionResponse(Model): + raw_data: Dict[Any, Any] = None + field: str = None + operator: str = None + value: str = None @dataclass @@ -13,11 +27,14 @@ class AlertResponse(Model): name: str = None description: str = None metered_feature_id: str = None + currency_code: str = None subscription_id: str = None status: str = None meta: str = None created_at: int = None updated_at: int = None + threshold: List[ThresholdResponse] = None + filter_conditions: List[FilterConditionResponse] = None @dataclass diff --git a/chargebee/models/alert_status/operations.py b/chargebee/models/alert_status/operations.py index 528f053e..9e34e93d 100644 --- a/chargebee/models/alert_status/operations.py +++ b/chargebee/models/alert_status/operations.py @@ -36,7 +36,7 @@ def alert_statuses_for_subscription( jsonKeys, options, resource="alertStatus", - operation="alertStatusesForSubscription", + operation="alert_statusesForSubscription", ) def alert_statuses_for_alert( @@ -56,5 +56,5 @@ def alert_statuses_for_alert( jsonKeys, options, resource="alertStatus", - operation="alertStatusesForAlert", + operation="alert_statusesForAlert", ) diff --git a/chargebee/models/async_response/__init__.py b/chargebee/models/async_response/__init__.py new file mode 100644 index 00000000..df8e9ded --- /dev/null +++ b/chargebee/models/async_response/__init__.py @@ -0,0 +1,2 @@ +from .operations import AsyncResponse +from .responses import AsyncResponseResponse diff --git a/chargebee/models/async_response/operations.py b/chargebee/models/async_response/operations.py new file mode 100644 index 00000000..39cc0ce9 --- /dev/null +++ b/chargebee/models/async_response/operations.py @@ -0,0 +1,34 @@ +from .responses import * +from chargebee import request, environment +from typing import TypedDict, Required, NotRequired, Dict, List, Any, cast +from enum import Enum + + +@dataclass +class AsyncResponse: + env: environment.Environment + + class Status(Enum): + SUCCESS = "success" + FAILED = "failed" + + def __str__(self): + return self.value + + class RequestAsyncApi(TypedDict): + id: Required[str] + resource: NotRequired[str] + operation_type: NotRequired[str] + method: NotRequired[str] + uri: NotRequired[str] + idempotency_key: NotRequired[str] + + class Error(TypedDict): + message: NotRequired[str] + type: NotRequired[str] + api_error_code: NotRequired[str] + error_code: NotRequired[str] + error_msg: NotRequired[str] + http_status_code: NotRequired[str] + + pass diff --git a/chargebee/models/async_response/responses.py b/chargebee/models/async_response/responses.py new file mode 100644 index 00000000..913c0746 --- /dev/null +++ b/chargebee/models/async_response/responses.py @@ -0,0 +1,37 @@ +from dataclasses import dataclass +from chargebee.model import Model +from typing import Dict, List, Any + + +@dataclass +class RequestAsyncApiResponse(Model): + raw_data: Dict[Any, Any] = None + id: str = None + resource: str = None + operation_type: str = None + method: str = None + uri: str = None + idempotency_key: str = None + + +@dataclass +class ErrorResponse(Model): + raw_data: Dict[Any, Any] = None + message: str = None + type: str = None + api_error_code: str = None + error_code: str = None + error_msg: str = None + http_status_code: str = None + + +@dataclass +class AsyncResponseResponse(Model): + raw_data: Dict[Any, Any] = None + api_version: str = None + created_at: int = None + completed_at: int = None + status: str = None + request: RequestAsyncApiResponse = None + error_detail: ErrorResponse = None + result: Dict[Any, Any] = None diff --git a/chargebee/models/async_response_list/__init__.py b/chargebee/models/async_response_list/__init__.py new file mode 100644 index 00000000..2fb96880 --- /dev/null +++ b/chargebee/models/async_response_list/__init__.py @@ -0,0 +1,2 @@ +from .operations import AsyncResponseList +from .responses import AsyncResponseListResponse diff --git a/chargebee/models/async_response_list/operations.py b/chargebee/models/async_response_list/operations.py new file mode 100644 index 00000000..e28141af --- /dev/null +++ b/chargebee/models/async_response_list/operations.py @@ -0,0 +1,19 @@ +from .responses import * +from chargebee import request, environment +from typing import TypedDict, Required, NotRequired, Dict, List, Any, cast +from enum import Enum +from chargebee.models import async_response + + +@dataclass +class AsyncResponseList: + env: environment.Environment + + class AsyncResponseStatus(Enum): + SUCCESS = "success" + FAILED = "failed" + + def __str__(self): + return self.value + + pass diff --git a/chargebee/models/async_response_list/responses.py b/chargebee/models/async_response_list/responses.py new file mode 100644 index 00000000..f51430bc --- /dev/null +++ b/chargebee/models/async_response_list/responses.py @@ -0,0 +1,10 @@ +from dataclasses import dataclass +from chargebee.model import Model +from typing import Dict, List, Any +from chargebee.models import async_response + + +@dataclass +class AsyncResponseListResponse(Model): + raw_data: Dict[Any, Any] = None + list: List["async_response.AsyncResponseResponse"] = None diff --git a/chargebee/models/attached_item/operations.py b/chargebee/models/attached_item/operations.py index 747e643d..279207bf 100644 --- a/chargebee/models/attached_item/operations.py +++ b/chargebee/models/attached_item/operations.py @@ -8,7 +8,6 @@ @dataclass class AttachedItem: - env: environment.Environment class Type(Enum): diff --git a/chargebee/models/business_entity/operations.py b/chargebee/models/business_entity/operations.py index b9018375..0e546928 100644 --- a/chargebee/models/business_entity/operations.py +++ b/chargebee/models/business_entity/operations.py @@ -7,7 +7,6 @@ @dataclass class BusinessEntity: - env: environment.Environment class Status(Enum): diff --git a/chargebee/models/card/operations.py b/chargebee/models/card/operations.py index 7a5ba9c8..4494378c 100644 --- a/chargebee/models/card/operations.py +++ b/chargebee/models/card/operations.py @@ -7,7 +7,6 @@ @dataclass class Card: - env: environment.Environment class PreferredScheme(Enum): diff --git a/chargebee/models/column_definition/__init__.py b/chargebee/models/column_definition/__init__.py new file mode 100644 index 00000000..28eb8360 --- /dev/null +++ b/chargebee/models/column_definition/__init__.py @@ -0,0 +1,2 @@ +from .operations import ColumnDefinition +from .responses import ColumnDefinitionResponse diff --git a/chargebee/models/column_definition/operations.py b/chargebee/models/column_definition/operations.py new file mode 100644 index 00000000..ba13881f --- /dev/null +++ b/chargebee/models/column_definition/operations.py @@ -0,0 +1,18 @@ +from .responses import * +from chargebee import request, environment +from typing import TypedDict, Required, NotRequired, Dict, List, Any, cast +from enum import Enum + + +@dataclass +class ColumnDefinition: + env: environment.Environment + + class DataType(Enum): + NUMBER = "number" + STRING = "string" + + def __str__(self): + return self.value + + pass diff --git a/chargebee/models/column_definition/responses.py b/chargebee/models/column_definition/responses.py new file mode 100644 index 00000000..38c03b76 --- /dev/null +++ b/chargebee/models/column_definition/responses.py @@ -0,0 +1,10 @@ +from dataclasses import dataclass +from chargebee.model import Model +from typing import Dict, List, Any + + +@dataclass +class ColumnDefinitionResponse(Model): + raw_data: Dict[Any, Any] = None + column_name: str = None + data_type: str = None diff --git a/chargebee/models/comment/operations.py b/chargebee/models/comment/operations.py index c21b7b7c..41802836 100644 --- a/chargebee/models/comment/operations.py +++ b/chargebee/models/comment/operations.py @@ -8,7 +8,6 @@ @dataclass class Comment: - env: environment.Environment class Type(Enum): diff --git a/chargebee/models/configuration/operations.py b/chargebee/models/configuration/operations.py index 32d38b5e..1469252d 100644 --- a/chargebee/models/configuration/operations.py +++ b/chargebee/models/configuration/operations.py @@ -5,7 +5,6 @@ @dataclass class Configuration: - env: environment.Environment def list(self, headers=None) -> ListResponse: diff --git a/chargebee/models/coupon/operations.py b/chargebee/models/coupon/operations.py index a33593c6..6a01217f 100644 --- a/chargebee/models/coupon/operations.py +++ b/chargebee/models/coupon/operations.py @@ -8,7 +8,6 @@ @dataclass class Coupon: - env: environment.Environment class DiscountType(Enum): diff --git a/chargebee/models/coupon_code/operations.py b/chargebee/models/coupon_code/operations.py index 1b05a21f..dea7c2c0 100644 --- a/chargebee/models/coupon_code/operations.py +++ b/chargebee/models/coupon_code/operations.py @@ -7,7 +7,6 @@ @dataclass class CouponCode: - env: environment.Environment class Status(Enum): diff --git a/chargebee/models/coupon_set/operations.py b/chargebee/models/coupon_set/operations.py index f5ca69b4..96e36406 100644 --- a/chargebee/models/coupon_set/operations.py +++ b/chargebee/models/coupon_set/operations.py @@ -6,7 +6,6 @@ @dataclass class CouponSet: - env: environment.Environment class CreateParams(TypedDict): diff --git a/chargebee/models/credit_note/operations.py b/chargebee/models/credit_note/operations.py index 5b1817cb..3b388978 100644 --- a/chargebee/models/credit_note/operations.py +++ b/chargebee/models/credit_note/operations.py @@ -8,7 +8,6 @@ @dataclass class CreditNote: - env: environment.Environment class Type(Enum): @@ -57,6 +56,15 @@ class LineItemEntityType(Enum): def __str__(self): return self.value + class LineItemProrationMode(Enum): + RESET = "reset" + DELTA = "delta" + SERVICE_PERIOD_REVISION = "service_period_revision" + ADJUSTED_TERM = "adjusted_term" + + def __str__(self): + return self.value + class LineItemDiscountDiscountType(Enum): ITEM_LEVEL_COUPON = "item_level_coupon" DOCUMENT_LEVEL_COUPON = "document_level_coupon" @@ -137,6 +145,7 @@ class LineItem(TypedDict): tax_exempt_reason: NotRequired[enums.TaxExemptReason] entity_id: NotRequired[str] customer_id: NotRequired[str] + proration_mode: NotRequired["CreditNote.LineItemProrationMode"] class LineItemTier(TypedDict): line_item_id: NotRequired[str] @@ -227,6 +236,10 @@ class Allocation(TypedDict): invoice_status: Required["invoice.Invoice.Status"] tax_application: NotRequired["CreditNote.AppliedCreditTaxApplication"] + class ExchangeRate(TypedDict): + currency_code: Required[str] + rate: Required[float] + class ShippingAddress(TypedDict): first_name: NotRequired[str] last_name: NotRequired[str] @@ -341,6 +354,7 @@ class ImportCreditNoteLineItemParams(TypedDict): tax9_amount: NotRequired[int] tax10_name: NotRequired[str] tax10_amount: NotRequired[int] + proration_mode: NotRequired["CreditNote.LineItemProrationMode"] class ImportCreditNoteLineItemTierParams(TypedDict): line_item_id: Required[str] diff --git a/chargebee/models/credit_note/responses.py b/chargebee/models/credit_note/responses.py index 22c35abb..06bda953 100644 --- a/chargebee/models/credit_note/responses.py +++ b/chargebee/models/credit_note/responses.py @@ -33,6 +33,7 @@ class LineItemResponse(Model): tax_exempt_reason: str = None entity_id: str = None customer_id: str = None + proration_mode: str = None @dataclass @@ -151,6 +152,13 @@ class AllocationResponse(Model): tax_application: str = None +@dataclass +class ExchangeRateResponse(Model): + raw_data: Dict[Any, Any] = None + currency_code: str = None + rate: float = None + + @dataclass class ShippingAddressResponse(Model): raw_data: Dict[Any, Any] = None @@ -252,6 +260,7 @@ class CreditNoteResponse(Model): deleted: bool = None tax_category: str = None local_currency_exchange_rate: float = None + exchange_rates: List[ExchangeRateResponse] = None create_reason_code: str = None vat_number_prefix: str = None business_entity_id: str = None diff --git a/chargebee/models/credit_note_estimate/operations.py b/chargebee/models/credit_note_estimate/operations.py index 4247cca8..ad028fed 100644 --- a/chargebee/models/credit_note_estimate/operations.py +++ b/chargebee/models/credit_note_estimate/operations.py @@ -29,6 +29,15 @@ class LineItemEntityType(Enum): def __str__(self): return self.value + class LineItemProrationMode(Enum): + RESET = "reset" + DELTA = "delta" + SERVICE_PERIOD_REVISION = "service_period_revision" + ADJUSTED_TERM = "adjusted_term" + + def __str__(self): + return self.value + class LineItemDiscountDiscountType(Enum): ITEM_LEVEL_COUPON = "item_level_coupon" DOCUMENT_LEVEL_COUPON = "document_level_coupon" @@ -84,6 +93,7 @@ class LineItem(TypedDict): tax_exempt_reason: NotRequired[enums.TaxExemptReason] entity_id: NotRequired[str] customer_id: NotRequired[str] + proration_mode: NotRequired["CreditNoteEstimate.LineItemProrationMode"] class LineItemTier(TypedDict): line_item_id: NotRequired[str] diff --git a/chargebee/models/credit_note_estimate/responses.py b/chargebee/models/credit_note_estimate/responses.py index 15b56082..0acf6927 100644 --- a/chargebee/models/credit_note_estimate/responses.py +++ b/chargebee/models/credit_note_estimate/responses.py @@ -31,6 +31,7 @@ class LineItemResponse(Model): tax_exempt_reason: str = None entity_id: str = None customer_id: str = None + proration_mode: str = None @dataclass diff --git a/chargebee/models/currency/operations.py b/chargebee/models/currency/operations.py index b8f5c850..2a12714b 100644 --- a/chargebee/models/currency/operations.py +++ b/chargebee/models/currency/operations.py @@ -6,7 +6,6 @@ @dataclass class Currency: - env: environment.Environment class ForexType(Enum): diff --git a/chargebee/models/customer/operations.py b/chargebee/models/customer/operations.py index 799b8604..c8bec38a 100644 --- a/chargebee/models/customer/operations.py +++ b/chargebee/models/customer/operations.py @@ -8,7 +8,6 @@ @dataclass class Customer: - env: environment.Environment class VatNumberStatus(Enum): diff --git a/chargebee/models/customer_entitlement/operations.py b/chargebee/models/customer_entitlement/operations.py index 871a5822..9df72bca 100644 --- a/chargebee/models/customer_entitlement/operations.py +++ b/chargebee/models/customer_entitlement/operations.py @@ -5,7 +5,6 @@ @dataclass class CustomerEntitlement: - env: environment.Environment class EntitlementsForCustomerParams(TypedDict): diff --git a/chargebee/models/differential_price/operations.py b/chargebee/models/differential_price/operations.py index c7cd96fe..4e3effa7 100644 --- a/chargebee/models/differential_price/operations.py +++ b/chargebee/models/differential_price/operations.py @@ -8,7 +8,6 @@ @dataclass class DifferentialPrice: - env: environment.Environment class Status(Enum): diff --git a/chargebee/models/entitlement/operations.py b/chargebee/models/entitlement/operations.py index bb57c2e5..0eb3175d 100644 --- a/chargebee/models/entitlement/operations.py +++ b/chargebee/models/entitlement/operations.py @@ -8,7 +8,6 @@ @dataclass class Entitlement: - env: environment.Environment class EntityType(Enum): diff --git a/chargebee/models/entitlement_override/operations.py b/chargebee/models/entitlement_override/operations.py index f8847736..c9054dca 100644 --- a/chargebee/models/entitlement_override/operations.py +++ b/chargebee/models/entitlement_override/operations.py @@ -7,7 +7,6 @@ @dataclass class EntitlementOverride: - env: environment.Environment class ScheduleStatus(Enum): diff --git a/chargebee/models/enums.py b/chargebee/models/enums.py index 8582a1a5..4635fceb 100644 --- a/chargebee/models/enums.py +++ b/chargebee/models/enums.py @@ -291,6 +291,7 @@ class DunningType(Enum): AUTO_COLLECT = "auto_collect" OFFLINE = "offline" DIRECT_DEBIT = "direct_debit" + REAL_TIME_PAYMENTS = "real_time_payments" def __str__(self): return self.value @@ -497,6 +498,7 @@ class EnabledEvents(Enum): BUSINESS_ENTITY_DELETED = "business_entity_deleted" CUSTOMER_BUSINESS_ENTITY_CHANGED = "customer_business_entity_changed" SUBSCRIPTION_BUSINESS_ENTITY_CHANGED = "subscription_business_entity_changed" + PAYMENT_SOURCE_BUSINESS_ENTITY_CHANGED = "payment_source_business_entity_changed" PURCHASE_CREATED = "purchase_created" VOUCHER_CREATED = "voucher_created" VOUCHER_EXPIRED = "voucher_expired" @@ -863,6 +865,7 @@ class EventType(Enum): BUSINESS_ENTITY_DELETED = "business_entity_deleted" CUSTOMER_BUSINESS_ENTITY_CHANGED = "customer_business_entity_changed" SUBSCRIPTION_BUSINESS_ENTITY_CHANGED = "subscription_business_entity_changed" + PAYMENT_SOURCE_BUSINESS_ENTITY_CHANGED = "payment_source_business_entity_changed" PURCHASE_CREATED = "purchase_created" VOUCHER_CREATED = "voucher_created" VOUCHER_EXPIRED = "voucher_expired" @@ -1227,6 +1230,9 @@ class PaymentMethod(Enum): PAYPAY = "paypay" GCASH = "gcash" SOUTH_KOREAN_CARDS = "south_korean_cards" + PAYNOW = "paynow" + BIZUM = "bizum" + PROMPTPAY = "promptpay" def __str__(self): return self.value @@ -1289,6 +1295,9 @@ class PaymentMethodType(Enum): PAYPAY = "paypay" GCASH = "gcash" SOUTH_KOREAN_CARDS = "south_korean_cards" + PAYNOW = "paynow" + BIZUM = "bizum" + PROMPTPAY = "promptpay" def __str__(self): return self.value @@ -1446,6 +1455,9 @@ def __str__(self): class Status(Enum): + ACTIVE = "active" + ARCHIVED = "archived" + DELETED = "deleted" AVAILABLE = "available" EXHAUSTED = "exhausted" SCHEDULED = "scheduled" @@ -1486,9 +1498,15 @@ def __str__(self): class TaxOverrideReason(Enum): + ZERO_RATED = "zero_rated" ID_EXEMPT = "id_exempt" CUSTOMER_EXEMPT = "customer_exempt" + REGION_NON_TAXABLE = "region_non_taxable" + PRODUCT_EXEMPT = "product_exempt" EXPORT = "export" + HIGH_VALUE_PHYSICAL_GOODS = "high_value_physical_goods" + ZERO_VALUE_ITEM = "zero_value_item" + TAX_NOT_CONFIGURED_EXTERNAL_PROVIDER = "tax_not_configured_external_provider" def __str__(self): return self.value @@ -1569,10 +1587,16 @@ class Type(Enum): PAYPAY = "paypay" GCASH = "gcash" SOUTH_KOREAN_CARDS = "south_korean_cards" + PAYNOW = "paynow" + BIZUM = "bizum" + PROMPTPAY = "promptpay" FREE_TRIAL = "free_trial" PAY_UP_FRONT = "pay_up_front" PAY_AS_YOU_GO = "pay_as_you_go" + SIMPLE = "simple" + COMPOUND = "compound" USAGE_EXCEEDED = "usage_exceeded" + SPEND_EXCEEDED = "spend_exceeded" def __str__(self): return self.value diff --git a/chargebee/models/estimate/operations.py b/chargebee/models/estimate/operations.py index 448cadb7..47231e8a 100644 --- a/chargebee/models/estimate/operations.py +++ b/chargebee/models/estimate/operations.py @@ -16,7 +16,6 @@ @dataclass class Estimate: - env: environment.Environment class PaymentScheduleEstimateEntityType(Enum): @@ -687,6 +686,8 @@ class CreateInvoiceForItemsItemPriceParams(TypedDict): unit_price_in_decimal: NotRequired[str] date_from: NotRequired[int] date_to: NotRequired[int] + description: NotRequired[str] + entity_description: NotRequired[str] class CreateInvoiceForItemsItemTierParams(TypedDict): item_price_id: NotRequired[str] @@ -713,6 +714,7 @@ class CreateInvoiceForItemsChargeParams(TypedDict): avalara_service_type: NotRequired[int] date_from: NotRequired[int] date_to: NotRequired[int] + entity_description: NotRequired[str] class CreateInvoiceForItemsNotesToRemoveParams(TypedDict): entity_type: NotRequired[enums.EntityType] diff --git a/chargebee/models/event/operations.py b/chargebee/models/event/operations.py index 6f64c414..7e527df2 100644 --- a/chargebee/models/event/operations.py +++ b/chargebee/models/event/operations.py @@ -9,7 +9,6 @@ @dataclass class Event: - env: environment.Environment class WebhookStatus(Enum): diff --git a/chargebee/models/export/operations.py b/chargebee/models/export/operations.py index a3cb071a..13faffd0 100644 --- a/chargebee/models/export/operations.py +++ b/chargebee/models/export/operations.py @@ -8,7 +8,6 @@ @dataclass class Export: - env: environment.Environment class MimeType(Enum): @@ -207,6 +206,7 @@ class SubscriptionsSubscriptionParams(TypedDict): offline_payment_method: NotRequired[Filters.EnumFilter] auto_close_invoices: NotRequired[Filters.BooleanFilter] channel: NotRequired[Filters.EnumFilter] + decommissioned: NotRequired[Filters.BooleanFilter] plan_id: NotRequired[Filters.StringFilter] class InvoicesInvoiceParams(TypedDict): diff --git a/chargebee/models/feature/operations.py b/chargebee/models/feature/operations.py index 288920a6..5966588d 100644 --- a/chargebee/models/feature/operations.py +++ b/chargebee/models/feature/operations.py @@ -7,7 +7,6 @@ @dataclass class Feature: - env: environment.Environment class Status(Enum): @@ -52,6 +51,7 @@ class ListParams(TypedDict): id: NotRequired[Filters.StringFilter] status: NotRequired[Filters.EnumFilter] type: NotRequired[Filters.EnumFilter] + metered: NotRequired[Filters.BooleanFilter] class CreateParams(TypedDict): id: NotRequired[str] diff --git a/chargebee/models/feature/responses.py b/chargebee/models/feature/responses.py index c88a26af..fb334ec5 100644 --- a/chargebee/models/feature/responses.py +++ b/chargebee/models/feature/responses.py @@ -25,6 +25,7 @@ class FeatureResponse(Model): resource_version: int = None updated_at: int = None created_at: int = None + metered: bool = None levels: List[LevelResponse] = None diff --git a/chargebee/models/gift/operations.py b/chargebee/models/gift/operations.py index 4874e51e..10bc1d81 100644 --- a/chargebee/models/gift/operations.py +++ b/chargebee/models/gift/operations.py @@ -8,7 +8,6 @@ @dataclass class Gift: - env: environment.Environment class Status(Enum): diff --git a/chargebee/models/grant_block/operations.py b/chargebee/models/grant_block/operations.py index b0c03861..ae8e55dc 100644 --- a/chargebee/models/grant_block/operations.py +++ b/chargebee/models/grant_block/operations.py @@ -58,4 +58,6 @@ def list_grant_blocks( False, jsonKeys, options, + resource="grantBlock", + operation="listGrantBlocks", ) diff --git a/chargebee/models/grant_block/responses.py b/chargebee/models/grant_block/responses.py index bc62d26e..bff011d3 100644 --- a/chargebee/models/grant_block/responses.py +++ b/chargebee/models/grant_block/responses.py @@ -19,12 +19,12 @@ class GrantBlockResponse(Model): voided_amount: str = None origin_grant_block_id: str = None status: str = None - metadata: str = None grant_source: str = None created_at: int = None account_type: str = None unit_id: str = None unit_type: str = None + metadata: Dict[Any, Any] = None @dataclass diff --git a/chargebee/models/hosted_page/operations.py b/chargebee/models/hosted_page/operations.py index d677d6d4..b2295fad 100644 --- a/chargebee/models/hosted_page/operations.py +++ b/chargebee/models/hosted_page/operations.py @@ -8,7 +8,6 @@ @dataclass class HostedPage: - env: environment.Environment class Type(Enum): diff --git a/chargebee/models/in_app_subscription/operations.py b/chargebee/models/in_app_subscription/operations.py index c43cce7e..02f4f995 100644 --- a/chargebee/models/in_app_subscription/operations.py +++ b/chargebee/models/in_app_subscription/operations.py @@ -6,7 +6,6 @@ @dataclass class InAppSubscription: - env: environment.Environment class StoreStatus(Enum): diff --git a/chargebee/models/invoice/operations.py b/chargebee/models/invoice/operations.py index 72d1e9b5..abcdbdd2 100644 --- a/chargebee/models/invoice/operations.py +++ b/chargebee/models/invoice/operations.py @@ -15,7 +15,6 @@ @dataclass class Invoice: - env: environment.Environment class Status(Enum): @@ -50,6 +49,15 @@ class LineItemEntityType(Enum): def __str__(self): return self.value + class LineItemProrationMode(Enum): + RESET = "reset" + DELTA = "delta" + SERVICE_PERIOD_REVISION = "service_period_revision" + ADJUSTED_TERM = "adjusted_term" + + def __str__(self): + return self.value + class LineItemDiscountDiscountType(Enum): ITEM_LEVEL_COUPON = "item_level_coupon" DOCUMENT_LEVEL_COUPON = "document_level_coupon" @@ -142,6 +150,10 @@ class EinvoiceStatus(Enum): def __str__(self): return self.value + class ExchangeRate(TypedDict): + currency_code: Required[str] + rate: Required[float] + class LineItem(TypedDict): id: NotRequired[str] subscription_id: NotRequired[str] @@ -168,6 +180,7 @@ class LineItem(TypedDict): tax_exempt_reason: NotRequired[enums.TaxExemptReason] entity_id: NotRequired[str] customer_id: NotRequired[str] + proration_mode: NotRequired["Invoice.LineItemProrationMode"] class LineItemTier(TypedDict): line_item_id: NotRequired[str] @@ -483,6 +496,8 @@ class CreateForChargeItemsAndChargesItemPriceParams(TypedDict): unit_price_in_decimal: NotRequired[str] date_from: NotRequired[int] date_to: NotRequired[int] + description: NotRequired[str] + entity_description: NotRequired[str] class CreateForChargeItemsAndChargesItemTierParams(TypedDict): item_price_id: NotRequired[str] @@ -496,6 +511,7 @@ class CreateForChargeItemsAndChargesItemTierParams(TypedDict): package_size: NotRequired[int] class CreateForChargeItemsAndChargesChargeParams(TypedDict): + entity_description: NotRequired[str] amount: NotRequired[int] amount_in_decimal: NotRequired[str] description: NotRequired[str] @@ -667,6 +683,7 @@ class ImportInvoiceLineItemParams(TypedDict): tax9_amount: NotRequired[int] tax10_name: NotRequired[str] tax10_amount: NotRequired[int] + proration_mode: NotRequired["Invoice.LineItemProrationMode"] created_at: NotRequired[int] class ImportInvoicePaymentReferenceNumberParams(TypedDict): @@ -950,6 +967,7 @@ class CreateForChargeItemsAndChargesParams(TypedDict): List["Invoice.CreateForChargeItemsAndChargesDiscountParams"] ] invoice_date: NotRequired[int] + create_pending_invoice: NotRequired[bool] shipping_address: NotRequired[ "Invoice.CreateForChargeItemsAndChargesShippingAddressParams" ] @@ -1052,6 +1070,7 @@ class ImportInvoiceParams(TypedDict): net_term_days: NotRequired[int] has_advance_charges: NotRequired[bool] use_for_proration: NotRequired[bool] + paid_at: NotRequired[int] line_items: NotRequired[List["Invoice.ImportInvoiceLineItemParams"]] payment_reference_numbers: NotRequired[ List["Invoice.ImportInvoicePaymentReferenceNumberParams"] diff --git a/chargebee/models/invoice/responses.py b/chargebee/models/invoice/responses.py index 84793722..e23aafe3 100644 --- a/chargebee/models/invoice/responses.py +++ b/chargebee/models/invoice/responses.py @@ -16,6 +16,13 @@ ) +@dataclass +class ExchangeRateResponse(Model): + raw_data: Dict[Any, Any] = None + currency_code: str = None + rate: float = None + + @dataclass class LineItemResponse(Model): raw_data: Dict[Any, Any] = None @@ -44,6 +51,7 @@ class LineItemResponse(Model): tax_exempt_reason: str = None entity_id: str = None customer_id: str = None + proration_mode: str = None @dataclass @@ -339,6 +347,7 @@ class InvoiceResponse(Model): resource_version: int = None updated_at: int = None line_items_next_offset: str = None + exchange_rates: List[ExchangeRateResponse] = None first_invoice: bool = None new_sales_amount: int = None has_advance_charges: bool = None diff --git a/chargebee/models/invoice_estimate/operations.py b/chargebee/models/invoice_estimate/operations.py index 8904206e..4f80a0ef 100644 --- a/chargebee/models/invoice_estimate/operations.py +++ b/chargebee/models/invoice_estimate/operations.py @@ -7,7 +7,6 @@ @dataclass class InvoiceEstimate: - env: environment.Environment class LineItemEntityType(Enum): @@ -22,6 +21,15 @@ class LineItemEntityType(Enum): def __str__(self): return self.value + class LineItemProrationMode(Enum): + RESET = "reset" + DELTA = "delta" + SERVICE_PERIOD_REVISION = "service_period_revision" + ADJUSTED_TERM = "adjusted_term" + + def __str__(self): + return self.value + class LineItemDiscountDiscountType(Enum): ITEM_LEVEL_COUPON = "item_level_coupon" DOCUMENT_LEVEL_COUPON = "document_level_coupon" @@ -77,6 +85,7 @@ class LineItem(TypedDict): tax_exempt_reason: NotRequired[enums.TaxExemptReason] entity_id: NotRequired[str] customer_id: NotRequired[str] + proration_mode: NotRequired["InvoiceEstimate.LineItemProrationMode"] class LineItemTier(TypedDict): line_item_id: NotRequired[str] diff --git a/chargebee/models/invoice_estimate/responses.py b/chargebee/models/invoice_estimate/responses.py index fdcb2039..0c072796 100644 --- a/chargebee/models/invoice_estimate/responses.py +++ b/chargebee/models/invoice_estimate/responses.py @@ -31,6 +31,7 @@ class LineItemResponse(Model): tax_exempt_reason: str = None entity_id: str = None customer_id: str = None + proration_mode: str = None @dataclass diff --git a/chargebee/models/item/operations.py b/chargebee/models/item/operations.py index 25671427..e6d7556c 100644 --- a/chargebee/models/item/operations.py +++ b/chargebee/models/item/operations.py @@ -8,7 +8,6 @@ @dataclass class Item: - env: environment.Environment class Status(Enum): diff --git a/chargebee/models/item_entitlement/operations.py b/chargebee/models/item_entitlement/operations.py index 846bae7b..e9cf780a 100644 --- a/chargebee/models/item_entitlement/operations.py +++ b/chargebee/models/item_entitlement/operations.py @@ -7,7 +7,6 @@ @dataclass class ItemEntitlement: - env: environment.Environment class ItemType(Enum): diff --git a/chargebee/models/item_family/operations.py b/chargebee/models/item_family/operations.py index 009195e1..f3df09d3 100644 --- a/chargebee/models/item_family/operations.py +++ b/chargebee/models/item_family/operations.py @@ -7,7 +7,6 @@ @dataclass class ItemFamily: - env: environment.Environment class Status(Enum): diff --git a/chargebee/models/item_price/operations.py b/chargebee/models/item_price/operations.py index 8575fa09..a2aad86c 100644 --- a/chargebee/models/item_price/operations.py +++ b/chargebee/models/item_price/operations.py @@ -8,7 +8,6 @@ @dataclass class ItemPrice: - env: environment.Environment class Status(Enum): diff --git a/chargebee/models/ledger_account_balance/operations.py b/chargebee/models/ledger_account_balance/operations.py index 9041e2dd..e8afa109 100644 --- a/chargebee/models/ledger_account_balance/operations.py +++ b/chargebee/models/ledger_account_balance/operations.py @@ -50,4 +50,6 @@ def list_ledger_account_balances( False, jsonKeys, options, + resource="ledgerAccountBalance", + operation="listLedgerAccountBalances", ) diff --git a/chargebee/models/ledger_operation/operations.py b/chargebee/models/ledger_operation/operations.py index f2199611..d1c7a3c1 100644 --- a/chargebee/models/ledger_operation/operations.py +++ b/chargebee/models/ledger_operation/operations.py @@ -84,6 +84,8 @@ def retrieve_ledger_operation( False, jsonKeys, options, + resource="ledgerOperation", + operation="retrieveLedgerOperation", ) def list_ledger_operations( @@ -102,6 +104,8 @@ def list_ledger_operations( False, jsonKeys, options, + resource="ledgerOperation", + operation="listLedgerOperations", ) def capture(self, params: CaptureParams, headers=None) -> CaptureResponse: @@ -120,6 +124,8 @@ def capture(self, params: CaptureParams, headers=None) -> CaptureResponse: True, jsonKeys, options, + resource="ledgerOperation", + operation="capture", ) def authorize(self, params: AuthorizeParams, headers=None) -> AuthorizeResponse: @@ -138,6 +144,8 @@ def authorize(self, params: AuthorizeParams, headers=None) -> AuthorizeResponse: True, jsonKeys, options, + resource="ledgerOperation", + operation="authorize", ) def capture_authorization( @@ -158,6 +166,8 @@ def capture_authorization( True, jsonKeys, options, + resource="ledgerOperation", + operation="captureAuthorization", ) def release_authorization( @@ -178,4 +188,6 @@ def release_authorization( True, jsonKeys, options, + resource="ledgerOperation", + operation="releaseAuthorization", ) diff --git a/chargebee/models/ledger_operation/responses.py b/chargebee/models/ledger_operation/responses.py index 06e271e3..e97cfe34 100644 --- a/chargebee/models/ledger_operation/responses.py +++ b/chargebee/models/ledger_operation/responses.py @@ -11,8 +11,6 @@ class LedgerOperationResponse(Model): id: str = None type: str = None amount: str = None - start_balance: str = None - end_balance: str = None provisioned_start_balance: str = None provisioned_end_balance: str = None overdraft_start_balance: str = None @@ -20,12 +18,12 @@ class LedgerOperationResponse(Model): parent_ledger_operation_id: str = None ledger_operation_timestamp: int = None auto_release_timestamp: int = None - metadata: str = None created_at: int = None modified_at: int = None subscription_id: str = None unit_id: str = None unit_type: str = None + metadata: Dict[Any, Any] = None @dataclass diff --git a/chargebee/models/meter/__init__.py b/chargebee/models/meter/__init__.py new file mode 100644 index 00000000..a5d63206 --- /dev/null +++ b/chargebee/models/meter/__init__.py @@ -0,0 +1,2 @@ +from .operations import Meter +from .responses import MeterResponse diff --git a/chargebee/models/meter/operations.py b/chargebee/models/meter/operations.py new file mode 100644 index 00000000..ed9709cc --- /dev/null +++ b/chargebee/models/meter/operations.py @@ -0,0 +1,74 @@ +from .responses import * +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 column_definition, feature + + +@dataclass +class Meter: + env: environment.Environment + + class Type(Enum): + SIMPLE = "simple" + COMPOUND = "compound" + + def __str__(self): + return self.value + + class Status(Enum): + ACTIVE = "active" + ARCHIVED = "archived" + DELETED = "deleted" + + def __str__(self): + return self.value + + class ColumnDefinitionDataType(Enum): + NUMBER = "number" + STRING = "string" + + def __str__(self): + return self.value + + class FeatureStatus(Enum): + ACTIVE = "active" + ARCHIVED = "archived" + DRAFT = "draft" + + def __str__(self): + return self.value + + class FeatureType(Enum): + SWITCH = "switch" + CUSTOM = "custom" + QUANTITY = "quantity" + RANGE = "range" + + def __str__(self): + return self.value + + class ListParams(TypedDict): + limit: NotRequired[int] + offset: NotRequired[str] + name: NotRequired[Filters.StringFilter] + sort_by: NotRequired[Filters.SortFilter] + + def list(self, params: ListParams = None, headers=None) -> ListResponse: + jsonKeys = {} + options = {} + return request.send_list_request( + "get", + request.uri_path("meters"), + self.env, + cast(Dict[Any, Any], params), + headers, + ListResponse, + None, + False, + jsonKeys, + options, + resource="meter", + operation="list", + ) diff --git a/chargebee/models/meter/responses.py b/chargebee/models/meter/responses.py new file mode 100644 index 00000000..b5d4cf38 --- /dev/null +++ b/chargebee/models/meter/responses.py @@ -0,0 +1,31 @@ +from dataclasses import dataclass +from chargebee.model import Model +from typing import Dict, List, Any +from chargebee.response import Response +from chargebee.models import column_definition, feature + + +@dataclass +class MeterResponse(Model): + raw_data: Dict[Any, Any] = None + id: str = None + name: str = None + description: str = None + type: str = None + status: str = None + query: str = None + created_at: int = None + updated_at: int = None + column_definitions: List["column_definition.ColumnDefinitionResponse"] = None + features: List["feature.FeatureResponse"] = None + + +@dataclass +class ListMeterResponse: + meter: MeterResponse + + +@dataclass +class ListResponse(Response): + list: List[ListMeterResponse] + next_offset: str = None diff --git a/chargebee/models/metered_feature/__init__.py b/chargebee/models/metered_feature/__init__.py new file mode 100644 index 00000000..5df0f759 --- /dev/null +++ b/chargebee/models/metered_feature/__init__.py @@ -0,0 +1,2 @@ +from .operations import MeteredFeature +from .responses import MeteredFeatureResponse diff --git a/chargebee/models/metered_feature/operations.py b/chargebee/models/metered_feature/operations.py new file mode 100644 index 00000000..0b6e2ddb --- /dev/null +++ b/chargebee/models/metered_feature/operations.py @@ -0,0 +1,127 @@ +from .responses import * +from chargebee import request, environment +from typing import TypedDict, Required, NotRequired, Dict, List, Any, cast +from enum import Enum +from chargebee.models import column_definition, feature + + +@dataclass +class MeteredFeature: + env: environment.Environment + + class ColumnDefinitionDataType(Enum): + NUMBER = "number" + STRING = "string" + + def __str__(self): + return self.value + + class FeatureStatus(Enum): + ACTIVE = "active" + ARCHIVED = "archived" + DRAFT = "draft" + + def __str__(self): + return self.value + + class FeatureType(Enum): + SWITCH = "switch" + CUSTOM = "custom" + QUANTITY = "quantity" + RANGE = "range" + + def __str__(self): + return self.value + + class CreateColumnDefinitionParams(TypedDict): + column_name: Required[str] + data_type: Required["MeteredFeature.ColumnDefinitionDataType"] + + class CreateParams(TypedDict): + name: Required[str] + description: NotRequired[str] + feature_unit: Required[str] + query: Required[str] + column_definitions: NotRequired[ + List["MeteredFeature.CreateColumnDefinitionParams"] + ] + + def create(self, params: CreateParams, headers=None) -> CreateResponse: + jsonKeys = {} + options = { + "isIdempotent": True, + } + return request.send( + "post", + request.uri_path("metered_features"), + self.env, + cast(Dict[Any, Any], params), + headers, + CreateResponse, + None, + False, + jsonKeys, + options, + resource="meteredFeature", + operation="create", + ) + + def archive(self, id, headers=None) -> ArchiveResponse: + jsonKeys = {} + options = { + "isIdempotent": True, + } + return request.send( + "post", + request.uri_path("metered_features", id, "archive_command"), + self.env, + None, + headers, + ArchiveResponse, + None, + False, + jsonKeys, + options, + resource="meteredFeature", + operation="archive", + ) + + def reactivate(self, id, headers=None) -> ReactivateResponse: + jsonKeys = {} + options = { + "isIdempotent": True, + } + return request.send( + "post", + request.uri_path("metered_features", id, "reactivate_command"), + self.env, + None, + headers, + ReactivateResponse, + None, + False, + jsonKeys, + options, + resource="meteredFeature", + operation="reactivate", + ) + + def delete(self, id, headers=None) -> DeleteResponse: + jsonKeys = {} + options = { + "isIdempotent": True, + } + return request.send( + "post", + request.uri_path("metered_features", id, "delete"), + self.env, + None, + headers, + DeleteResponse, + None, + False, + jsonKeys, + options, + resource="meteredFeature", + operation="delete", + ) diff --git a/chargebee/models/metered_feature/responses.py b/chargebee/models/metered_feature/responses.py new file mode 100644 index 00000000..50d65c8c --- /dev/null +++ b/chargebee/models/metered_feature/responses.py @@ -0,0 +1,42 @@ +from dataclasses import dataclass +from chargebee.model import Model +from typing import Dict, List, Any +from chargebee.response import Response +from chargebee.models import column_definition, feature, meter + + +@dataclass +class MeteredFeatureResponse(Model): + raw_data: Dict[Any, Any] = None + id: str = None + name: str = None + description: str = None + type: str = None + status: str = None + query: str = None + column_definitions: List["column_definition.ColumnDefinitionResponse"] = None + features: List["feature.FeatureResponse"] = None + + +@dataclass +class CreateResponse(Response): + is_idempotency_replayed: bool + meter: "meter.MeterResponse" + + +@dataclass +class ArchiveResponse(Response): + is_idempotency_replayed: bool + meter: "meter.MeterResponse" + + +@dataclass +class ReactivateResponse(Response): + is_idempotency_replayed: bool + meter: "meter.MeterResponse" + + +@dataclass +class DeleteResponse(Response): + is_idempotency_replayed: bool + meter: "meter.MeterResponse" diff --git a/chargebee/models/offer_event/operations.py b/chargebee/models/offer_event/operations.py index 262b5d49..95a6dbab 100644 --- a/chargebee/models/offer_event/operations.py +++ b/chargebee/models/offer_event/operations.py @@ -6,7 +6,6 @@ @dataclass class OfferEvent: - env: environment.Environment class Type(Enum): diff --git a/chargebee/models/offer_fulfillment/operations.py b/chargebee/models/offer_fulfillment/operations.py index d52c5a65..32dd2100 100644 --- a/chargebee/models/offer_fulfillment/operations.py +++ b/chargebee/models/offer_fulfillment/operations.py @@ -6,7 +6,6 @@ @dataclass class OfferFulfillment: - env: environment.Environment class ProcessingType(Enum): diff --git a/chargebee/models/omnichannel_one_time_order/operations.py b/chargebee/models/omnichannel_one_time_order/operations.py index c0d01114..35073e16 100644 --- a/chargebee/models/omnichannel_one_time_order/operations.py +++ b/chargebee/models/omnichannel_one_time_order/operations.py @@ -8,7 +8,6 @@ @dataclass class OmnichannelOneTimeOrder: - env: environment.Environment class Source(Enum): diff --git a/chargebee/models/omnichannel_subscription/operations.py b/chargebee/models/omnichannel_subscription/operations.py index 092777e4..097187f1 100644 --- a/chargebee/models/omnichannel_subscription/operations.py +++ b/chargebee/models/omnichannel_subscription/operations.py @@ -8,7 +8,6 @@ @dataclass class OmnichannelSubscription: - env: environment.Environment class Source(Enum): diff --git a/chargebee/models/omnichannel_subscription_item/operations.py b/chargebee/models/omnichannel_subscription_item/operations.py index b8787f54..de7e035e 100644 --- a/chargebee/models/omnichannel_subscription_item/operations.py +++ b/chargebee/models/omnichannel_subscription_item/operations.py @@ -7,7 +7,6 @@ @dataclass class OmnichannelSubscriptionItem: - env: environment.Environment class Status(Enum): diff --git a/chargebee/models/order/operations.py b/chargebee/models/order/operations.py index 80df5e05..911e6834 100644 --- a/chargebee/models/order/operations.py +++ b/chargebee/models/order/operations.py @@ -8,7 +8,6 @@ @dataclass class Order: - env: environment.Environment class Status(Enum): diff --git a/chargebee/models/payment_intent/operations.py b/chargebee/models/payment_intent/operations.py index 1e85dea7..1adeeb73 100644 --- a/chargebee/models/payment_intent/operations.py +++ b/chargebee/models/payment_intent/operations.py @@ -7,7 +7,6 @@ @dataclass class PaymentIntent: - env: environment.Environment class Status(Enum): @@ -66,6 +65,9 @@ class PaymentMethodType(Enum): PAYPAY = "paypay" GCASH = "gcash" SOUTH_KOREAN_CARDS = "south_korean_cards" + PAYNOW = "paynow" + BIZUM = "bizum" + PROMPTPAY = "promptpay" def __str__(self): return self.value @@ -94,6 +96,21 @@ class PaymentAttemptStatus(Enum): def __str__(self): return self.value + class PaymentIntentMetadataSource(Enum): + CB_JS = "cb_js" + COMPONENTS_FIELDS = "components_fields" + CHECKOUT_V3 = "checkout_v3" + PAYNOW_V3 = "paynow_v3" + PORTAL_V3 = "portal_v3" + GIFT_V3 = "gift_v3" + CHECKOUT_V4 = "checkout_v4" + PAYMENT_COMPONENT = "payment_component" + PC_INAPP_V4 = "pc_inapp_v4" + PC_FPC_V4 = "pc_fpc_v4" + + def __str__(self): + return self.value + class PaymentAttempt(TypedDict): id: NotRequired[str] status: Required["PaymentIntent.PaymentAttemptStatus"] @@ -118,6 +135,12 @@ class PaymentAttempt(TypedDict): modified_at: Required[int] error_detail: NotRequired[gateway_error_detail.GatewayErrorDetailResponse] + class PaymentIntentMetadata(TypedDict): + source: Required["PaymentIntent.PaymentIntentMetadataSource"] + client_ip_address: NotRequired[str] + user_agent: NotRequired[str] + created_at: NotRequired[int] + class CreateParams(TypedDict): business_entity_id: NotRequired[str] customer_id: NotRequired[str] diff --git a/chargebee/models/payment_intent/responses.py b/chargebee/models/payment_intent/responses.py index 4f9e2f61..8f6f2017 100644 --- a/chargebee/models/payment_intent/responses.py +++ b/chargebee/models/payment_intent/responses.py @@ -35,6 +35,15 @@ class PaymentAttemptResponse(Model): error_detail: gateway_error_detail.GatewayErrorDetailResponse = None +@dataclass +class PaymentIntentMetadataResponse(Model): + raw_data: Dict[Any, Any] = None + source: str = None + client_ip_address: str = None + user_agent: str = None + created_at: int = None + + @dataclass class PaymentIntentResponse(Model): raw_data: Dict[Any, Any] = None @@ -56,6 +65,7 @@ class PaymentIntentResponse(Model): gateway: str = None active_payment_attempt: PaymentAttemptResponse = None payment_attempts: List[PaymentAttemptResponse] = None + payment_intent_metadata: PaymentIntentMetadataResponse = None business_entity_id: str = None diff --git a/chargebee/models/payment_schedule_scheme/operations.py b/chargebee/models/payment_schedule_scheme/operations.py index 6676fb5c..98fd759a 100644 --- a/chargebee/models/payment_schedule_scheme/operations.py +++ b/chargebee/models/payment_schedule_scheme/operations.py @@ -6,7 +6,6 @@ @dataclass class PaymentScheduleScheme: - env: environment.Environment class PeriodUnit(Enum): diff --git a/chargebee/models/payment_source/operations.py b/chargebee/models/payment_source/operations.py index 535d5129..be47b424 100644 --- a/chargebee/models/payment_source/operations.py +++ b/chargebee/models/payment_source/operations.py @@ -8,7 +8,6 @@ @dataclass class PaymentSource: - env: environment.Environment class Status(Enum): diff --git a/chargebee/models/payment_voucher/operations.py b/chargebee/models/payment_voucher/operations.py index 908af3dc..c6da6475 100644 --- a/chargebee/models/payment_voucher/operations.py +++ b/chargebee/models/payment_voucher/operations.py @@ -8,7 +8,6 @@ @dataclass class PaymentVoucher: - env: environment.Environment class Status(Enum): diff --git a/chargebee/models/personalized_offer/operations.py b/chargebee/models/personalized_offer/operations.py index ba748645..62aaa556 100644 --- a/chargebee/models/personalized_offer/operations.py +++ b/chargebee/models/personalized_offer/operations.py @@ -6,7 +6,6 @@ @dataclass class PersonalizedOffer: - env: environment.Environment class OptionProcessingType(Enum): diff --git a/chargebee/models/plan/operations.py b/chargebee/models/plan/operations.py index fa6bb364..f8db6091 100644 --- a/chargebee/models/plan/operations.py +++ b/chargebee/models/plan/operations.py @@ -8,7 +8,6 @@ @dataclass class Plan: - env: environment.Environment class PeriodUnit(Enum): diff --git a/chargebee/models/portal_session/operations.py b/chargebee/models/portal_session/operations.py index 8156d27a..591521ba 100644 --- a/chargebee/models/portal_session/operations.py +++ b/chargebee/models/portal_session/operations.py @@ -6,7 +6,6 @@ @dataclass class PortalSession: - env: environment.Environment class Status(Enum): diff --git a/chargebee/models/price_variant/operations.py b/chargebee/models/price_variant/operations.py index 01484884..4e4ac204 100644 --- a/chargebee/models/price_variant/operations.py +++ b/chargebee/models/price_variant/operations.py @@ -7,7 +7,6 @@ @dataclass class PriceVariant: - env: environment.Environment class Status(Enum): diff --git a/chargebee/models/pricing_page_session/operations.py b/chargebee/models/pricing_page_session/operations.py index f4518b41..b61f3905 100644 --- a/chargebee/models/pricing_page_session/operations.py +++ b/chargebee/models/pricing_page_session/operations.py @@ -6,7 +6,6 @@ @dataclass class PricingPageSession: - env: environment.Environment class CreateForNewSubscriptionPricingPageParams(TypedDict): diff --git a/chargebee/models/promotional_credit/operations.py b/chargebee/models/promotional_credit/operations.py index d5ad8497..7944e12e 100644 --- a/chargebee/models/promotional_credit/operations.py +++ b/chargebee/models/promotional_credit/operations.py @@ -8,7 +8,6 @@ @dataclass class PromotionalCredit: - env: environment.Environment class Type(Enum): diff --git a/chargebee/models/promotional_grant/operations.py b/chargebee/models/promotional_grant/operations.py index c8c24b99..1643cd49 100644 --- a/chargebee/models/promotional_grant/operations.py +++ b/chargebee/models/promotional_grant/operations.py @@ -34,4 +34,6 @@ def promotional_grants( True, jsonKeys, options, + resource="promotionalGrant", + operation="promotionalGrants", ) diff --git a/chargebee/models/promotional_grant/responses.py b/chargebee/models/promotional_grant/responses.py index 565c559f..6691eaa5 100644 --- a/chargebee/models/promotional_grant/responses.py +++ b/chargebee/models/promotional_grant/responses.py @@ -12,7 +12,7 @@ class PromotionalGrantResponse(Model): unit_id: str = None amount: str = None expires_at: int = None - metadata: str = None + metadata: Dict[Any, Any] = None @dataclass diff --git a/chargebee/models/purchase/operations.py b/chargebee/models/purchase/operations.py index 9adeaa19..f258f881 100644 --- a/chargebee/models/purchase/operations.py +++ b/chargebee/models/purchase/operations.py @@ -6,7 +6,6 @@ @dataclass class Purchase: - env: environment.Environment class CreatePurchaseItemParams(TypedDict): diff --git a/chargebee/models/quote/operations.py b/chargebee/models/quote/operations.py index fc22f19b..3a7e3b54 100644 --- a/chargebee/models/quote/operations.py +++ b/chargebee/models/quote/operations.py @@ -8,7 +8,6 @@ @dataclass class Quote: - env: environment.Environment class Status(Enum): @@ -47,6 +46,15 @@ class LineItemEntityType(Enum): def __str__(self): return self.value + class LineItemProrationMode(Enum): + RESET = "reset" + DELTA = "delta" + SERVICE_PERIOD_REVISION = "service_period_revision" + ADJUSTED_TERM = "adjusted_term" + + def __str__(self): + return self.value + class LineItemDiscountDiscountType(Enum): ITEM_LEVEL_COUPON = "item_level_coupon" DOCUMENT_LEVEL_COUPON = "document_level_coupon" @@ -102,6 +110,7 @@ class LineItem(TypedDict): tax_exempt_reason: NotRequired[enums.TaxExemptReason] entity_id: NotRequired[str] customer_id: NotRequired[str] + proration_mode: NotRequired["Quote.LineItemProrationMode"] class LineItemTier(TypedDict): line_item_id: NotRequired[str] @@ -1867,6 +1876,8 @@ def pdf(self, id, params: PdfParams = None, headers=None) -> PdfResponse: False, jsonKeys, options, + resource="quote", + operation="pdf", ) def retrieve_signature(self, id, headers=None) -> RetrieveSignatureResponse: @@ -1883,6 +1894,8 @@ def retrieve_signature(self, id, headers=None) -> RetrieveSignatureResponse: False, jsonKeys, options, + resource="quote", + operation="retrieveSignature", ) def retrieve_signed_pdf(self, id, headers=None) -> RetrieveSignedPdfResponse: @@ -1901,6 +1914,8 @@ def retrieve_signed_pdf(self, id, headers=None) -> RetrieveSignedPdfResponse: False, jsonKeys, options, + resource="quote", + operation="retrieveSignedPdf", ) def create_signature(self, id, headers=None) -> CreateSignatureResponse: @@ -1919,6 +1934,8 @@ def create_signature(self, id, headers=None) -> CreateSignatureResponse: False, jsonKeys, options, + resource="quote", + operation="createSignature", ) def update_signature(self, id, headers=None) -> UpdateSignatureResponse: @@ -1937,6 +1954,8 @@ def update_signature(self, id, headers=None) -> UpdateSignatureResponse: False, jsonKeys, options, + resource="quote", + operation="updateSignature", ) def update_signature_status( @@ -1957,6 +1976,8 @@ def update_signature_status( False, jsonKeys, options, + resource="quote", + operation="updateSignatureStatus", ) def refresh_signature_link(self, id, headers=None) -> RefreshSignatureLinkResponse: @@ -1975,4 +1996,6 @@ def refresh_signature_link(self, id, headers=None) -> RefreshSignatureLinkRespon False, jsonKeys, options, + resource="quote", + operation="refreshSignatureLink", ) diff --git a/chargebee/models/quote/responses.py b/chargebee/models/quote/responses.py index 8d61df50..b33d251d 100644 --- a/chargebee/models/quote/responses.py +++ b/chargebee/models/quote/responses.py @@ -47,6 +47,7 @@ class LineItemResponse(Model): tax_exempt_reason: str = None entity_id: str = None customer_id: str = None + proration_mode: str = None @dataclass diff --git a/chargebee/models/quote_line_group/operations.py b/chargebee/models/quote_line_group/operations.py index c0bfbac8..f7ab5fc0 100644 --- a/chargebee/models/quote_line_group/operations.py +++ b/chargebee/models/quote_line_group/operations.py @@ -32,6 +32,15 @@ class LineItemEntityType(Enum): def __str__(self): return self.value + class LineItemProrationMode(Enum): + RESET = "reset" + DELTA = "delta" + SERVICE_PERIOD_REVISION = "service_period_revision" + ADJUSTED_TERM = "adjusted_term" + + def __str__(self): + return self.value + class LineItemDiscountDiscountType(Enum): ITEM_LEVEL_COUPON = "item_level_coupon" DOCUMENT_LEVEL_COUPON = "document_level_coupon" @@ -87,6 +96,7 @@ class LineItem(TypedDict): tax_exempt_reason: NotRequired[enums.TaxExemptReason] entity_id: NotRequired[str] customer_id: NotRequired[str] + proration_mode: NotRequired["QuoteLineGroup.LineItemProrationMode"] class LineItemDiscount(TypedDict): line_item_id: Required[str] diff --git a/chargebee/models/quote_line_group/responses.py b/chargebee/models/quote_line_group/responses.py index 8d2e46d4..07481838 100644 --- a/chargebee/models/quote_line_group/responses.py +++ b/chargebee/models/quote_line_group/responses.py @@ -31,6 +31,7 @@ class LineItemResponse(Model): tax_exempt_reason: str = None entity_id: str = None customer_id: str = None + proration_mode: str = None @dataclass diff --git a/chargebee/models/quoted_charge/operations.py b/chargebee/models/quoted_charge/operations.py index 291d3b5d..969f4a25 100644 --- a/chargebee/models/quoted_charge/operations.py +++ b/chargebee/models/quoted_charge/operations.py @@ -12,6 +12,7 @@ class Charge(TypedDict): amount: NotRequired[int] amount_in_decimal: NotRequired[str] description: NotRequired[str] + entity_description: NotRequired[str] service_period_in_days: NotRequired[int] avalara_sale_type: NotRequired[enums.AvalaraSaleType] avalara_transaction_type: NotRequired[int] @@ -23,6 +24,8 @@ class InvoiceItem(TypedDict): quantity_in_decimal: NotRequired[str] unit_price: NotRequired[int] unit_price_in_decimal: NotRequired[str] + description: NotRequired[str] + entity_description: NotRequired[str] service_period_days: NotRequired[int] class ItemTier(TypedDict): diff --git a/chargebee/models/quoted_charge/responses.py b/chargebee/models/quoted_charge/responses.py index 1801272e..af858df7 100644 --- a/chargebee/models/quoted_charge/responses.py +++ b/chargebee/models/quoted_charge/responses.py @@ -9,6 +9,7 @@ class ChargeResponse(Model): amount: int = None amount_in_decimal: str = None description: str = None + entity_description: str = None service_period_in_days: int = None avalara_sale_type: str = None avalara_transaction_type: int = None @@ -23,6 +24,8 @@ class InvoiceItemResponse(Model): quantity_in_decimal: str = None unit_price: int = None unit_price_in_decimal: str = None + description: str = None + entity_description: str = None service_period_days: int = None diff --git a/chargebee/models/ramp/operations.py b/chargebee/models/ramp/operations.py index 0234b04c..d7b266cc 100644 --- a/chargebee/models/ramp/operations.py +++ b/chargebee/models/ramp/operations.py @@ -8,7 +8,6 @@ @dataclass class Ramp: - env: environment.Environment class Status(Enum): @@ -23,6 +22,7 @@ def __str__(self): class DiscountsToAddType(Enum): FIXED_AMOUNT = "fixed_amount" PERCENTAGE = "percentage" + OFFER_QUANTITY = "offer_quantity" def __str__(self): return self.value @@ -82,6 +82,7 @@ class DiscountsToAdd(TypedDict): type: Required["Ramp.DiscountsToAddType"] percentage: NotRequired[float] amount: NotRequired[int] + quantity: NotRequired[int] duration_type: Required[enums.DurationType] period: NotRequired[int] period_unit: NotRequired[enums.PeriodUnit] @@ -155,6 +156,7 @@ class CreateForSubscriptionDiscountsToAddParams(TypedDict): duration_type: Required[enums.DurationType] percentage: NotRequired[float] amount: NotRequired[int] + quantity: NotRequired[int] period: NotRequired[int] period_unit: NotRequired[enums.PeriodUnit] included_in_mrr: NotRequired[bool] @@ -209,6 +211,7 @@ class UpdateDiscountsToAddParams(TypedDict): duration_type: Required[enums.DurationType] percentage: NotRequired[float] amount: NotRequired[int] + quantity: NotRequired[int] period: NotRequired[int] period_unit: NotRequired[enums.PeriodUnit] included_in_mrr: NotRequired[bool] diff --git a/chargebee/models/ramp/responses.py b/chargebee/models/ramp/responses.py index 582cbbdc..f99f2cd2 100644 --- a/chargebee/models/ramp/responses.py +++ b/chargebee/models/ramp/responses.py @@ -61,6 +61,7 @@ class DiscountsToAddResponse(Model): type: str = None percentage: float = None amount: int = None + quantity: int = None duration_type: str = None period: int = None period_unit: str = None diff --git a/chargebee/models/recorded_purchase/operations.py b/chargebee/models/recorded_purchase/operations.py index 28ffb4fe..4d240ed5 100644 --- a/chargebee/models/recorded_purchase/operations.py +++ b/chargebee/models/recorded_purchase/operations.py @@ -6,7 +6,6 @@ @dataclass class RecordedPurchase: - env: environment.Environment class Source(Enum): @@ -36,6 +35,9 @@ class ErrorDetail(TypedDict): class CreateCustomerParams(TypedDict): id: Required[str] + email: NotRequired[str] + first_name: NotRequired[str] + last_name: NotRequired[str] class CreateAppleAppStoreParams(TypedDict): transaction_id: NotRequired[str] diff --git a/chargebee/models/resource_migration/operations.py b/chargebee/models/resource_migration/operations.py index 854906bd..228e3d51 100644 --- a/chargebee/models/resource_migration/operations.py +++ b/chargebee/models/resource_migration/operations.py @@ -7,7 +7,6 @@ @dataclass class ResourceMigration: - env: environment.Environment class Status(Enum): diff --git a/chargebee/models/rule/operations.py b/chargebee/models/rule/operations.py index fbcca67b..48c047f8 100644 --- a/chargebee/models/rule/operations.py +++ b/chargebee/models/rule/operations.py @@ -6,7 +6,6 @@ @dataclass class Rule: - env: environment.Environment class Status(Enum): diff --git a/chargebee/models/site_migration_detail/operations.py b/chargebee/models/site_migration_detail/operations.py index e12e9a4b..2f66adb7 100644 --- a/chargebee/models/site_migration_detail/operations.py +++ b/chargebee/models/site_migration_detail/operations.py @@ -7,7 +7,6 @@ @dataclass class SiteMigrationDetail: - env: environment.Environment class Status(Enum): diff --git a/chargebee/models/subscription/operations.py b/chargebee/models/subscription/operations.py index 2a0ec588..0357b6ed 100644 --- a/chargebee/models/subscription/operations.py +++ b/chargebee/models/subscription/operations.py @@ -1330,6 +1330,7 @@ class ListParams(TypedDict): sort_by: NotRequired[Filters.SortFilter] business_entity_id: NotRequired[Filters.StringFilter] channel: NotRequired[Filters.EnumFilter] + decommissioned: NotRequired[Filters.BooleanFilter] class SubscriptionsForCustomerParams(TypedDict): limit: NotRequired[int] diff --git a/chargebee/models/subscription_entitlement/operations.py b/chargebee/models/subscription_entitlement/operations.py index 26949b44..b05b4699 100644 --- a/chargebee/models/subscription_entitlement/operations.py +++ b/chargebee/models/subscription_entitlement/operations.py @@ -7,7 +7,6 @@ @dataclass class SubscriptionEntitlement: - env: environment.Environment class ScheduleStatus(Enum): diff --git a/chargebee/models/time_machine/operations.py b/chargebee/models/time_machine/operations.py index 75dec261..d340d579 100644 --- a/chargebee/models/time_machine/operations.py +++ b/chargebee/models/time_machine/operations.py @@ -8,7 +8,6 @@ @dataclass class TimeMachine: - env: environment.Environment class TimeTravelStatus(Enum): diff --git a/chargebee/models/transaction/operations.py b/chargebee/models/transaction/operations.py index eea6d40e..30dd90c2 100644 --- a/chargebee/models/transaction/operations.py +++ b/chargebee/models/transaction/operations.py @@ -8,7 +8,6 @@ @dataclass class Transaction: - env: environment.Environment class Type(Enum): diff --git a/chargebee/models/unbilled_charge/operations.py b/chargebee/models/unbilled_charge/operations.py index 2d3e248a..7fbbc407 100644 --- a/chargebee/models/unbilled_charge/operations.py +++ b/chargebee/models/unbilled_charge/operations.py @@ -8,7 +8,6 @@ @dataclass class UnbilledCharge: - env: environment.Environment class EntityType(Enum): diff --git a/chargebee/models/usage/operations.py b/chargebee/models/usage/operations.py index 7d5ff290..05b5beca 100644 --- a/chargebee/models/usage/operations.py +++ b/chargebee/models/usage/operations.py @@ -7,7 +7,6 @@ @dataclass class Usage: - env: environment.Environment class PdfInvoiceParams(TypedDict): diff --git a/chargebee/models/usage_event/operations.py b/chargebee/models/usage_event/operations.py index bd1194e8..538c9e60 100644 --- a/chargebee/models/usage_event/operations.py +++ b/chargebee/models/usage_event/operations.py @@ -5,7 +5,6 @@ @dataclass class UsageEvent: - env: environment.Environment class BatchIngestEventParams(TypedDict): diff --git a/chargebee/models/usage_file/operations.py b/chargebee/models/usage_file/operations.py index aef7eb8f..e743294e 100644 --- a/chargebee/models/usage_file/operations.py +++ b/chargebee/models/usage_file/operations.py @@ -6,7 +6,6 @@ @dataclass class UsageFile: - env: environment.Environment class Status(Enum): diff --git a/chargebee/models/virtual_bank_account/operations.py b/chargebee/models/virtual_bank_account/operations.py index 2d07f50b..9cb70803 100644 --- a/chargebee/models/virtual_bank_account/operations.py +++ b/chargebee/models/virtual_bank_account/operations.py @@ -7,7 +7,6 @@ @dataclass class VirtualBankAccount: - env: environment.Environment class Scheme(Enum): diff --git a/chargebee/models/webhook_endpoint/operations.py b/chargebee/models/webhook_endpoint/operations.py index 8ef026fc..9edb0589 100644 --- a/chargebee/models/webhook_endpoint/operations.py +++ b/chargebee/models/webhook_endpoint/operations.py @@ -7,7 +7,6 @@ @dataclass class WebhookEndpoint: - env: environment.Environment class ApiVersion(Enum): diff --git a/chargebee/version.py b/chargebee/version.py index e78c67c7..f0be1541 100644 --- a/chargebee/version.py +++ b/chargebee/version.py @@ -1 +1 @@ -VERSION = "3.25.0" +VERSION = "3.26.0"