# Java client library 3.8.0 changelog ## ObjectQueriesApi * Introduced the `includeNullFields` parameter to control the inclusion of null fields in the response. * Added queryCommitmentByKeyApi method to query commitments by key with filters, expands, and sort capabilities. * Introduced queryCommitmentSegmentByKeyApi method to query commitment segments by key with similar capabilities. * Added queryCommitmentSegmentsApi method to query multiple commitment segments with filters, expands, and sort capabilities. * Introduced queryCommitmentsApi method to query multiple commitments with similar capabilities. * Added queryDeliveryAdjustmentByKeyApi method to query delivery adjustments by key with filters, expands, and sort capabilities. * Added asynchronous and synchronous methods for querying DeliveryAdjustment by key with various parameters. * Introduced QueryDeliveryAdjustmentByKeyApi class for building and executing queries for DeliveryAdjustment by key. * Added methods for querying DeliveryAdjustments with filters, expands, and sort capabilities. * Introduced QueryDeliveryAdjustmentsApi class for building and executing queries for DeliveryAdjustments. * Added methods for querying Fulfillment by key with various parameters. * Introduced QueryFulfillmentByKeyApi class for building and executing queries for Fulfillment by key. * Added methods for querying Fulfillments with filters, expands, and sort capabilities. * Introduced QueryFulfillmentsApi class for building and executing queries for Fulfillments. * Added methods for querying Ramp by key with various parameters. * Introduced QueryRampByKeyApi class for building and executing queries for Ramp by key. * Added methods for querying Ramps with filters, expands, and sort capabilities. * Introduced QueryRampsApi class for building and executing queries for Ramps. ## BulkUpdateInvoicesRequest * The type of the `invoices` field has been changed from `List` to `List`. ## BulkUpdateOrderLineItem * Removed the `itemNumber` field, which may require developers to update their code if they were using this field. ## CreateAccountRequest * Removed fields `organizationId` and `organizationName` from CreateAccountRequest class. This may require updates to code that previously used these fields. ## CreateCatalogGroupRequest * The `name` field is now required (changed from @Nullable to @Nonnull). JSON requests must include this field. ## CreateCreditMemoFromChargeRequest * The `charges` field is now marked as @Nonnull, indicating it is required and cannot be null. * The JSON validation now requires the `charges` field to be present and non-null in the JSON string. * The `charges` field must be an array in the JSON string; otherwise, an IllegalArgumentException will be thrown. ## CreateCreditMemoFromInvoice * The `items` field is now marked as @Nonnull, indicating it is required and cannot be null. * Validation added to ensure `items` is present and is an array in the JSON input. ## CreateCreditMemoFromInvoiceRequest * The `items` field is now marked as @Nonnull, indicating it is a required field. Developers must ensure this field is always provided. * Validation has been added to ensure `items` is present and is an array in the JSON string. Missing or incorrect types will result in an IllegalArgumentException. ## CreateCreditMemoTaxationItemsRequest * The `taxationItems` field is now marked as `@Nonnull`, indicating it is required and cannot be null. * The JSON validation logic now enforces that the `taxationItems` field must be present and must be an array, throwing an exception if these conditions are not met. ## CreateDebitMemoFromChargeRequest * The `charges` field is now marked as @Nonnull, indicating it is required and cannot be null. * The `charges` field is now validated to ensure it is present and is an array in the JSON input. ## CreateDebitMemoFromInvoiceRequest * The `items` field is now marked as @Nonnull, indicating it is required and cannot be null. * The `items` field is now required in the JSON input, and an exception will be thrown if it is missing. * The validation logic for the `items` field has been updated to ensure it is an array and validate each element, with exceptions thrown for invalid formats. ## CreateDebitMemosFromInvoiceRequest * The `items` field is now marked as @Nonnull, indicating it is required and cannot be null. * The `items` field is now required in the JSON input, and an exception will be thrown if it is missing. * Validation has been added to ensure `items` is an array in the JSON input, and an exception will be thrown if it is not. ## CreateInvoiceCollectRequest * Removed the `invoiceNumber` field, which may require updates to code that previously used this field. ## CreateInvoiceScheduleRequest * The `accountKey` field is now required (changed from @Nullable to @Nonnull). * The `orders` field is now required (changed from @Nullable to @Nonnull). * JSON validation now enforces the presence of `accountKey` and `orders` fields, throwing an IllegalArgumentException if they are missing. ## CreateOrderRequest * Removed the `externallyManagedBy` field from the CreateOrderRequest class. This change will require developers to update their code if they were using this field. ## CreatePaymentMethodRequest * The class now extends AbstractOpenApiSchema, which may affect how instances are created and used. * The previous fields and methods related to payment method details have been removed in favor of a oneOf schema approach. * Developers need to update their code to use the new oneOf schema approach for handling different payment method types. * Removed the CustomTypeAdapterFactory class, which may affect custom serialization and deserialization logic. * Introduced a new oneOf schema approach for handling different payment method types, including various specific payment methods like CreatePayPalECPaymentMethod, CreateCreditCardPaymentMethod, etc. * Added a custom TypeAdapterFactory for serializing and deserializing instances based on the new oneOf schema. * Added methods to retrieve specific payment method instances like CreatePayPalAdaptivePaymentMethod, CreateCreditCardPaymentMethod, etc. * Implemented a new validation mechanism for JSON elements using oneOf schemas, which validates against multiple payment method types. ## CreatePaymentScheduleItemsRequest * The `items` field is now marked as @Nonnull, indicating it is required and cannot be null. * The JSON validation now requires the `items` field to be present and to be a non-null array, otherwise an IllegalArgumentException will be thrown. ## CreatePaymentScheduleRequest * Added a maximum constraint of 1000 to the `occurrences` field. ## CreatePaymentSchedulesRequest * The `paymentSchedules` field is now marked as @Nonnull, indicating it is required and cannot be null. * The JSON validation now requires `paymentSchedules` to be present and non-null in the JSON string, and it must be an array. ## CreateSubscriptionRequest * Added a minimum value constraint of 1 for the initial subscription term when termType is `TERMED`. * Added a minimum value constraint of 0 for the subscription renewal term. ## CreateTaxationItemsForDebitMemoRequest * The `taxationItems` field is now marked as `@Nonnull`, indicating it is required and cannot be null. * The JSON validation logic now enforces that the `taxationItems` field must be present and must be an array, throwing an exception if these conditions are not met. ## CreateTaxationItemsRequest * The `taxationItems` field is now marked as `@Nonnull`, indicating it is required and cannot be null. * The JSON validation logic now enforces that the `taxationItems` field must be present and must be an array, throwing an exception if these conditions are not met. ## GenerateBillingDocumentRequest * The `effectiveDate` and `targetDate` fields are now marked as @Nonnull, indicating they are required and cannot be null. This change may require developers to ensure these fields are always provided when creating instances of GenerateBillingDocumentRequest. ## PreviewExistingSubscriptionRequest * The `previewThroughDate` field is now required. Any JSON input must include this field, otherwise an IllegalArgumentException will be thrown. ## PreviewPaymentSchedule * Added a maximum limit of 1000 for the number of payment schedule items that can be created by the payment schedule. ## PreviewSubscriptionRequest * Added a minimum constraint of 1 for the initialTerm when termType is `TERMED`. ## ReconcileRefundRequest * The `action` and `gatewayReconciliationStatus` fields are now marked as @Nonnull, meaning they are required and cannot be null. * Validation added to ensure `action` and `gatewayReconciliationStatus` fields are present and of the correct type in JSON input. ## RegenerateBillingRequest * Renamed field `documentId` to `id`. This change requires updates to any code referencing `documentId`. * The `type` field is now marked as @Nonnull, indicating it is required and cannot be null. ## RegenerateBookingRequest * Renamed field `subscriptionNumber` to `subscriptionName`. This change requires updates to any code referencing `subscriptionNumber`. * The `type` field is now marked as @Nonnull, indicating it is a required field and cannot be null. ## UpdateAccountRequest * The `organizationLabel` field has been removed from the UpdateAccountRequest class. Any code relying on this field will need to be updated. ## UpdateAccountingPeriodRequest * Renamed serialized field `fiscal_quarter` to `fiscalQuarter`. This change may require updates to JSON serialization/deserialization logic in client applications. ## UpdateFulfillmentRequest * Removed the `fulfillmentType` field and its associated methods. * Removed the `orderLineItemId` field and its associated methods. * Removed the `excludeItemBillingFromRevenueAccounting` field and its associated methods. * Removed the `excludeItemBookingFromRevenueAccounting` field and its associated methods. ## UpdateInvoiceRequest * The `id` field has been removed from the UpdateInvoiceRequest class. Any code that relies on setting or getting the `id` field will need to be updated. ## UpdateOrderActionRequest * Removed the `orderAction` field, which may require developers to update their code if they were using this field. * Added `changeReason` field to specify the reason for the change when updating an order action. * Introduced `customFields` map to allow additional custom fields to be included in an order action update. ## UpdateOrderLineItem * Removed the `itemNumber` field, which may require developers to update their code if they were using this field. ## UpdateOrderLineItemRequest * The `itemNumber` field has been removed. Any code relying on this field will need to be updated. ## UpdateOrderRequest * Removed the `externallyManagedBy` field and its associated methods. Developers using this field will need to update their code to remove any references to it. ## UpdatePaymentMethodRequest * The class UpdatePaymentMethodRequest has been refactored to extend AbstractOpenApiSchema, which may affect how instances of this class are created and used. * The previous fields and methods related to payment method details have been removed, and the class now uses a oneOf schema approach with multiple payment method types. * Developers will need to update their code to handle the new oneOf schema structure for payment methods. * Introduced a new oneOf schema structure to support multiple payment method types: UpdateACHPaymentMethod, UpdateBankTransferPaymentMethod, UpdateCCReferenceTransactionPaymentMethod, UpdateCreditCardPaymentMethod, and UpdateOpenPaymentMethod. * Added a custom TypeAdapterFactory to handle serialization and deserialization of the new oneOf schema structure. ## UpdatePaymentScheduleRequest * Added a maximum limit of 1000 for the number of payment schedule items that can be updated. ## UpdateSubscriptionRequest * Added a minimum constraint of 1 for the current subscription term when termType is `TERMED`. * Added a minimum constraint of 0 for the subscription renewal term. ## UsageOveragePricingOverride * Added a new field `originalListPrice` to the UsageOveragePricingOverride class. ## UsageOveragePricingUpdate * Added a new field `originalListPrice` to the UsageOveragePricingUpdate class.