# Python client library 3.16.0 changelog

## __init__

* Removed ExpandedInvoiceScheduleBooking class.
* Added CommitmentPrepaymentType class.
* Added ExpandedBundle class.
* Added ExpandedPrepayment class.
* Added ExpandedPrepaymentDefinition class.
* Added PrepaymentDefinition class.
* Added PrepaymentFrequency class.
* Added PrepaymentTypeEnum class.
* Added QueryBundlesResponse class.
* Added QueryPrepaymentDefinitionsResponse class.
* Added QueryPrepaymentsResponse class.


## object_queries_api

* Changed supported expands for query_commitment_associated_item_by_key from `commitment,account` to `commitment,invoiceowner`.
* Changed supported expands for query_commitment_associated_items from `commitment,account` to `commitment,invoiceowner`.
* Changed supported expands for query_commitment_by_key from `account,commitmentschedules,commitmentschedules.commitmentperiods,commitmentassociatedaccounts,commitmentassociateditems,commitmentassociateditems.account` to `commitmentowner,account,commitmentschedules,commitmentschedules.commitmentperiods,commitmentassociatedaccounts,commitmentassociatedaccounts.account,commitmentassociateditems,commitmentassociateditems.invoiceowner,commitmentschedules.prepaymentdefinitions,commitmentschedules.commitmentperiods.prepayments`.
* Changed supported expands for query_commitment_period_by_key from `account,commitmenttransactions` to `account,commitmenttransactions,prepayments`.
* Changed supported expands for query_commitment_periods from `account,commitmenttransactions` to `account,commitmenttransactions,prepayments`.
* Changed supported expands for query_commitment_schedule_by_key from `commitmentperiods` to `commitmentperiods,prepaymentdefinitions,commitmentperiods.prepayments`.
* Changed supported expands for query_commitment_schedules from `commitmentperiods` to `commitmentperiods,prepaymentdefinitions,commitmentperiods.prepayments`.
* Changed supported expands for query_commitments from `account,commitmentschedules,commitmentschedules.commitmentperiods,commitmentassociatedaccounts,commitmentassociateditems,commitmentassociateditems.account` to `commitmentowner,account,commitmentschedules,commitmentschedules.commitmentperiods,commitmentassociatedaccounts,commitmentassociatedaccounts.account,commitmentassociateditems,commitmentassociateditems.invoiceowner,commitmentschedules.prepaymentdefinitions,commitmentschedules.commitmentperiods.prepayments`.
* Added new method: query_bundle_by_key
* Added new method: query_bundle_by_key_with_http_info
* Added new method: query_bundles
* Added new method: query_bundles_with_http_info
* Added new method: query_prepayment_by_key
* Added new method: query_prepayment_by_key_with_http_info
* Added new method: query_prepayment_definition_by_key
* Added new method: query_prepayment_definition_by_key_with_http_info
* Added new method: query_prepayment_definitions
* Added new method: query_prepayment_definitions_with_http_info
* Added new method: query_prepayments with various parameters including idempotency_key, accept_encoding, content_encoding, zuora_track_id, zuora_entity_ids, authorization, zuora_version, zuora_org_ids, page_size, cursor, sort, expand, filter, fields, include_null_fields, _request_timeout, _request_auth, _content_type, _headers, _host_index.
* Added new method: query_prepayments_with_http_info with similar parameters as query_prepayments.
* Added new private method: _query_prepayments_serialize to handle serialization of parameters for the query_prepayments method.
* Added new parameters to the existing method _query_prepayment_definitions_serialize: zuora_org_ids, page_size, cursor, sort, expand, filter, fields, include_null_fields, _request_auth, _content_type, _headers, _host_index.


## models/__init__

* Removed class: ExpandedInvoiceScheduleBooking
* Added class: CommitmentPrepaymentType
* Added class: ExpandedBundle
* Added class: ExpandedPrepayment
* Added class: ExpandedPrepaymentDefinition
* Added class: PrepaymentDefinition
* Added class: PrepaymentFrequency
* Added class: PrepaymentTypeEnum
* Added class: QueryBundlesResponse
* Added class: QueryPrepaymentDefinitionsResponse
* Added class: QueryPrepaymentsResponse


## billing_document_item_processing_type

* New enum value `PREPAYMENTBILLING` added to BillingDocumentItemProcessingType.
* New enum value `PREPAYMENTAPPLICATION` added to BillingDocumentItemProcessingType.


## commitment_base_attributes

* Added a new field `prepayment_type` of type `Optional[CommitmentPrepaymentType]` to the `CommitmentBaseAttributes` class.


## commitment_input

* Added a new field `prepayment_type` of type `Optional[CommitmentPrepaymentType]` to the `CommitmentInput` class.
* Included `prepaymentType` in the `__properties` list of the `CommitmentInput` class.


## commitment_output

* Added a new field `prepayment_type` of type `CommitmentPrepaymentType` to the `CommitmentOutput` class.


## commitment_output_schedules_inner

* Added a new field `prepayment_definition` of type `Optional[PrepaymentDefinition]` to the class `CommitmentOutputSchedulesInner`.
* Updated the `__properties` list to include the new field `prepaymentDefinition`.
* Modified the `to_dict` method to include the `prepaymentDefinition` field by calling its `to_dict` method if it is present.
* Updated the `from_dict` method to handle the `prepaymentDefinition` field by using `PrepaymentDefinition.from_dict` if it is present.


## commitment_schedule_attributes

* Added a new field `prepayment_definition` of type `Optional[PrepaymentDefinition]` to the CommitmentScheduleAttributes class.
* Included `prepaymentDefinition` in the __properties list of the CommitmentScheduleAttributes class.
* Added logic to convert `prepayment_definition` to a dictionary in the to_dict method of the CommitmentScheduleAttributes class.
* Added logic to initialize `prepaymentDefinition` from a dictionary in the from_dict method of the CommitmentScheduleAttributes class.


## commitment_schedule_input

* Added a new field `prepayment_definition` of type `Optional[PrepaymentDefinition]` to the CommitmentScheduleInput class.


## commitment_schedule_output

* Added a new field `prepayment_definition` of type `Optional[PrepaymentDefinition]` to the CommitmentScheduleOutput class.
* Updated the `__properties` list to include `prepaymentDefinition`.
* Modified the `to_dict` method to include `prepaymentDefinition` by calling its `to_dict` method if it is not None.
* Updated the `from_dict` method to handle `prepaymentDefinition` by using `PrepaymentDefinition.from_dict` if it is present.


## expanded_account

* Added new field `credit_memo_template_id` of type Optional[StrictStr] with alias `creditMemoTemplateId` to the ExpandedAccount model.
* Added new field `debit_memo_template_id` of type Optional[StrictStr] with alias `debitMemoTemplateId` to the ExpandedAccount model.


## expanded_commitment

* Added new field `commitment_owner_id` of type Optional[StrictStr] with alias `commitmentOwnerId`.
* Added new field `commitment_owner_number` of type Optional[StrictStr] with alias `commitmentOwnerNumber`.
* Added new field `cancellation_reason` of type Optional[StrictStr] with alias `cancellationReason`.
* Added new field `cancellation_effective_date` of type Optional[date] with alias `cancellationEffectiveDate`.
* Added new field `cancellation_policy` of type Optional[StrictStr] with alias `cancellationPolicy`.
* Added new field `organization_id` of type Optional[StrictStr] with alias `organizationId`.
* Added new field `prepayment_type` of type Optional[StrictStr] with alias `prepaymentType`.
* Added new field `commitment_owner` of type Optional[ExpandedAccount] with alias `commitmentOwner`.


## expanded_commitment_associated_account

* Added a new optional field `organization_id` to the ExpandedCommitmentAssociatedAccount model.


## expanded_commitment_associated_item

* Added a new field `organization_id` of type Optional[StrictStr] with alias `organizationId` to the ExpandedCommitmentAssociatedItem class.
* Added a new field `invoice_owner` of type Optional[ExpandedAccount] with alias `invoiceOwner` to the ExpandedCommitmentAssociatedItem class.


## expanded_commitment_period

* Added import for ExpandedPrepayment.
* Added new field `committed_amount` of type Optional[Union[StrictFloat, StrictInt]] with alias `committedAmount`.
* Added new field `organization_id` of type Optional[StrictStr] with alias `organizationId`.
* Added new field `prepayments` of type Optional[List[ExpandedPrepayment]].
* Updated __properties list to include `committedAmount`, `organizationId`, and `prepayments`.
* Modified to_dict method to include `prepayments`.
* Modified from_dict method to include `committedAmount`, `organizationId`, and `prepayments`.


## expanded_commitment_schedule

* Added new import for ExpandedPrepaymentDefinition.
* Added new field `organization_id` of type Optional[StrictStr] to the ExpandedCommitmentSchedule class.
* Added new field `prepayment_definitions` of type Optional[List[ExpandedPrepaymentDefinition]] to the ExpandedCommitmentSchedule class.
* Updated the __properties list to include `organizationId` and `prepaymentDefinitions`.
* Modified the to_dict method to include serialization logic for `prepayment_definitions`.
* Updated the from_dict method to include deserialization logic for `organizationId` and `prepaymentDefinitions`.


## expanded_commitment_transaction

* Added new field `organization_id` to the ExpandedCommitmentTransaction model.


## expanded_credit_memo_item

* Added new field `invoice_schedule` of type Optional[ExpandedInvoiceSchedule].
* Added new field `invoice_schedule_item` of type Optional[ExpandedInvoiceScheduleItem].


## expanded_invoice

* Added new field `is_split` of type Optional[StrictBool] to the ExpandedInvoice class.


## expanded_invoice_item

* Added new field `invoice_schedule` of type Optional[ExpandedInvoiceSchedule] with alias `invoiceSchedule`.
* Added new field `invoice_schedule_item` of type Optional[ExpandedInvoiceScheduleItem] with alias `invoiceScheduleItem`.


## expanded_invoice_schedule

* Removed fields: `invoice_schedule_items`, `invoice_schedule_bookings`
* Removed methods: to_dict() overrides for invoice_schedule_items and invoice_schedule_bookings
* Added model_rebuild method call with raise_errors=False


## expanded_invoice_schedule_booking

* The class ExpandedInvoiceScheduleBooking has been removed.


## expanded_invoice_schedule_item

* Removed fields: `invoice`, `credit_memo`
* Removed imports: ExpandedCreditMemo, ExpandedInvoice
* Removed method logic: to_dict() calls for `invoice` and `credit_memo`


## expanded_payment_method

* New fields added: `card_brand`, `card_class`, `card_product_type`, `card_issuing_bank`, `card_issuing_country`


## expanded_payment_run

* Added new field `account_id` with alias `accountId` to the ExpandedPaymentRun class.
* Added new field `batch` to the ExpandedPaymentRun class.
* Added new field `billing_cycle_day` with alias `billingCycleDay` to the ExpandedPaymentRun class.
* Added new field `currency` to the ExpandedPaymentRun class.
* Added new field `payment_gateway_id` with alias `paymentGatewayId` to the ExpandedPaymentRun class.
* Added new field `billing_run_id` with alias `billingRunId` to the ExpandedPaymentRun class.


## expanded_product

* Added new optional field `product_type` to the ExpandedProduct model.
* Added new optional field `bundle_config` to the ExpandedProduct model.


## expanded_product_rate_plan_charge

* Field `optional` was added.


## expanded_rate_plan_charge

* Added new field `percentage` of type Optional[Union[StrictFloat, StrictInt]] to the ExpandedRatePlanCharge class.
* Added new field `maximum_amount` of type Optional[Union[StrictFloat, StrictInt]] with alias `maximumAmount` to the ExpandedRatePlanCharge class.
* Added new field `minimum_amount` of type Optional[Union[StrictFloat, StrictInt]] with alias `minimumAmount` to the ExpandedRatePlanCharge class.
* Added new field `eligible_account_conditions` of type Optional[StrictStr] with alias `eligibleAccountConditions` to the ExpandedRatePlanCharge class.
* Added new field `eligible_charge_conditions` of type Optional[StrictStr] with alias `eligibleChargeConditions` to the ExpandedRatePlanCharge class.


## get_commitment_output

* Added a new field `prepayment_type` of type `Optional[CommitmentPrepaymentType]` to the GetCommitmentOutput class.


## get_commitment_response

* Added a new import for PrepaymentTypeEnum.
* Added a new optional field `prepayment_type` of type PrepaymentTypeEnum to the GetCommitmentResponse class.


## invoice_item_preview_result_processing_type

* New enum value `PrepaymentBilling` added to InvoiceItemPreviewResultProcessingType.
* New enum value `PrepaymentApplication` added to InvoiceItemPreviewResultProcessingType.


## product_rate_plan

* Updated the type of the `product_rate_plan_charges` field from `Optional[List[ProductRatePlanCharge]]` to `Optional[List[ProductRatePlanChargeRest]]`.


## upsert_create_commitment_input

* Added a new field `prepayment_type` of type `CommitmentPrepaymentType` to the `UpsertCreateCommitmentInput` class.


## upsert_create_commitment_input_all_of_schedules

* Added a new field `prepayment_definition` of type `Optional[PrepaymentDefinition]` to the class `UpsertCreateCommitmentInputAllOfSchedules`.
* Updated the `__properties` list to include the new field `prepaymentDefinition`.
* Added logic to handle `prepayment_definition` in the `to_dict` method, ensuring it calls `to_dict()` on `prepayment_definition` if it is not None.
* Added logic to handle `prepaymentDefinition` in the `from_dict` method, using `PrepaymentDefinition.from_dict` if `prepaymentDefinition` is present in the input dictionary.


## upsert_create_commitment_schedule_input

* Added a new field `prepayment_definition` of type `Optional[PrepaymentDefinition]` to the `UpsertCreateCommitmentScheduleInput` class.


## upsert_update_commitment_input

* Added a new field `prepayment_type` of type `Optional[CommitmentPrepaymentType]` to the `UpsertUpdateCommitmentInput` class.


## upsert_update_commitment_schedule_input

* Added a new field `prepayment_definition` of type `Optional[PrepaymentDefinition]` to the `UpsertUpdateCommitmentScheduleInput` class.